浏览代码

Add tests for get_plugins error conditions

Mike Naberezny 11 年之前
父节点
当前提交
540ca304e9
共有 1 个文件被更改,包括 36 次插入0 次删除
  1. 36 0
      supervisor/tests/test_options.py

+ 36 - 0
supervisor/tests/test_options.py

@@ -2401,6 +2401,42 @@ class ServerOptionsTests(unittest.TestCase):
         self.assertEqual(factory[1], sys.modules[__name__])
         self.assertEqual(factory[1], sys.modules[__name__])
         self.assertEqual(factory[2], {'foo': 'cat'})
         self.assertEqual(factory[2], {'foo': 'cat'})
 
 
+    def test_rpcinterfaces_from_parser_factory_missing(self):
+        text = lstrip("""\
+        [rpcinterface:dummy]
+        # note: no supervisor.rpcinterface_factory here
+        """)
+        from supervisor.options import UnhosedConfigParser
+        config = UnhosedConfigParser()
+        config.read_string(text)
+        instance = self._makeOne()
+        try:
+            instance.get_plugins(config,
+                                 'supervisor.rpcinterface_factory',
+                                 'rpcinterface:')
+            self.fail('nothing raised')
+        except ValueError as exc:
+            self.assertEqual(exc.args[0], 'section [rpcinterface:dummy] '
+                'does not specify a supervisor.rpcinterface_factory')
+
+    def test_rpcinterfaces_from_parser_factory_not_importable(self):
+        text = lstrip("""\
+        [rpcinterface:dummy]
+        supervisor.rpcinterface_factory = nonexistant
+        """)
+        from supervisor.options import UnhosedConfigParser
+        config = UnhosedConfigParser()
+        config.read_string(text)
+        instance = self._makeOne()
+        try:
+            instance.get_plugins(config,
+                                 'supervisor.rpcinterface_factory',
+                                 'rpcinterface:')
+            self.fail('nothing raised')
+        except ValueError as exc:
+            self.assertEqual(exc.args[0], 'nonexistant cannot be resolved '
+                'within [rpcinterface:dummy]')
+
     def test_clear_autochildlogdir(self):
     def test_clear_autochildlogdir(self):
         dn = tempfile.mkdtemp()
         dn = tempfile.mkdtemp()
         try:
         try: