Mark Bergsma has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/355214 )

Change subject: Add IPv4IP, IPv6IP and IPPrefix test cases
......................................................................

Add IPv4IP, IPv6IP and IPPrefix test cases

Change-Id: I48dd95d6e4d5194a4d6e90fe5599086a5befaf60
---
M pybal/bgp/test_ip.py
1 file changed, 64 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/operations/debs/pybal 
refs/changes/14/355214/1

diff --git a/pybal/bgp/test_ip.py b/pybal/bgp/test_ip.py
index ed70930..bbbc429 100644
--- a/pybal/bgp/test_ip.py
+++ b/pybal/bgp/test_ip.py
@@ -18,16 +18,40 @@
 
         self.assertEquals(prefix.addressfamily, ip.AFI_INET)
         self.assertEquals(prefix.prefixlen, 32)
+        self.assertEquals(len(prefix), 32)
 
     def testPrefixInt(self):
         prefix = ip.IPv4IP(2130706433)
         self.assertEquals(prefix.prefixlen, 32)
+        self.assertEquals(len(prefix), 32)
         self.assertEquals(str(prefix), '127.0.0.1')
 
     def testPrefixOctets(self):
         prefix = ip.IPv4IP((0x7f, 0x0, 0x0, 0x1))
         self.assertEquals(prefix.prefixlen, 32)
+        self.assertEquals(len(prefix), 32)
         self.assertEquals(str(prefix), '127.0.0.1')
+
+    def testComparisons(self):
+        p1, p2 = ip.IPv4IP('127.0.0.1'), ip.IPv4IP('127.0.0.2')
+        self.assertNotEqual(p1, p2)
+        self.assertLess(p1, p2)
+        self.assertEquals(p1, ip.IPv4IP(2130706433))
+        self.assertLessEqual(p1, p2)
+        self.assertLessEqual(p1, ip.IPv4IP(2130706433))
+        self.assertNotEqual(hash(p1), hash(p2))
+
+    def testIPToInt(self):
+        prefix = ip.IPv4IP('127.0.0.1')
+        self.assertEquals(prefix.ipToInt(), 2130706433)
+
+    def testNetmask(self):
+        prefix = ip.IPv4IP('127.0.0.1')
+        self.assertEquals(prefix.netmask(), -1)
+
+    def testPacked(self):
+        prefix = ip.IPv4IP('127.0.0.1')
+        self.assertEquals(prefix.packed(pad=True), b'\x7F\0\0\x01')
 
 class IPv6IPTestCase(TestCase):
 
@@ -36,7 +60,47 @@
 
         self.assertEquals(prefix.addressfamily, ip.AFI_INET6)
         self.assertEquals(prefix.prefixlen, 128)
+        self.assertEquals(len(prefix), 128)
+        self.assertEquals(str(prefix), '2620:0:862:ed1a:0:0:0:1')
+
+    def testComparisons(self):
+        p1, p2 = ip.IPv6IP('fe80::1'), ip.IPv6IP('2620:0:862:ed1a::1')
+        self.assertNotEqual(p1, p2)
+        self.assertGreater(p1, p2)
+        self.assertGreaterEqual(p1, p2)
+        self.assertNotEqual(hash(p1), hash(p2))
+
+    def testPacked(self):
+        self.assertEquals(ip.IPv6IP('2620:0:862:ed1a::1').packed(pad=True),
+            b'\x26\x20\0\0\x08\x62\xed\x1a\0\0\0\0\0\0\0\x01')
 
     def testValueError(self):
         with self.assertRaises(ValueError):
             ip.IPv6IP()
+
+class IPPrefixTestCase(TestCase):
+
+    def testPrefixStr(self):
+        prefix = ip.IPPrefix('91.198.174.192/32')
+
+        self.assertEquals(prefix.addressfamily, ip.AFI_INET)
+        self.assertEquals(prefix.prefixlen, 32)
+        self.assertEquals(len(prefix), 32)
+        self.assertEquals(prefix, ip.IPv4IP('91.198.174.192'))
+        self.assertEquals(str(prefix), '91.198.174.192/32')
+
+        prefix = ip.IPPrefix('192.168.1.2/24')
+        self.assertEquals(len(prefix), 24)
+        prefix.mask(len(prefix))
+        self.assertEquals(prefix, ip.IPPrefix('192.168.1.0/24'))
+
+        prefix = ip.IPPrefix('2620:0:863::/46')
+        self.assertEquals(len(prefix), 46)
+        self.assertEquals(str(prefix), '2620:0:863:0:0:0:0:0/46')
+
+    def testComparisons(self):
+        p1, p2 = ip.IPPrefix('1.2.3.4/8'), ip.IPPrefix('1.2.3.4/16')
+        self.assertNotEqual(p1, p2)
+        self.assertLess(p1, p2)
+        self.assertLessEqual(p1, p2)
+        self.assertNotEqual(hash(p1), hash(p2))

-- 
To view, visit https://gerrit.wikimedia.org/r/355214
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I48dd95d6e4d5194a4d6e90fe5599086a5befaf60
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

Reply via email to