[svn] commit: r1569 - in /trunk/src/bin/xfrin: unittest/xfrin_test.py xfrin.py.in

BIND 10 source code commits bind10-changes at lists.isc.org
Fri Mar 19 03:54:29 UTC 2010


Author: zhanglikun
Date: Fri Mar 19 03:54:28 2010
New Revision: 1569

Log:
Fix bug, when user doesn't enter the port number for xfrin command, the xfrin shouldn't crash.

Modified:
    trunk/src/bin/xfrin/unittest/xfrin_test.py
    trunk/src/bin/xfrin/xfrin.py.in

Modified: trunk/src/bin/xfrin/unittest/xfrin_test.py
==============================================================================
--- trunk/src/bin/xfrin/unittest/xfrin_test.py (original)
+++ trunk/src/bin/xfrin/unittest/xfrin_test.py Fri Mar 19 03:54:28 2010
@@ -31,14 +31,25 @@
         args['zone_name'] = 'sd.cn.'
         args['port'] = '12345'
         args['master'] = '218.241.108.122'
+        args['db_file'] = '/home/tt'
 
         name, master, port, db_file = xfr._parse_cmd_params(args)
         self.assertEqual(port, 12345)
         self.assertEqual(name, 'sd.cn.')
         self.assertEqual(master, '218.241.108.122')
-        self.assertEqual(db_file, '/tmp/zone.sqlite3')
+        self.assertEqual(db_file, '/home/tt')
 
+    def test_parse_cmd_params_1(self):
+        xfr = MyXfrin()
+        args = {}
+        args['port'] = '12345'
+        args['master'] = '218.241.108.122'
+        args['db_file'] = '/home/tt'
 
+        self.assertRaises(XfrinException, xfr._parse_cmd_params, args)
+        self.assertRaises(XfrinException, xfr._parse_cmd_params, {'zone_name':'ds.cn.', 'master':'3.3.3'})
+        self.assertRaises(XfrinException, xfr._parse_cmd_params, {'zone_name':'ds.cn.'})
+        self.assertRaises(XfrinException, xfr._parse_cmd_params, {'master':'ds.cn.'})
 
 
 if __name__== "__main__":

Modified: trunk/src/bin/xfrin/xfrin.py.in
==============================================================================
--- trunk/src/bin/xfrin/xfrin.py.in (original)
+++ trunk/src/bin/xfrin/xfrin.py.in Fri Mar 19 03:54:28 2010
@@ -372,14 +372,20 @@
         return answer
 
     def _parse_cmd_params(self, args):
-        zone_name = args['zone_name']
-        master = args['master']
+        zone_name = args.get('zone_name')
+        if not zone_name:
+            raise XfrinException('zone name should be provided')
+
+        master = args.get('master')
+        if not master:
+            raise XfrinException('master address should be provided')
+
         check_addr(master)
-        port = int(args.get('port'))
-        if port:
+        port = 53
+        port_str = args.get('port')
+        if port_str:
+            port = int(port_str)
             check_port(port)
-        else:
-            port = 53
 
         db_file = args.get('db_file')
         if not db_file:




More information about the bind10-changes mailing list