1from PyObjCTools.TestSupport import * 2import objc 3from PyObjCTest.sockaddr import PyObjCTestSockAddr 4 5objc.registerMetaDataForSelector(b"PyObjCTestSockAddr", b"sockAddrToValue:", 6 dict( 7 arguments={ 8 2+0: dict(type_modifier=objc._C_IN), 9 } 10)) 11objc.registerMetaDataForSelector(b"PyObjCTestSockAddr", b"getIPv4Addr:", 12 dict( 13 arguments={ 14 2+0: dict(type_modifier=objc._C_OUT), 15 } 16)) 17objc.registerMetaDataForSelector(b"PyObjCTestSockAddr", b"getIPv6Addr:", 18 dict( 19 arguments={ 20 2+0: dict(type_modifier=objc._C_OUT), 21 } 22)) 23 24 25 26class TestSockAddrSupport (TestCase): 27 def testToObjC(self): 28 o = PyObjCTestSockAddr 29 30 v = o.sockAddrToValue_(('1.2.3.4', 45)) 31 self.assertEqual(v, ('IPv4', '1.2.3.4', 45)) 32 33 v = o.sockAddrToValue_(('::1', 90, 4, 5)) 34 self.assertEqual(v, ('IPv6', '::1', 90, 4, 5)) 35 36 def testIPv4FromC(self): 37 o = PyObjCTestSockAddr 38 39 v = o.getIPv4Addr_(None) 40 self.assertEqual(v, (b'127.0.0.1', 80)) 41 42 def testIPv6FromC(self): 43 o = PyObjCTestSockAddr 44 45 v = o.getIPv6Addr_(None) 46 self.assertEqual(v, (b'::1', 443, 2, 3)) 47 48if __name__ == "__main__": 49 main() 50