예제 #1
0
    def test_3_del_all(self):
        self.table = Table()

        self.table.update(routes)
        changed = [(t, r) for (t, r) in self.table.changed(self.now) if t]
        self.failIf(('+', routes[0]) not in changed)
        self.failIf(('+', routes[1]) not in changed)

        self.table.update([])
        self.failIf('+' in [t for (t, r) in self.table.changed(self.now) if t])
        self.failIf(('-',
                     routes[0]) not in [(t, r)
                                        for (t,
                                             r) in self.table.changed(self.now)
                                        if t])
        self.failIf(('-',
                     routes[1]) not in [(t, r)
                                        for (t,
                                             r) in self.table.changed(self.now)
                                        if t])
        self.failIf(('-',
                     routes[2]) not in [(t, r)
                                        for (t,
                                             r) in self.table.changed(self.now)
                                        if t])
예제 #2
0
 def test_1_add(self):
     self.table = Table()
     self.table.update(routes)
     changed = [(t, r) for (t, r) in self.table.changed(self.now) if t]
     self.failIf(('+', routes[0]) not in changed)
     self.failIf(('+', routes[1]) not in changed)
     self.failIf('-' in [t for t, r in self.table.changed(self.now) if t])
예제 #3
0
	def setUp(self):
		self.table = Table()
		self.table.update(routes)
		self.neighbor = Neighbor()
		self.neighbor.local_as = ASN(65000)
		self.neighbor.peer_as = ASN(65000)
		self.neighbor.peer_address = InetIP('1.2.3.4')
		self.neighbor.local_address = InetIP('5.6.7.8')
예제 #4
0
class TestProtocol(unittest.TestCase):
    def setUp(self):
        self.table = Table()
        self.table.update(routes)
        self.neighbor = Neighbor()
        self.neighbor.local_as = ASN(65000)
        self.neighbor.peer_as = ASN(65000)
        self.neighbor.peer_address = InetIP('1.2.3.4')
        self.neighbor.local_address = InetIP('5.6.7.8')

    def test_4_selfparse_update_announce(self):
        o = Open(4, 65000, '1.2.3.4', Capabilities().default(), 30).message()
        k = KeepAlive().message()
        u = Delta(self.table).announce(65000, 65000)
        network = Network(o + k + ''.join(u))
        bgp = Protocol(self.neighbor, network)
        bgp.follow = False

        self.assertEqual(bgp.read_message().TYPE, Open.TYPE)
        self.assertEqual(bgp.read_message().TYPE, KeepAlive.TYPE)
        updates = bgp.read_message()
        self.assertEqual(updates.TYPE, Update.TYPE)
        self.assertEqual(str(updates.added()[0]),
                         '10.0.0.1/32 next-hop 10.0.0.254')
        updates = bgp.read_message()
        self.assertEqual(updates.TYPE, Update.TYPE)
        self.assertEqual(str(updates.added()[0]),
                         '10.0.2.1/32 next-hop 10.0.0.254')
        updates = bgp.read_message()
        self.assertEqual(updates.TYPE, Update.TYPE)
        self.assertEqual(str(updates.added()[0]),
                         '10.0.1.1/32 next-hop 10.0.0.254')

    def test_5_selfparse_update_announce_multi(self):
        o = Open(4, 65000, '1.2.3.4', Capabilities().default(), 30).message()
        k = KeepAlive().message()
        d = Delta(self.table)
        a = d.announce(65000, 65000)
        self.table.update(routes[:-1])
        u = d.update(65000, 65000)

        network = Network(o + k + ''.join(u))
        bgp = Protocol(self.neighbor, network)
        bgp.follow = False

        self.assertEqual(bgp.read_message().TYPE, Open.TYPE)
        self.assertEqual(bgp.read_message().TYPE, KeepAlive.TYPE)
        updates = bgp.read_message()
        self.assertEqual(updates.TYPE, Update.TYPE)
        self.assertEqual(str(updates.added()[0]), '10.0.2.1/32')
예제 #5
0
파일: delta.py 프로젝트: Krychuu/exabgp
class TestProtocol (unittest.TestCase):

	def setUp(self):
		self.table = Table()
		self.table.update(routes)
		self.neighbor = Neighbor()
		self.neighbor.local_as = ASN(65000)
		self.neighbor.peer_as = ASN(65000)
		self.neighbor.peer_address = InetIP('1.2.3.4')
		self.neighbor.local_address = InetIP('5.6.7.8')

	def test_4_selfparse_update_announce (self):
		o = Open(4,65000,'1.2.3.4',Capabilities().default(),30).message()
		k = KeepAlive().message()
		u = Delta(self.table).announce(65000,65000)
		network = Network(o+k+ ''.join(u))
		bgp = Protocol(self.neighbor,network)
		bgp.follow = False

		self.assertEqual(bgp.read_message().TYPE,Open.TYPE)
		self.assertEqual(bgp.read_message().TYPE,KeepAlive.TYPE)
		updates = bgp.read_message()
		self.assertEqual(updates.TYPE,Update.TYPE)
		self.assertEqual(str(updates.added()[0]),'10.0.0.1/32 next-hop 10.0.0.254')
		updates = bgp.read_message()
		self.assertEqual(updates.TYPE,Update.TYPE)
		self.assertEqual(str(updates.added()[0]),'10.0.2.1/32 next-hop 10.0.0.254')
		updates = bgp.read_message()
		self.assertEqual(updates.TYPE,Update.TYPE)
		self.assertEqual(str(updates.added()[0]),'10.0.1.1/32 next-hop 10.0.0.254')

	def test_5_selfparse_update_announce_multi (self):
		o = Open(4,65000,'1.2.3.4',Capabilities().default(),30).message()
		k = KeepAlive().message()
		d = Delta(self.table)
		a = d.announce(65000,65000)
		self.table.update(routes[:-1])
		u = d.update(65000,65000)

		network = Network(o+k+''.join(u))
		bgp = Protocol(self.neighbor,network)
		bgp.follow = False

		self.assertEqual(bgp.read_message().TYPE,Open.TYPE)
		self.assertEqual(bgp.read_message().TYPE,KeepAlive.TYPE)
		updates = bgp.read_message()
		self.assertEqual(updates.TYPE,Update.TYPE)
		self.assertEqual(str(updates.added()[0]),'10.0.2.1/32')
예제 #6
0
파일: table.py 프로젝트: JeevaMunusamy/sdx
	def test_1_add (self):
		self.table = Table()
		self.table.update(routes)
		changed = [(t,r) for (t,r) in self.table.changed(self.now) if t]
		self.failIf(('+',routes[0]) not in changed)
		self.failIf(('+',routes[1]) not in changed)
		self.failIf('-' in [t for t,r in self.table.changed(self.now) if t])
예제 #7
0
    def test_4_multichanges(self):
        self.table = Table()

        self.table.update(routes)
        changed = [(t, r) for (t, r) in self.table.changed(self.now) if t]
        self.failIf(('+', routes[0]) not in changed)
        self.failIf(('+', routes[1]) not in changed)

        self.table.update([routes[1]])
        print '-------------------------'
        print
        print[(t, r) for (t, r) in self.table.changed(self.now) if t]
        print
        self.failIf(('-',
                     routes[0]) not in [(t, r)
                                        for (t,
                                             r) in self.table.changed(self.now)
                                        if t])
        self.failIf(('+',
                     routes[1]) not in [(t, r)
                                        for (t,
                                             r) in self.table.changed(self.now)
                                        if t])
        self.failIf(('-',
                     routes[2]) not in [(t, r)
                                        for (t,
                                             r) in self.table.changed(self.now)
                                        if t])

        self.table.update(routes)
        changed = [(t, r) for (t, r) in self.table.changed(self.now) if t]
        self.failIf(('+',
                     routes[0]) not in [(t, r)
                                        for (t,
                                             r) in self.table.changed(self.now)
                                        if t])
        self.failIf(('+',
                     routes[1]) not in [(t, r)
                                        for (t,
                                             r) in self.table.changed(self.now)
                                        if t])
        self.failIf(('+',
                     routes[2]) not in [(t, r)
                                        for (t,
                                             r) in self.table.changed(self.now)
                                        if t])
예제 #8
0
파일: table.py 프로젝트: JeevaMunusamy/sdx
	def test_2_del_all_but_1 (self):
		self.table = Table()

		self.table.update(routes)
		changed = [(t,r) for (t,r) in self.table.changed(self.now) if t]
		self.failIf(('+',routes[0]) not in changed)
		self.failIf(('+',routes[1]) not in changed)

		self.table.update([routes[1]])
		self.failIf(('-',routes[0]) not in [(t,r) for (t,r) in self.table.changed(self.now) if t])
		self.failIf(('+',routes[1]) not in [(t,r) for (t,r) in self.table.changed(self.now) if t])
		self.failIf(('-',routes[2]) not in [(t,r) for (t,r) in self.table.changed(self.now) if t])
예제 #9
0
파일: table.py 프로젝트: JeevaMunusamy/sdx
	def test_4_multichanges (self):
		self.table = Table()

		self.table.update(routes)
		changed = [(t,r) for (t,r) in self.table.changed(self.now) if t]
		self.failIf(('+',routes[0]) not in changed)
		self.failIf(('+',routes[1]) not in changed)

		self.table.update([routes[1]])
		print '-------------------------'
		print
		print [(t,r) for (t,r) in self.table.changed(self.now) if t]
		print
		self.failIf(('-',routes[0]) not in [(t,r) for (t,r) in self.table.changed(self.now) if t])
		self.failIf(('+',routes[1]) not in [(t,r) for (t,r) in self.table.changed(self.now) if t])
		self.failIf(('-',routes[2]) not in [(t,r) for (t,r) in self.table.changed(self.now) if t])

		self.table.update(routes)
		changed = [(t,r) for (t,r) in self.table.changed(self.now) if t]
		self.failIf(('+',routes[0]) not in [(t,r) for (t,r) in self.table.changed(self.now) if t])
		self.failIf(('+',routes[1]) not in [(t,r) for (t,r) in self.table.changed(self.now) if t])
		self.failIf(('+',routes[2]) not in [(t,r) for (t,r) in self.table.changed(self.now) if t])
예제 #10
0
파일: table.py 프로젝트: JeevaMunusamy/sdx
class TestTable (unittest.TestCase):

	def setUp(self):
		self.now = time.time()

	def test_1_add (self):
		self.table = Table()
		self.table.update(routes)
		changed = [(t,r) for (t,r) in self.table.changed(self.now) if t]
		self.failIf(('+',routes[0]) not in changed)
		self.failIf(('+',routes[1]) not in changed)
		self.failIf('-' in [t for t,r in self.table.changed(self.now) if t])

	def test_2_del_all_but_1 (self):
		self.table = Table()

		self.table.update(routes)
		changed = [(t,r) for (t,r) in self.table.changed(self.now) if t]
		self.failIf(('+',routes[0]) not in changed)
		self.failIf(('+',routes[1]) not in changed)

		self.table.update([routes[1]])
		self.failIf(('-',routes[0]) not in [(t,r) for (t,r) in self.table.changed(self.now) if t])
		self.failIf(('+',routes[1]) not in [(t,r) for (t,r) in self.table.changed(self.now) if t])
		self.failIf(('-',routes[2]) not in [(t,r) for (t,r) in self.table.changed(self.now) if t])


	def test_3_del_all (self):
		self.table = Table()

		self.table.update(routes)
		changed = [(t,r) for (t,r) in self.table.changed(self.now) if t]
		self.failIf(('+',routes[0]) not in changed)
		self.failIf(('+',routes[1]) not in changed)

		self.table.update([])
		self.failIf('+' in [t for (t,r) in self.table.changed(self.now) if t])
		self.failIf(('-',routes[0]) not in [(t,r) for (t,r) in self.table.changed(self.now) if t])
		self.failIf(('-',routes[1]) not in [(t,r) for (t,r) in self.table.changed(self.now) if t])
		self.failIf(('-',routes[2]) not in [(t,r) for (t,r) in self.table.changed(self.now) if t])

	def test_4_multichanges (self):
		self.table = Table()

		self.table.update(routes)
		changed = [(t,r) for (t,r) in self.table.changed(self.now) if t]
		self.failIf(('+',routes[0]) not in changed)
		self.failIf(('+',routes[1]) not in changed)

		self.table.update([routes[1]])
		print '-------------------------'
		print
		print [(t,r) for (t,r) in self.table.changed(self.now) if t]
		print
		self.failIf(('-',routes[0]) not in [(t,r) for (t,r) in self.table.changed(self.now) if t])
		self.failIf(('+',routes[1]) not in [(t,r) for (t,r) in self.table.changed(self.now) if t])
		self.failIf(('-',routes[2]) not in [(t,r) for (t,r) in self.table.changed(self.now) if t])

		self.table.update(routes)
		changed = [(t,r) for (t,r) in self.table.changed(self.now) if t]
		self.failIf(('+',routes[0]) not in [(t,r) for (t,r) in self.table.changed(self.now) if t])
		self.failIf(('+',routes[1]) not in [(t,r) for (t,r) in self.table.changed(self.now) if t])
		self.failIf(('+',routes[2]) not in [(t,r) for (t,r) in self.table.changed(self.now) if t])

if __name__ == '__main__':
	unittest.main()
예제 #11
0
class TestTable(unittest.TestCase):
    def setUp(self):
        self.now = time.time()

    def test_1_add(self):
        self.table = Table()
        self.table.update(routes)
        changed = [(t, r) for (t, r) in self.table.changed(self.now) if t]
        self.failIf(('+', routes[0]) not in changed)
        self.failIf(('+', routes[1]) not in changed)
        self.failIf('-' in [t for t, r in self.table.changed(self.now) if t])

    def test_2_del_all_but_1(self):
        self.table = Table()

        self.table.update(routes)
        changed = [(t, r) for (t, r) in self.table.changed(self.now) if t]
        self.failIf(('+', routes[0]) not in changed)
        self.failIf(('+', routes[1]) not in changed)

        self.table.update([routes[1]])
        self.failIf(('-',
                     routes[0]) not in [(t, r)
                                        for (t,
                                             r) in self.table.changed(self.now)
                                        if t])
        self.failIf(('+',
                     routes[1]) not in [(t, r)
                                        for (t,
                                             r) in self.table.changed(self.now)
                                        if t])
        self.failIf(('-',
                     routes[2]) not in [(t, r)
                                        for (t,
                                             r) in self.table.changed(self.now)
                                        if t])

    def test_3_del_all(self):
        self.table = Table()

        self.table.update(routes)
        changed = [(t, r) for (t, r) in self.table.changed(self.now) if t]
        self.failIf(('+', routes[0]) not in changed)
        self.failIf(('+', routes[1]) not in changed)

        self.table.update([])
        self.failIf('+' in [t for (t, r) in self.table.changed(self.now) if t])
        self.failIf(('-',
                     routes[0]) not in [(t, r)
                                        for (t,
                                             r) in self.table.changed(self.now)
                                        if t])
        self.failIf(('-',
                     routes[1]) not in [(t, r)
                                        for (t,
                                             r) in self.table.changed(self.now)
                                        if t])
        self.failIf(('-',
                     routes[2]) not in [(t, r)
                                        for (t,
                                             r) in self.table.changed(self.now)
                                        if t])

    def test_4_multichanges(self):
        self.table = Table()

        self.table.update(routes)
        changed = [(t, r) for (t, r) in self.table.changed(self.now) if t]
        self.failIf(('+', routes[0]) not in changed)
        self.failIf(('+', routes[1]) not in changed)

        self.table.update([routes[1]])
        print '-------------------------'
        print
        print[(t, r) for (t, r) in self.table.changed(self.now) if t]
        print
        self.failIf(('-',
                     routes[0]) not in [(t, r)
                                        for (t,
                                             r) in self.table.changed(self.now)
                                        if t])
        self.failIf(('+',
                     routes[1]) not in [(t, r)
                                        for (t,
                                             r) in self.table.changed(self.now)
                                        if t])
        self.failIf(('-',
                     routes[2]) not in [(t, r)
                                        for (t,
                                             r) in self.table.changed(self.now)
                                        if t])

        self.table.update(routes)
        changed = [(t, r) for (t, r) in self.table.changed(self.now) if t]
        self.failIf(('+',
                     routes[0]) not in [(t, r)
                                        for (t,
                                             r) in self.table.changed(self.now)
                                        if t])
        self.failIf(('+',
                     routes[1]) not in [(t, r)
                                        for (t,
                                             r) in self.table.changed(self.now)
                                        if t])
        self.failIf(('+',
                     routes[2]) not in [(t, r)
                                        for (t,
                                             r) in self.table.changed(self.now)
                                        if t])