Mark Bergsma has uploaded a new change for review. (
https://gerrit.wikimedia.org/r/356612 )
Change subject: Add basic BGP.parseUpdate test case
......................................................................
Add basic BGP.parseUpdate test case
Change-Id: Ib90d61298f40b6bb0c8ae94c5edd6c56112325bc
---
M pybal/bgp/test/test_bgp.py
1 file changed, 32 insertions(+), 0 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/operations/debs/pybal
refs/changes/12/356612/1
diff --git a/pybal/bgp/test/test_bgp.py b/pybal/bgp/test/test_bgp.py
index 4b77ba4..309b2a1 100644
--- a/pybal/bgp/test/test_bgp.py
+++ b/pybal/bgp/test/test_bgp.py
@@ -198,3 +198,35 @@
mock_method.reset_mock()
self.proto.parseOpen(self.MSG_DATA_OPEN[bgp.HDR_LEN:])
mock_method.assert_called_with(bgp.ERR_MSG_OPEN_BAD_BGP_ID)
+
+ def testParseUpdate(self):
+ # Test empty UPDATE
+ update = bgp.BGPUpdateMessage()
+ self.assertEquals(self.proto.parseUpdate(bytes(update)[bgp.HDR_LEN:]),
([], [], []))
+
+ # Add withdrawals
+ withdrawals = [ip.IPPrefix("192.168.{0}.0/24".format(i)) for i in
range(100)]
+ update.addSomeWithdrawals(set(withdrawals))
+ r = self.proto.parseUpdate(bytes(update)[bgp.HDR_LEN:])
+ self.assertListEqual(sorted(r[0]), withdrawals)
+ self.assertEquals(r[1:], ([], []))
+
+ # Add some attributes
+ update.addAttributes(BGPUpdateMessageTestCase.attrs)
+ r = self.proto.parseUpdate(bytes(update)[bgp.HDR_LEN:])
+ self.assertListEqual(sorted(r[0]), withdrawals)
+ self.assertEquals(len(r[1]), len(BGPUpdateMessageTestCase.attrs))
+ self.assertEquals(r[2:], ([], ))
+
+ # ...and some NLRI
+ nlri = [ip.IPPrefix("10.{0}.3.0/24".format(i)) for i in range(100)]
+ update.addSomeNLRI(set(nlri))
+ r = self.proto.parseUpdate(bytes(update)[bgp.HDR_LEN:])
+ self.assertListEqual(sorted(r[0]), withdrawals)
+ self.assertEquals(len(r[1]), len(BGPUpdateMessageTestCase.attrs))
+ self.assertListEqual(sorted(r[2]), nlri)
+
+ # Test a malformed message
+ msgdata = bytearray(bytes(update)[bgp.HDR_LEN:])
+ msgdata[0] += 66
+ self.assertRaises(Exception, self.proto.parseUpdate, msgdata)
--
To view, visit https://gerrit.wikimedia.org/r/356612
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ib90d61298f40b6bb0c8ae94c5edd6c56112325bc
Gerrit-PatchSet: 1
Gerrit-Project: operations/debs/pybal
Gerrit-Branch: master
Gerrit-Owner: Mark Bergsma <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits