瀏覽代碼

Refactor some common test code

Cherry-picked from 9be96c963cc92b8edc008fc9c4c5090373f6be8d on
fixoptions.py3k branch

Conflicts:
	supervisor/tests/test_options.py
Nick Pilon 11 年之前
父節點
當前提交
464c8f379d
共有 1 個文件被更改,包括 28 次插入34 次删除
  1. 28 34
      supervisor/tests/test_options.py

+ 28 - 34
supervisor/tests/test_options.py

@@ -25,6 +25,25 @@ from supervisor.tests.base import DummyProcess
 from supervisor.tests.base import DummySocketConfig
 from supervisor.tests.base import lstrip
 
+
+def missing_but_potential_file():
+    """Quick and dirty way of coming up with a decent filename that might exist"""
+    tempf = tempfile.NamedTemporaryFile()
+    fname = tempf.name
+    tempf.close()
+    return fname
+
+class DummyExitException(Exception):
+    def __init__(self, exitcode):
+        self.exitcode = exitcode
+
+def dummy_exit():
+    """Dummy out exit so we don't actually exit"""
+    def dummy_exit(_exitcode=0):
+        raise DummyExitException(exitcode=_exitcode)
+    return dummy_exit
+
+
 class OptionTests(unittest.TestCase):
 
     def _makeOptions(self, read_error=False):
@@ -138,11 +157,7 @@ class ClientOptionsTests(unittest.TestCase):
         self.assertTrue(len(instance.searchpaths) > 0)
         instance.searchpaths = []
 
-        class DummyException(Exception):
-            pass
-        def dummy_exit(self, _exitcode=0):
-            raise DummyException()
-        instance.exit = dummy_exit
+        instance.exit = dummy_exit()
 
         instance.realize(args=['-s', 'http://localhost:9001', '-u', 'chris',
                                '-p', '123'])
@@ -178,25 +193,16 @@ class ClientOptionsTests(unittest.TestCase):
         self.assertEqual(options.history_file, history_file)
 
     def test_unreadable_config_file(self):
-        # Quick and dirty way of coming up with a decent filename
-        tempf = tempfile.NamedTemporaryFile()
-        fname = tempf.name
-        tempf.close()
+        fname = missing_but_potential_file()
         self.assertFalse(os.path.exists(fname))
 
         instance = self._makeOne()
         instance.stderr = StringIO()
 
-        class DummyException(Exception):
-            def __init__(self, exitcode):
-                self.exitcode = exitcode
-        def dummy_exit(self, exitcode=2):
-            # Important default exitcode=2 like sys.exit.
-            raise DummyException(exitcode)
-        instance.exit = dummy_exit
+        instance.exit = dummy_exit()
         try:
             instance.realize(args=['-c', fname])
-        except DummyException, e:
+        except DummyExitException as e:
             self.assertEqual(e.exitcode, 2)
         else:
             self.fail("expected exception")
@@ -500,26 +506,20 @@ class ServerOptionsTests(unittest.TestCase):
         self.assertTrue(len(instance.searchpaths) > 0)
         instance.searchpaths = []
 
-        class DummyException(Exception):
-            def __init__(self, exitcode):
-                self.exitcode = exitcode
-        def dummy_exit(exitcode=2):
-            # Important default exitcode=2 like sys.exit.
-            raise DummyException(exitcode)
-        instance.exit = dummy_exit
+        instance.exit = dummy_exit()
 
         # Making sure we capture stdout and stderr
         instance.stderr = StringIO()
 
         try:
             instance.realize()
-        except DummyException, e:
+        except DummyExitException as e:
             # Caught expected exception
             import traceback
             self.assertEqual(e.exitcode, 2,
                               "Wrong exitcode for: %s" % traceback.format_exc(e))
         else:
-            self.fail("Did not get a DummyException.")
+            self.fail("Did not get a DummyExitException.")
 
     def test_reload(self):
         from cStringIO import StringIO
@@ -617,16 +617,10 @@ class ServerOptionsTests(unittest.TestCase):
         instance = self._makeOne()
         instance.stderr = StringIO()
 
-        class DummyException(Exception):
-            def __init__(self, exitcode):
-                self.exitcode = exitcode
-        def dummy_exit(self, exitcode=2):
-            # Important default exitcode=2 like sys.exit.
-            raise DummyException(exitcode)
-        instance.exit = dummy_exit
+        instance.exit = dummy_exit()
         try:
             instance.realize(args=['-c', fname])
-        except DummyException, e:
+        except DummyExitException as e:
             self.assertEqual(e.exitcode, 2)
         else:
             self.fail("expected exception")