Пример #1
0
 def test_basic(self):
     c = CidrClassifier()
     c.add_mapping('0.0.0.0', 0, 'NONE')
     c.add_mapping('192.168.0.0', 16, 'RFC1918')
     c.add_mapping('104.36.192.0', 21, 'Uber')
     c.add_mapping('104.36.192.0', 22, 'Uber1')
     self.assertEqual(c.lookup('104.36.192.1'), ('104.36.192.0', 22, 'Uber1'))
     self.assertEqual(c.lookup('104.36.196.1'), ('104.36.192.0', 21, 'Uber'))
     self.assertEqual(c.lookup('192.168.0.0'), ('192.168.0.0', 16, 'RFC1918'))
     self.assertEqual(c.lookup('192.1.0.0'), ('0.0.0.0', 0, 'NONE'))
Пример #2
0
 def test_basic(self):
     c = CidrClassifier()
     c.add_mapping('0.0.0.0', 0, 'NONE')
     c.add_mapping('192.168.0.0', 16, 'RFC1918')
     c.add_mapping('104.36.192.0', 21, 'Uber')
     c.add_mapping('104.36.192.0', 22, 'Uber1')
     self.assertEqual(c.lookup('104.36.192.1'),
                      ('104.36.192.0', 22, 'Uber1'))
     self.assertEqual(c.lookup('104.36.196.1'),
                      ('104.36.192.0', 21, 'Uber'))
     self.assertEqual(c.lookup('192.168.0.0'),
                      ('192.168.0.0', 16, 'RFC1918'))
     self.assertEqual(c.lookup('192.1.0.0'), ('0.0.0.0', 0, 'NONE'))
Пример #3
0
    def test_basic(self):
        c = CidrClassifier()
        # ECMP path
        c.add_mapping('192.168.0.0', 24, 'HopA')
        c.add_mapping('192.168.0.0', 24, 'HopB')
        self.assertEqual(c.lookup('192.168.0.1'), ('192.168.0.0', 24, ['HopA', 'HopB']))

        # non-ECMP path because of different mask
        c.add_mapping('192.168.0.0', 26, 'HopA')
        c.add_mapping('192.168.0.0', 27, 'HopC')
        self.assertEqual(c.lookup('192.168.0.1'), ('192.168.0.0', 27, ['HopC']))

        c.remove_mapping('192.168.0.0', 27, 'HopC')
        self.assertEqual(c.lookup('192.168.0.1'), ('192.168.0.0', 26, ['HopA']))

        c.remove_mapping('192.168.0.0', 26, 'HopA')
        self.assertEqual(c.lookup('192.168.0.1'), ('192.168.0.0', 24, ['HopA', 'HopB']))

        c.remove_mapping('192.168.0.0', 24, 'HopB')
        self.assertEqual(c.lookup('192.168.0.1'), ('192.168.0.0', 24, ['HopA']))

        c.add_mapping('192.168.0.0', 24, 'HopC')
        self.assertEqual(c.lookup('192.168.0.1'), ('192.168.0.0', 24, ['HopA', 'HopC']))

        c.remove_mapping('192.168.0.0', 24, 'HopA')
        c.remove_mapping('192.168.0.0', 24, 'HopC')

        self.assertRaises(KeyError, lambda: c.lookup('192.168.0.0'))

        c.add_mapping('10.0.0.0', 8, 'HopA')
        c.add_mapping('10.0.0.0', 12, 'HopA')
        c.add_mapping('10.0.0.0', 12, 'HopB')
        c.add_mapping('192.168.0.0', 16, 'HopA')

        # self.assertEqual(c.show_mapping(), )
        print(c.show_all_mappings())

# vim: set textwidth=120: