def test_byIPv4_none(self): """A bridge with no IPv4 addresses should cause filters.byIPv4() to return False. """ self.bridge.address = ipaddr.IPv6Address('2006:2222::2222') self.bridge.orAddresses = [(ipaddr.IPv6Address('2006:3333::3333'), 3333, 6)] self.assertFalse(filters.byIPv4(self.bridge))
def test_byIPv4_orAddress(self): """A bridge with an IPv4 address in its orAddresses address should cause filters.byIPv4() to return True. """ self.bridge.address = '2006:2222::2222' self.bridge.orAddresses = [(ipaddr.IPv4Address('2.2.2.2'), 2222, 4)] self.assertTrue(filters.byIPv4(self.bridge))
def test_HTTPSDistributor_getBridges_ipv4(self): """A request for IPv4 bridges should return IPv4 bridges.""" dist = distributor.HTTPSDistributor(1, self.key) [dist.insert(bridge) for bridge in self.bridges[:250]] for i in xrange(500): bridgeRequest = self.randomClientRequest() bridgeRequest.generateFilters() bridges = dist.getBridges(bridgeRequest, "faketimestamp") self.assertTrue(type(bridges) is list) self.assertGreater(len(bridges), 0) bridge = random.choice(bridges) bridgeLine = bridge.getBridgeLine(bridgeRequest) addrport, fingerprint = bridgeLine.split() address, port = addrport.rsplit(':', 1) self.assertIsInstance(ipaddr.IPAddress(address), ipaddr.IPv4Address) self.assertIsNotNone(byIPv4(random.choice(bridges)))
def test_HTTPSDistributor_getBridges_ipv4_ipv6(self): """Asking for bridge addresses which are simultaneously IPv4 and IPv6 (in that order) should return IPv4 bridges. """ dist = distributor.HTTPSDistributor(1, self.key) [dist.insert(bridge) for bridge in self.bridges[:250]] bridgeRequest = self.randomClientRequest() bridgeRequest.withIPv4() bridgeRequest.filters.append(byIPv6) bridgeRequest.generateFilters() bridges = dist.getBridges(bridgeRequest, 1) self.assertEqual(len(bridges), 3) bridge = random.choice(bridges) bridgeLine = bridge.getBridgeLine(bridgeRequest) addrport, fingerprint = bridgeLine.split() address, port = addrport.rsplit(':', 1) address = address.strip('[]') self.assertIsInstance(ipaddr.IPAddress(address), ipaddr.IPv4Address) self.assertIsNotNone(byIPv4(random.choice(bridges)))
def test_byIPv4_address(self): """A bridge with an IPv4 address for its main orPort address should cause filters.byIPv4() to return True. """ self.assertTrue(filters.byIPv4(self.bridge))