Kaydet (Commit) 2fcd73d7 authored tarafından Gregory P. Smith's avatar Gregory P. Smith

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
........
üst bb672147
...@@ -209,6 +209,7 @@ class BaseIP(object): ...@@ -209,6 +209,7 @@ class BaseIP(object):
raise IndexError raise IndexError
return self._string_from_ip_int(self.network + n) return self._string_from_ip_int(self.network + n)
else: else:
n += 1
if self.broadcast + n < self.network: if self.broadcast + n < self.network:
raise IndexError raise IndexError
return self._string_from_ip_int(self.broadcast + n) return self._string_from_ip_int(self.broadcast + n)
......
...@@ -274,6 +274,17 @@ class IpaddrUnitTest(unittest.TestCase): ...@@ -274,6 +274,17 @@ class IpaddrUnitTest(unittest.TestCase):
self.assertEqual(self.ipv6[5], self.assertEqual(self.ipv6[5],
'2001:658:22a:cafe::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): def test_equals(self):
self.assertTrue(self.ipv4 == ipaddr.IPv4('1.2.3.4/24')) self.assertTrue(self.ipv4 == ipaddr.IPv4('1.2.3.4/24'))
self.assertFalse(self.ipv4 == ipaddr.IPv4('1.2.3.4/23')) self.assertFalse(self.ipv4 == ipaddr.IPv4('1.2.3.4/23'))
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment