From b5202cfe3886c410080f10aa34bbc03de1868567 Mon Sep 17 00:00:00 2001
From: Guido van Rossum <guido@python.org>
Date: Sat, 18 Jan 2003 03:51:47 +0000
Subject: [PATCH] A few unit tests for zdaemo.zdoptons.ZDOptions and
 ZEO.runzeo.ZEOOptions.

---
 src/ZEO/tests/testZEOOptions.py | 107 ++++++++++++++++++++++++++++++++
 1 file changed, 107 insertions(+)
 create mode 100644 src/ZEO/tests/testZEOOptions.py

diff --git a/src/ZEO/tests/testZEOOptions.py b/src/ZEO/tests/testZEOOptions.py
new file mode 100644
index 00000000..55df73e2
--- /dev/null
+++ b/src/ZEO/tests/testZEOOptions.py
@@ -0,0 +1,107 @@
+##############################################################################
+#
+# Copyright (c) 2001, 2002 Zope Corporation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.0 (ZPL).  A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE
+#
+##############################################################################
+
+"""Test suite for ZEO.runzeo.ZEOOptions."""
+
+import os
+import sys
+import tempfile
+import unittest
+from StringIO import StringIO
+
+import ZODB.config
+
+from ZEO.runzeo import ZEOOptions
+from zdaemon.tests.testzdoptions import TestZDOptions
+
+class TestZEOOptions(TestZDOptions):
+
+    OptionsClass = ZEOOptions
+
+    input_args = ["-f", "Data.fs", "-a", "5555"]
+    output_opts = [("-f", "Data.fs"), ("-a", "5555")]
+    output_args = []
+
+    configdata = """
+        <zeo>
+          address 5555
+        </zeo>
+        <filestorage fs>
+          path Data.fs
+        </filestorage>
+        """
+
+    def setUp(self):
+        self.tempfilename = tempfile.mktemp()
+        f = open(self.tempfilename, "w")
+        f.write(self.configdata)
+        f.close()
+
+    def tearDown(self):
+        try:
+            os.remove(self.tempfilename)
+        except os.error:
+            pass
+
+    def test_configure(self):
+        # Hide the base class test_configure
+        pass
+
+    def test_defaults_with_schema(self):
+        options = self.OptionsClass()
+        options.realize(["-C", self.tempfilename])
+        self.assertEqual(options.address, ("", 5555))
+        self.assertEqual(len(options.storages), 1)
+        opener = options.storages[0]
+        self.assertEqual(opener.name, "fs")
+        self.assertEqual(opener.__class__, ZODB.config.FileStorage)
+        self.assertEqual(options.read_only, 0)
+        self.assertEqual(options.transaction_timeout, None)
+        self.assertEqual(options.invalidation_queue_size, 100)
+
+    def test_defaults_without_schema(self):
+        options = self.OptionsClass()
+        options.realize(["-a", "5555", "-f", "Data.fs"])
+        self.assertEqual(options.address, ("", 5555))
+        self.assertEqual(len(options.storages), 1)
+        opener = options.storages[0]
+        self.assertEqual(opener.name, "1")
+        self.assertEqual(opener.__class__, ZODB.config.FileStorage)
+        self.assertEqual(opener.config.path, "Data.fs")
+        self.assertEqual(options.read_only, 0)
+        self.assertEqual(options.transaction_timeout, None)
+        self.assertEqual(options.invalidation_queue_size, 100)
+
+    def test_commandline_overrides(self):
+        options = self.OptionsClass()
+        options.realize(["-C", self.tempfilename,
+                         "-a", "6666", "-f", "Wisdom.fs"])
+        self.assertEqual(options.address, ("", 6666))
+        self.assertEqual(len(options.storages), 1)
+        opener = options.storages[0]
+        self.assertEqual(opener.__class__, ZODB.config.FileStorage)
+        self.assertEqual(opener.config.path, "Wisdom.fs")
+        self.assertEqual(options.read_only, 0)
+        self.assertEqual(options.transaction_timeout, None)
+        self.assertEqual(options.invalidation_queue_size, 100)
+
+
+def test_suite():
+    suite = unittest.TestSuite()
+    for cls in [TestZEOOptions]:
+        suite.addTest(unittest.makeSuite(cls))
+    return suite
+
+if __name__ == "__main__":
+    unittest.main(defaultTest='test_suite')
-- 
2.30.9