def test_byIPv6_orAddress(self):
     """A bridge with an IPv6 address in its orAddresses address should
     cause filters.byIPv6() to return True.
     """
     self.bridge.orAddresses = [(ipaddr.IPv6Address('2006:3333::3333'),
                                 3333, 6)]
     self.assertTrue(filters.byIPv6(self.bridge))
Example #2
0
    def test_HTTPSDistributor_getBridges_ipv6(self):
        """A request for IPv6 bridges should return IPv6 bridges."""
        dist = distributor.HTTPSDistributor(3, self.key)
        [dist.insert(bridge) for bridge in self.bridges[:250]]

        for i in xrange(500):
            bridgeRequest = self.randomClientRequest()
            bridgeRequest.withIPv6()
            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)
            address = address.strip('[]')
            self.assertIsInstance(ipaddr.IPAddress(address), ipaddr.IPv6Address)
            self.assertIsNotNone(byIPv6(random.choice(bridges)))
Example #3
0
    def test_HTTPSDistributor_getBridges_ipv6_ipv4(self):
        """Asking for bridge addresses which are simultaneously IPv6 and IPv4
        (in that order) should return IPv6 bridges.
        """
        dist = distributor.HTTPSDistributor(1, self.key)
        [dist.insert(bridge) for bridge in self.bridges[:250]]

        bridgeRequest = self.randomClientRequest()
        bridgeRequest.withIPv6()
        bridgeRequest.generateFilters()
        bridgeRequest.filters.append(byIPv4)

        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.IPv6Address)
        self.assertIsNotNone(byIPv6(random.choice(bridges)))
 def test_byIPv6_none(self):
     """A bridge with no IPv6 addresses should cause filters.byIPv6() to
     return False.
     """
     self.assertFalse(filters.byIPv6(self.bridge))
 def test_byIPv6_address(self):
     """A bridge with an IPv6 address for its main orPort address should
     cause filters.byIPv6() to return True.
     """
     self.bridge.address = '2006:2222::2222'
     self.assertTrue(filters.byIPv6(self.bridge))
Example #6
0
 def test_byIPv6_none(self):
     """A bridge with no IPv6 addresses should cause filters.byIPv6() to
     return False.
     """
     self.assertFalse(filters.byIPv6(self.bridge))
Example #7
0
 def test_byIPv6_orAddress(self):
     """A bridge with an IPv6 address in its orAddresses address should
     cause filters.byIPv6() to return True.
     """
     self.bridge.orAddresses = [(ipaddr.IPv6Address('2006:3333::3333'), 3333, 6)]
     self.assertTrue(filters.byIPv6(self.bridge))
Example #8
0
 def test_byIPv6_address(self):
     """A bridge with an IPv6 address for its main orPort address should
     cause filters.byIPv6() to return True.
     """
     self.bridge.address = '2006:2222::2222'
     self.assertTrue(filters.byIPv6(self.bridge))