[Zope-Checkins] CVS: ZODB3/zdaemon/tests - testzdaemon.py:1.4

Guido van Rossum guido@python.org
Wed, 13 Nov 2002 16:33:37 -0500


Update of /cvs-repository/ZODB3/zdaemon/tests
In directory cvs.zope.org:/tmp/cvs-serv9743

Modified Files:
	testzdaemon.py 
Log Message:
Add unit tests for the Options class.


=== ZODB3/zdaemon/tests/testzdaemon.py 1.3 => 1.4 ===
--- ZODB3/zdaemon/tests/testzdaemon.py:1.3	Wed Nov 13 13:03:22 2002
+++ ZODB3/zdaemon/tests/testzdaemon.py	Wed Nov 13 16:33:37 2002
@@ -92,6 +92,50 @@
         self.run("-h")
         self.expect = zdaemon.__doc__
 
+    def testOptionsSysArgv(self):
+        # Check that options are parsed from sys.argv by default
+        save_sys_argv = sys.argv
+        try:
+            sys.argv = ["A", "-c", "B", "C"]
+            opts = zdaemon.Options()
+        finally:
+            sys.argv = save_sys_argv
+        self.assertEqual(opts.opts, [("-c", "")])
+        self.assertEqual(opts.isclient, 1)
+        self.assertEqual(opts.args, ["B", "C"])
+
+    def testOptionsBasic(self):
+        # Check basic option parsing
+        opts = zdaemon.Options(["-c", "B", "C"], "foo")
+        self.assertEqual(opts.opts, [("-c", "")])
+        self.assertEqual(opts.isclient, 1)
+        self.assertEqual(opts.args, ["B", "C"])
+        self.assertEqual(opts.progname, "foo")
+
+    def testOptionsHelp(self):
+        # Check that -h behaves properly
+        try:
+            zdaemon.Options(["-h"])
+        except SystemExit, err:
+            self.failIf(err.code)
+        else:
+            self.fail("SystemExit expected")
+        self.expect = zdaemon.__doc__
+
+    def testOptionsError(self):
+        # Check that we get an error for an unrecognized option
+        save_sys_stderr = sys.stderr
+        try:
+            sys.stderr = StringIO()
+            try:
+                zdaemon.Options(["-/"])
+            except SystemExit, err:
+                self.assertEqual(err.code, 2)
+            else:
+                self.fail("SystemExit expected")
+        finally:
+            sys.stderr = save_sys_stderr
+
 def test_suite():
     suite = unittest.TestSuite()
     if os.name == "posix":