コード例 #1
0
    def test_range(self):
        for i in range(5):
            rng = AddressRange(IP(i))
            self.assertEqual(rng.start, i)
            self.assertEqual(rng.end, i)
            self.assertEqual(rng.family, IPv4)
            for j in range(5):
                if i > j:
                    with self.assertRaises(AssertionError):
                        AddressRange(IP(i), IP(j))
                else:
                    rng = AddressRange(IP(i), IP(j))
                    self.assertEqual(rng.start, i)
                    self.assertEqual(rng.end, j)
                    self.assertEqual(rng.family, IPv4)
        with self.assertRaises(AssertionError):
            rng.end = IP()

        v4rangestr = '0.0.0.0-255.255.255.255'
        v6rangestr = '::-ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff'
        v4range = AddressRange.from_string(v4rangestr)
        v6range = AddressRange.from_string(v6rangestr)
        self.assertEqual(str(v4range), v4rangestr)
        self.assertEqual(str(v6range), v6rangestr)
        self.assertEqual(v4range, AddressRange(IPv4(0), IPv4(IPV4MAX)))
        self.assertEqual(v6range, AddressRange(IPv6(0), IPv6(IPV6MAX)))
コード例 #2
0
    def test_ordering(self):
        def expect(A1, A2, B1, B2):
            assert A2 >= A1 and B2 >= B1
            lt = A2 + 1 < B1
            eq = A1 == B1 and A2 == B2
            gt = A1 > B2 + 1
            a_in_b = B1 <= A1 and A2 <= B2
            b_in_a = A1 <= B1 and B2 <= A2
            return (lt, eq, gt, a_in_b, b_in_a)

        def test(A, B):
            return (A < B, A == B, A > B, A in B, B in A)

        y, z = 3, 6
        B = AddressRange(IPv4(y), IPv4(z))
        for w in range(10):
            for x in range(w, 10):
                A = AddressRange(IPv4(w), IPv4(x))
                self.assertEqual(test(A, B), expect(w, x, y, z))
                self.assertEqual(test(B, A), expect(y, z, w, x))