[svn] commit: r3233 - in /branches/trac353/src/lib/python/isc/net: addr.py parse.py tests/addr_test.py
BIND 10 source code commits
bind10-changes at lists.isc.org
Fri Oct 15 16:00:52 UTC 2010
Author: vorner
Date: Fri Oct 15 16:00:52 2010
New Revision: 3233
Log:
Be more explicit about what is raised
And also raise something "nicer"
Modified:
branches/trac353/src/lib/python/isc/net/addr.py
branches/trac353/src/lib/python/isc/net/parse.py
branches/trac353/src/lib/python/isc/net/tests/addr_test.py
Modified: branches/trac353/src/lib/python/isc/net/addr.py
==============================================================================
--- branches/trac353/src/lib/python/isc/net/addr.py (original)
+++ branches/trac353/src/lib/python/isc/net/addr.py Fri Oct 15 16:00:52 2010
@@ -16,12 +16,20 @@
"""Module where address representations live."""
import socket
+class InvalidAddress(ValueError):
+ """Exception for invalid addresses."""
+ pass
+
class IPAddr:
"""Stores an IPv4 or IPv6 address."""
family = None
addr = None
def __init__(self, addr):
+ """
+ Creates the address object from a string representation. It raises
+ an InvalidAddr exception if the provided string isn't valid address.
+ """
try:
a = socket.inet_pton(socket.AF_INET, addr)
self.family = socket.AF_INET
@@ -35,8 +43,8 @@
self.family = socket.AF_INET6
self.addr = a
return
- except Exception as e:
- raise e
+ except socket.error as e:
+ raise InvalidAddress(str(e))
def __str__(self):
return socket.inet_ntop(self.family, self.addr)
Modified: branches/trac353/src/lib/python/isc/net/parse.py
==============================================================================
--- branches/trac353/src/lib/python/isc/net/parse.py (original)
+++ branches/trac353/src/lib/python/isc/net/parse.py Fri Oct 15 16:00:52 2010
@@ -17,7 +17,7 @@
Checking and parsing of ports and IP addresses.
"""
-from isc.net.addr import IPAddr
+from isc.net.addr import IPAddr, InvalidAddress
import socket
def port_parse(port):
@@ -43,6 +43,6 @@
"""
try:
return IPAddr(addr)
- except socket.error:
+ except InvalidAddress:
raise ValueError('Value ' + addr +
' is not valid IPv4 or IPv6 address')
Modified: branches/trac353/src/lib/python/isc/net/tests/addr_test.py
==============================================================================
--- branches/trac353/src/lib/python/isc/net/tests/addr_test.py (original)
+++ branches/trac353/src/lib/python/isc/net/tests/addr_test.py Fri Oct 15 16:00:52 2010
@@ -16,7 +16,7 @@
"""Tests for the isc.net.addr module."""
import unittest
import socket
-from isc.net.addr import IPAddr
+from isc.net.addr import IPAddr, InvalidAddress
class TestIPAddr(unittest.TestCase):
"""Test for the IPAddr class."""
@@ -34,15 +34,15 @@
def test_badaddr(self):
"""Test if we raise on wrong address."""
- self.assertRaises(socket.error, IPAddr, 'foobar')
- self.assertRaises(socket.error, IPAddr, 'foo::bar')
- self.assertRaises(socket.error, IPAddr, '123')
- self.assertRaises(socket.error, IPAddr, '123.456.789.0')
- self.assertRaises(socket.error, IPAddr, '127/8')
- self.assertRaises(socket.error, IPAddr, '0/0')
- self.assertRaises(socket.error, IPAddr, '1.2.3.4/32')
- self.assertRaises(socket.error, IPAddr, '0')
- self.assertRaises(socket.error, IPAddr, '')
+ self.assertRaises(InvalidAddress, IPAddr, 'foobar')
+ self.assertRaises(InvalidAddress, IPAddr, 'foo::bar')
+ self.assertRaises(InvalidAddress, IPAddr, '123')
+ self.assertRaises(InvalidAddress, IPAddr, '123.456.789.0')
+ self.assertRaises(InvalidAddress, IPAddr, '127/8')
+ self.assertRaises(InvalidAddress, IPAddr, '0/0')
+ self.assertRaises(InvalidAddress, IPAddr, '1.2.3.4/32')
+ self.assertRaises(InvalidAddress, IPAddr, '0')
+ self.assertRaises(InvalidAddress, IPAddr, '')
if __name__ == '__main__':
unittest.main()
More information about the bind10-changes
mailing list