[svn] commit: r2267 - in /branches/trac167/src/bin/bind10: bind10.py.in tests/bind10_test.py

BIND 10 source code commits bind10-changes at lists.isc.org
Thu Jun 24 20:31:51 UTC 2010


Author: each
Date: Thu Jun 24 20:31:51 2010
New Revision: 2267

Log:
Address review comments: add tests, refactor IPAddr class a bit

Modified:
    branches/trac167/src/bin/bind10/bind10.py.in
    branches/trac167/src/bin/bind10/tests/bind10_test.py

Modified: branches/trac167/src/bin/bind10/bind10.py.in
==============================================================================
--- branches/trac167/src/bin/bind10/bind10.py.in (original)
+++ branches/trac167/src/bin/bind10/bind10.py.in Thu Jun 24 20:31:51 2010
@@ -164,19 +164,20 @@
 
     def __init__(self, addr):
         try:
-            f = socket.AF_INET
-            a = socket.inet_pton(f, addr)
-        except socket.error:
-            try:
-                f = socket.AF_INET6
-                a = socket.inet_pton(f, addr)
-            except socket.error as se:
-                raise se
+            a = socket.inet_pton(socket.AF_INET, addr)
+            self.family = socket.AF_INET
+            self.addr = a
+            return
+        except:
+            pass
+
+        try:
+            a = socket.inet_pton(socket.AF_INET6, addr)
+            self.family = socket.AF_INET6
+            self.addr = a
+            return
         except Exception as e:
-            print(str(e))
-
-        self.family = f
-        self.addr = a
+            raise e
     
     def __str__(self):
         return socket.inet_ntop(self.family, self.addr)

Modified: branches/trac167/src/bin/bind10/tests/bind10_test.py
==============================================================================
--- branches/trac167/src/bin/bind10/tests/bind10_test.py (original)
+++ branches/trac167/src/bin/bind10/tests/bind10_test.py Thu Jun 24 20:31:51 2010
@@ -1,4 +1,4 @@
-from bind10 import ProcessInfo, BoB
+from bind10 import ProcessInfo, BoB, IPAddr
 
 # XXX: environment tests are currently disabled, due to the preprocessor
 #      setup that we have now complicating the environment
@@ -7,6 +7,7 @@
 import sys
 import os
 import signal
+import socket
 
 class TestProcessInfo(unittest.TestCase):
     def setUp(self):
@@ -71,21 +72,67 @@
         self.assertTrue(type(pi.pid) is int)
         self.assertNotEqual(pi.pid, old_pid)
 
+class TestIPAddr(unittest.TestCase):
+    def test_v6ok(self):
+        addr = IPAddr('2001:4f8::1')
+        self.assertEqual(addr.family, socket.AF_INET6)
+        self.assertEqual(addr.addr, socket.inet_pton(socket.AF_INET6, '2001:4f8::1'))
+
+    def test_v4ok(self):
+        addr = IPAddr('127.127.127.127')
+        self.assertEqual(addr.family, socket.AF_INET)
+        self.assertEqual(addr.addr, socket.inet_aton('127.127.127.127'))
+
+    def test_badaddr(self):
+        self.assertRaises(socket.error, IPAddr, 'foobar')
+        self.assertRaises(socket.error, IPAddr, '123')
+        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, '')
+
 class TestBoB(unittest.TestCase):
     def test_init(self):
         bob = BoB()
         self.assertEqual(bob.verbose, False)
         self.assertEqual(bob.c_channel_port, 9912)
+        self.assertEqual(bob.auth_port, 5300)
         self.assertEqual(bob.cc_session, None)
+        self.assertEqual(bob.address, None)
         self.assertEqual(bob.processes, {})
         self.assertEqual(bob.dead_processes, {})
         self.assertEqual(bob.runnable, False)
 
-    def test_init_alternate_port(self):
+    def test_init_alternate_channel_port(self):
         bob = BoB(2199)
         self.assertEqual(bob.verbose, False)
         self.assertEqual(bob.c_channel_port, 2199)
+        self.assertEqual(bob.auth_port, 5300)
         self.assertEqual(bob.cc_session, None)
+        self.assertEqual(bob.address, None)
+        self.assertEqual(bob.processes, {})
+        self.assertEqual(bob.dead_processes, {})
+        self.assertEqual(bob.runnable, False)
+
+    def test_init_alternate_auth_port(self):
+        bob = BoB(9912, 9999)
+        self.assertEqual(bob.verbose, False)
+        self.assertEqual(bob.c_channel_port, 9912)
+        self.assertEqual(bob.auth_port, 9999)
+        self.assertEqual(bob.cc_session, None)
+        self.assertEqual(bob.address, None)
+        self.assertEqual(bob.processes, {})
+        self.assertEqual(bob.dead_processes, {})
+        self.assertEqual(bob.runnable, False)
+
+    def test_init_alternate_address(self):
+        bob = BoB(9912, 5300, '127.127.127.127')
+        self.assertEqual(bob.verbose, False)
+        self.assertEqual(bob.c_channel_port, 9912)
+        self.assertEqual(bob.auth_port, 5300)
+        self.assertEqual(bob.cc_session, None)
+        self.assertEqual(bob.address.addr, socket.inet_aton('127.127.127.127'))
         self.assertEqual(bob.processes, {})
         self.assertEqual(bob.dead_processes, {})
         self.assertEqual(bob.runnable, False)




More information about the bind10-changes mailing list