Esempio n. 1
0
    def testToDottedQuad(self):
        net = summarizer.DSMNet(1 << 32, 4294967264)
        self.assertRaises(ValueError)
        net = summarizer.DSMNet(3232235584, 1 << 16)
        self.assertRaises(ValueError)
        net = summarizer.DSMNet(3232235584, 4294967264)
        self.assertEqual(summarizer.ToDottedQuad(net),
                         ('192.168.0.64', '255.255.255.224'))
        net = summarizer.DSMNet(3232235584, 4294901984)
        self.assertEqual(summarizer.ToDottedQuad(net, negate=True),
                         ('192.168.0.64', '0.0.255.31'))

        test_data = [
            (summarizer.DSMNet(3232235584,
                               4294967295), True, ('192.168.0.64', '32')),
            (summarizer.DSMNet(3232235584,
                               4294901760), True, ('192.168.0.64', '16')),
            (summarizer.DSMNet(3232235584,
                               4294967294), True, ('192.168.0.64', '31')),
            (summarizer.DSMNet(3232235584,
                               4290772992), True, ('192.168.0.64', '10')),
            (summarizer.DSMNet(3232235584, 4294966016), True,
             ('192.168.0.64', '255.255.251.0')),
            (summarizer.DSMNet(3232235584, 4294901504), True,
             ('192.168.0.64', '255.254.255.0'))
        ]

        for net, nondsm, expected in test_data:
            self.assertEqual(summarizer.ToDottedQuad(net, nondsm=nondsm),
                             expected)
Esempio n. 2
0
 def testOrder(self):
     nets = [
         # not discontinously summarizable with the other two
         nacaddr.IPv4('209.85.147.129/32'),
         # discontinuosly summarizable, but should come before the first one
         nacaddr.IPv4('74.125.20.129/32'),
         nacaddr.IPv4('74.125.21.129/32'),
     ]
     result = summarizer.Summarize(nets)
     self.assertEqual(result, [
         summarizer.DSMNet(1249711233, 4294967039),
         summarizer.DSMNet(3512046465, 4294967295)
     ])
Esempio n. 3
0
    def testMergeText(self):
        existing_comment = 'comment that already exists'
        addition = 'addition'

        dsm_net = summarizer.DSMNet(167772160, 4278190080)
        self.assertEqual(dsm_net.MergeText(addition), addition)

        dsm_net = summarizer.DSMNet(167772160, 4278190080, existing_comment)
        self.assertEqual(dsm_net.MergeText(existing_comment), existing_comment)

        dsm_net = summarizer.DSMNet(167772160, 4278190080, existing_comment)
        self.assertEqual(dsm_net.MergeText(addition),
                         existing_comment + ', ' + addition)
Esempio n. 4
0
 def testSummarizeToAllSpace(self):
     nets = [
         nacaddr.IPv4('0.0.0.0/1'),
         nacaddr.IPv4('128.0.0.0/1'),
     ]
     random.shuffle(nets)
     result = summarizer.Summarize(nets)
     self.assertEqual(result, [summarizer.DSMNet(0, 0)])
Esempio n. 5
0
 def testSummarizeAllNetworks(self):
     nets = []
     for octet in range(0, 256):
         net = nacaddr.IPv4('192.168.' + str(octet) + '.64/27')
         nets.append(net)
     random.shuffle(nets)
     result = summarizer.Summarize(nets)
     # summarizes to 192.168.0.64 / 255.255.0.224
     self.assertEqual(result, [summarizer.DSMNet(3232235584, 4294901984)])
Esempio n. 6
0
 def testSummarizeSomeNetworks(self):
     nets = [
         # continiously summarizable to one /25
         nacaddr.IPv4('192.168.0.0/27'),
         nacaddr.IPv4('192.168.0.32/27'),
         nacaddr.IPv4('192.168.0.64/27'),
         nacaddr.IPv4('192.168.0.96/27'),
         # discontiniously summarizable with above
         nacaddr.IPv4('128.168.0.0/25'),
         # not summarizable with above
         nacaddr.IPv4('10.0.0.0/8'),
     ]
     for octet in range(0, 256):
         net = nacaddr.IPv4('172.16.' + str(octet) + '.96/30')
         nets.append(net)
     random.shuffle(nets)
     result = summarizer.Summarize(nets)
     self.assertEqual(result, [
         summarizer.DSMNet(167772160, 4278190080),
         summarizer.DSMNet(2158493696, 3221225344),
         summarizer.DSMNet(2886729824, 4294902012)
     ])
Esempio n. 7
0
    def testSummarizeDSMONetworks(self):
        fourth_octet = [
            2, 8, 20, 26, 28, 32, 40, 52, 58, 86, 130, 136, 148, 154, 156, 160,
            168, 180, 186, 214
        ]
        nets = list()

        for octet3 in range(56, 60):
            for octet4 in fourth_octet:
                nets.append(
                    nacaddr.IPv4('192.168.' + str(octet3) + '.' + str(octet4) +
                                 '/31'))

        result = summarizer.Summarize(nets)
        self.assertEqual(result, [
            summarizer.DSMNet(3232249858, 4294966398),
            summarizer.DSMNet(3232249864, 4294966366),
            summarizer.DSMNet(3232249876, 4294966390),
            summarizer.DSMNet(3232249882, 4294966366),
            summarizer.DSMNet(3232249888, 4294966398),
            summarizer.DSMNet(3232249908, 4294966398),
            summarizer.DSMNet(3232249942, 4294966398),
        ])
Esempio n. 8
0
 def testNacaddrNetToDSMNet(self):
     nacaddr_net = nacaddr.IPv4('192.168.0.64/27')
     dsm_net = summarizer.DSMNet(3232235584, 4294967264, '')
     self.assertEqual(summarizer._NacaddrNetToDSMNet(nacaddr_net), dsm_net)