[Python-checkins] r72490 - in python/branches/py3k: Lib/ipaddr.py Lib/test/test_ipaddr.py

gregory.p.smith python-checkins at python.org
Sat May 9 01:19:47 CEST 2009


Author: gregory.p.smith
Date: Sat May  9 01:19:47 2009
New Revision: 72490

Log:
Merged revisions 72489 via svnmerge from 
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r72489 | gregory.p.smith | 2009-05-08 16:16:47 -0700 (Fri, 08 May 2009) | 3 lines
  
  Fix an off by one error on negative indexs to __getitem__
  http://code.google.com/p/ipaddr-py/issues/detail?id=15
........


Modified:
   python/branches/py3k/   (props changed)
   python/branches/py3k/Lib/ipaddr.py
   python/branches/py3k/Lib/test/test_ipaddr.py

Modified: python/branches/py3k/Lib/ipaddr.py
==============================================================================
--- python/branches/py3k/Lib/ipaddr.py	(original)
+++ python/branches/py3k/Lib/ipaddr.py	Sat May  9 01:19:47 2009
@@ -209,6 +209,7 @@
                 raise IndexError
             return self._string_from_ip_int(self.network + n)
         else:
+            n += 1
             if self.broadcast + n < self.network:
                 raise IndexError
             return self._string_from_ip_int(self.broadcast + n)

Modified: python/branches/py3k/Lib/test/test_ipaddr.py
==============================================================================
--- python/branches/py3k/Lib/test/test_ipaddr.py	(original)
+++ python/branches/py3k/Lib/test/test_ipaddr.py	Sat May  9 01:19:47 2009
@@ -274,6 +274,17 @@
         self.assertEqual(self.ipv6[5],
                          '2001:658:22a:cafe::5')
 
+    def test_getitem(self):
+        # http://code.google.com/p/ipaddr-py/issues/detail?id=15
+        addr = ipaddr.IPv4('172.31.255.128/255.255.255.240')
+        self.assertEqual(28, addr.prefixlen)
+        addr_list = list(addr)
+        self.assertEqual('172.31.255.128', addr_list[0])
+        self.assertEqual('172.31.255.128', addr[0])
+        self.assertEqual('172.31.255.143', addr_list[-1])
+        self.assertEqual('172.31.255.143', addr[-1])
+        self.assertEqual(addr_list[-1], addr[-1])
+
     def test_equals(self):
         self.assertTrue(self.ipv4 == ipaddr.IPv4('1.2.3.4/24'))
         self.assertFalse(self.ipv4 == ipaddr.IPv4('1.2.3.4/23'))


More information about the Python-checkins mailing list