[Zodb-checkins] CVS: Zope/lib/python/zdaemon/tests - testzdrun.py:1.8

Fred Drake cvs-admin at zope.org
Fri Oct 24 17:29:45 EDT 2003


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

Modified Files:
	testzdrun.py 
Log Message:
Change the ZEO control process and configuration schema so that a single
configuration file can be used for both the runzeo and zeoctl scripts.
This makes it easier to keep all the configuration needed to support the
ZEO server process in a single file.
For more explanation of the changes, see
http://zope.org/Members/fdrake/WikiBlog/ZEOServerConfiguration


=== Zope/lib/python/zdaemon/tests/testzdrun.py 1.7 => 1.8 ===
--- Zope/lib/python/zdaemon/tests/testzdrun.py:1.7	Thu Oct  2 18:14:05 2003
+++ Zope/lib/python/zdaemon/tests/testzdrun.py	Fri Oct 24 17:29:44 2003
@@ -7,9 +7,38 @@
 import tempfile
 import unittest
 import socket
+
 from StringIO import StringIO
+
+import ZConfig
+
 from zdaemon import zdrun, zdctl
 
+
+class ConfiguredOptions:
+    """Options class that loads configuration from a specified string.
+
+    This always loads from the string, regardless of any -C option
+    that may be given.
+    """
+
+    def set_configuration(self, configuration):
+        self.__configuration = configuration
+        self.configfile = "<preloaded string>"
+
+    def load_configfile(self):
+        sio = StringIO(self.__configuration)
+        cfg = ZConfig.loadConfigFile(self.schema, sio, self.zconfig_options)
+        self.configroot, self.confighandlers = cfg
+
+
+class ConfiguredZDRunOptions(ConfiguredOptions, zdrun.ZDRunOptions):
+
+    def __init__(self, configuration):
+        zdrun.ZDRunOptions.__init__(self)
+        self.set_configuration(configuration)
+
+
 class ZDaemonTests(unittest.TestCase):
 
     python = os.path.abspath(sys.executable)
@@ -145,6 +174,37 @@
         self.assertEqual(os.WTERMSIG(wsts), signal.SIGTERM)
         proc.setstatus(wsts)
         self.assertEqual(proc.pid, 0)
+
+    def testEventlogOverride(self):
+        # Make sure runner.eventlog is used if it exists
+        options = ConfiguredZDRunOptions("""\
+            <runner>
+              program /bin/true
+              <eventlog>
+                level 42
+              </eventlog>
+            </runner>
+
+            <eventlog>
+              level 35
+            </eventlog>
+            """)
+        options.realize(["/bin/true"])
+        self.assertEqual(options.config_logger.level, 42)
+
+    def testEventlogWithoutOverride(self):
+        # Make sure eventlog is used if runner.eventlog doesn't exist
+        options = ConfiguredZDRunOptions("""\
+            <runner>
+              program /bin/true
+            </runner>
+
+            <eventlog>
+              level 35
+            </eventlog>
+            """)
+        options.realize(["/bin/true"])
+        self.assertEqual(options.config_logger.level, 35)
 
     def testRunIgnoresParentSignals(self):
         # Spawn a process which will in turn spawn a zdrun process.




More information about the Zodb-checkins mailing list