def test_1_selfparse_open (self): ds = Open(4,65000,'1.2.3.4',Capabilities().default(),30) txt = ds.message() network = Network(txt) #print [hex(ord(c)) for c in txt] bgp = Protocol(self.neighbor,network) bgp.follow = False o = bgp.read_open('127.0.0.1') self.assertEqual(o.version,4) self.assertEqual(o.asn,65000) self.assertEqual(o.hold_time,30) self.assertEqual(str(o.router_id),'1.2.3.4')
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_6_holdtime (self): class MyPeer(Network): _data = StringIO(Open(4,65000,'1.2.3.4',Capabilities().default(),90).message()) def read (self,l): return self._data.read(l) network = MyPeer('') bgp = Protocol(self.neighbor,network) bgp.follow = False before = bgp.neighbor.hold_time bgp.new_open() bgp.read_open('127.0.0.1') after = bgp.neighbor.hold_time self.assertEqual(after,min(before,90))