def test_unpack_xor_address_unknown_protocol(self): transaction_id = unhexlify("b7e7a701bc34d686fa87dfae") with self.assertRaises(ValueError) as cm: stun.unpack_xor_address(unhexlify("0003a147e112a643"), transaction_id) self.assertEqual(str(cm.exception), "STUN address has unknown protocol")
def test_unpack_xor_address_ipv4_truncated(self): transaction_id = unhexlify("b7e7a701bc34d686fa87dfae") with self.assertRaises(ValueError) as cm: stun.unpack_xor_address(unhexlify("0001a147e112a6"), transaction_id) self.assertEqual(str(cm.exception), "STUN address has invalid length for IPv4")
def test_unpack_xor_address_too_short(self): transaction_id = unhexlify('b7e7a701bc34d686fa87dfae') with self.assertRaises(ValueError) as cm: stun.unpack_xor_address( unhexlify('0001'), transaction_id) self.assertEqual(str(cm.exception), 'STUN address length is less than 4 bytes')
def test_unpack_xor_address_ipv6_truncated(self): transaction_id = unhexlify('b7e7a701bc34d686fa87dfae') with self.assertRaises(ValueError) as cm: stun.unpack_xor_address( unhexlify('0002a1470113a9faa5d3f179bc25f4b5bed2b9'), transaction_id) self.assertEqual(str(cm.exception), 'STUN address has invalid length for IPv6')
def test_unpack_xor_address_ipv6(self): transaction_id = unhexlify("b7e7a701bc34d686fa87dfae") address, port = stun.unpack_xor_address( unhexlify("0002a1470113a9faa5d3f179bc25f4b5bed2b9d9"), transaction_id) self.assertEqual(address, "2001:db8:1234:5678:11:2233:4455:6677") self.assertEqual(port, 32853)
def test_unpack_xor_address_ipv4(self): transaction_id = unhexlify('b7e7a701bc34d686fa87dfae') address, port = stun.unpack_xor_address( unhexlify('0001a147e112a643'), transaction_id) self.assertEqual(address, '192.0.2.1') self.assertEqual(port, 32853)