[Zope-Checkins] CVS: Zope/lib/python/ZServer/tests - test_config.py:1.3.8.1

Fred L. Drake, Jr. fred at zope.com
Thu Oct 2 16:36:31 EDT 2003


Update of /cvs-repository/Zope/lib/python/ZServer/tests
In directory cvs.zope.org:/tmp/cvs-serv9599

Modified Files:
      Tag: Zope-2_7-branch
	test_config.py 
Log Message:
test proper behavior of the monitor server factory both with and
without an emergency user (the original test was failing; now we're
more thorough)


=== Zope/lib/python/ZServer/tests/test_config.py 1.3 => 1.3.8.1 ===
--- Zope/lib/python/ZServer/tests/test_config.py:1.3	Mon Mar 24 17:32:40 2003
+++ Zope/lib/python/ZServer/tests/test_config.py	Thu Oct  2 16:36:30 2003
@@ -26,7 +26,7 @@
 TEMPFILENAME = tempfile.mktemp()
 
 
-class ZServerConfigurationTestCase(unittest.TestCase):
+class BaseTest(unittest.TestCase):
     schema = None
 
     def get_schema(self):
@@ -40,7 +40,7 @@
             </schema>
             """)
             schema = ZConfig.loadSchemaFile(sio)
-            ZServerConfigurationTestCase.schema = schema
+            BaseTest.schema = schema
         return self.schema
 
     def load_factory(self, text):
@@ -49,6 +49,24 @@
         self.assertEqual(len(conf.servers), 1)
         return conf.servers[0]
 
+    def check_prepare(self, factory):
+        port = factory.port
+        o = object()
+        factory.prepare("127.0.0.1", o, "module",
+                        {"key": "value"}, portbase=9300)
+        self.assert_(factory.dnsresolver is o)
+        self.assertEqual(factory.module, "module")
+        self.assertEqual(factory.cgienv.items(), [("key", "value")])
+        if port is None:
+            self.assert_(factory.host is None)
+            self.assert_(factory.port is None)
+        else:
+            self.assertEqual(factory.host, "127.0.0.1")
+            self.assertEqual(factory.port, 9300 + port)
+
+
+class ZServerConfigurationTestCase(BaseTest):
+
     def load_unix_domain_factory(self, text):
         fn = TEMPFILENAME
         f = open(fn, 'w')
@@ -144,19 +162,6 @@
         self.check_prepare(factory)
         factory.create().close()
 
-    def test_monitor_factory(self):
-        factory = self.load_factory("""\
-            <monitor-server>
-              address 85
-            </monitor-server>
-            """)
-        self.assert_(isinstance(factory,
-                                ZServer.datatypes.MonitorServerFactory))
-        self.assertEqual(factory.host, '')
-        self.assertEqual(factory.port, 85)
-        self.check_prepare(factory)
-        factory.create().close()
-
     def test_icp_factory(self):
         factory = self.load_factory("""\
             <icp-server>
@@ -170,24 +175,54 @@
         self.check_prepare(factory)
         factory.create().close()
 
-    def check_prepare(self, factory):
-        port = factory.port
-        o = object()
-        factory.prepare("127.0.0.1", o, "module",
-                        {"key": "value"}, portbase=9300)
-        self.assert_(factory.dnsresolver is o)
-        self.assertEqual(factory.module, "module")
-        self.assertEqual(factory.cgienv.items(), [("key", "value")])
-        if port is None:
-            self.assert_(factory.host is None)
-            self.assert_(factory.port is None)
-        else:
-            self.assertEqual(factory.host, "127.0.0.1")
-            self.assertEqual(factory.port, 9300 + port)
+
+class MonitorServerConfigurationTestCase(BaseTest):
+
+    def setUp(self):
+        from AccessControl import User
+        self.__emergency_user = User.emergency_user
+
+    class FakeUser:
+        def _getPassword(self):
+            return "foo"
+
+    def tearDown(self):
+        from AccessControl import User
+        User.emergency_user = self.__emergency_user
+
+    def setUser(self, null):
+        from AccessControl import User
+        u = self.FakeUser()
+        if null:
+            u.__null_user__ = True
+        User.emergency_user = u
+
+    def create(self):
+        factory = self.load_factory("""\
+            <monitor-server>
+              address 85
+            </monitor-server>
+            """)
+        self.assert_(isinstance(factory,
+                                ZServer.datatypes.MonitorServerFactory))
+        self.assertEqual(factory.host, '')
+        self.assertEqual(factory.port, 85)
+        self.check_prepare(factory)
+        return factory.create()
+
+    def test_monitor_factory_without_emergency_user(self):
+        self.setUser(True)
+        self.assert_(self.create() is None)
+
+    def test_monitor_factory_with_emergency_user(self):
+        self.setUser(False)
+        self.create().close()
 
 
 def test_suite():
-    return unittest.makeSuite(ZServerConfigurationTestCase)
+    suite = unittest.makeSuite(ZServerConfigurationTestCase)
+    suite.addTest(unittest.makeSuite(MonitorServerConfigurationTestCase))
+    return suite
 
 if __name__ == "__main__":
     unittest.main(defaultTest="test_suite")




More information about the Zope-Checkins mailing list