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_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 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')
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')
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')
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_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])
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_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])
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()
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])