############################################################################## # # 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.1 (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 import ZODB.config from ZEO.runzeo import ZEOOptions from zdaemon.tests.testzdoptions import TestZDOptions # When a hostname isn't specified in a socket binding address, ZConfig # supplies the empty string. DEFAULT_BINDING_HOST = "" class TestZEOOptions(TestZDOptions): OptionsClass = ZEOOptions input_args = ["-f", "Data.fs", "-a", "5555"] output_opts = [("-f", "Data.fs"), ("-a", "5555")] output_args = [] configdata = """ address 5555 path Data.fs """ 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, (DEFAULT_BINDING_HOST, 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, (DEFAULT_BINDING_HOST, 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, (DEFAULT_BINDING_HOST, 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')