[Checkins] SVN: zope.mkzeoinstance/trunk/ Test cases for creating ZEO instance in Unix

Baiju M baiju.m.mail at gmail.com
Wed May 19 07:37:58 EDT 2010


Log message for revision 112517:
  Test cases for creating ZEO instance in Unix
  

Changed:
  A   zope.mkzeoinstance/trunk/buildout.cfg
  U   zope.mkzeoinstance/trunk/src/zope/mkzeoinstance/__init__.py
  A   zope.mkzeoinstance/trunk/src/zope/mkzeoinstance/tests/
  A   zope.mkzeoinstance/trunk/src/zope/mkzeoinstance/tests/__init__.py
  A   zope.mkzeoinstance/trunk/src/zope/mkzeoinstance/tests/test_unix.py

-=-
Added: zope.mkzeoinstance/trunk/buildout.cfg
===================================================================
--- zope.mkzeoinstance/trunk/buildout.cfg	                        (rev 0)
+++ zope.mkzeoinstance/trunk/buildout.cfg	2010-05-19 11:37:58 UTC (rev 112517)
@@ -0,0 +1,7 @@
+[buildout]
+develop = .
+parts = test
+
+[test]
+recipe = zc.recipe.testrunner
+eggs = zope.mkzeoinstance

Modified: zope.mkzeoinstance/trunk/src/zope/mkzeoinstance/__init__.py
===================================================================
--- zope.mkzeoinstance/trunk/src/zope/mkzeoinstance/__init__.py	2010-05-19 11:33:59 UTC (rev 112516)
+++ zope.mkzeoinstance/trunk/src/zope/mkzeoinstance/__init__.py	2010-05-19 11:37:58 UTC (rev 112517)
@@ -130,6 +130,7 @@
     print "All done."
 
 class ZEOInstanceBuilder:
+
     def run(self):
         try:
             opts, args = getopt.getopt(sys.argv[1:], "h", ["help"])

Added: zope.mkzeoinstance/trunk/src/zope/mkzeoinstance/tests/__init__.py
===================================================================
--- zope.mkzeoinstance/trunk/src/zope/mkzeoinstance/tests/__init__.py	                        (rev 0)
+++ zope.mkzeoinstance/trunk/src/zope/mkzeoinstance/tests/__init__.py	2010-05-19 11:37:58 UTC (rev 112517)
@@ -0,0 +1 @@
+# Python Package

Added: zope.mkzeoinstance/trunk/src/zope/mkzeoinstance/tests/test_unix.py
===================================================================
--- zope.mkzeoinstance/trunk/src/zope/mkzeoinstance/tests/test_unix.py	                        (rev 0)
+++ zope.mkzeoinstance/trunk/src/zope/mkzeoinstance/tests/test_unix.py	2010-05-19 11:37:58 UTC (rev 112517)
@@ -0,0 +1,110 @@
+##############################################################################
+#
+# Copyright (c) 2003 Zope Foundation 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.
+#
+##############################################################################
+
+import sys
+import unittest
+import tempfile
+import os
+import shutil
+import cStringIO
+
+from zope.mkzeoinstance import ZEOInstanceBuilder
+
+
+class ZeoInstanceParamsTest(unittest.TestCase):
+
+    def test_get_params(self):
+        builder = ZEOInstanceBuilder()
+
+        params = builder.get_params(zodb3_home='',
+                                    zdaemon_home='',
+                                    instance_home='',
+                                    address='')
+        expected_params = {'PACKAGE': 'ZEO',
+                           'python': sys.executable,
+                           'package': 'zeo',
+                           'zdaemon_home': '',
+                           'instance_home': '',
+                           'address': '',
+                           'zodb3_home': ''}
+
+        self.assertEqual(params, expected_params)
+
+
+class ZeoInstanceCreateTest(unittest.TestCase):
+
+    def setUp(self):
+        self.builder = ZEOInstanceBuilder()
+        self.temp_dir = tempfile.mkdtemp()
+
+        self.instance_home = os.path.join(self.temp_dir, 'instance')
+
+        import zdaemon
+        zdaemon_home = os.path.split(zdaemon.__path__[0])[0]
+
+        zodb3_home = None
+        for entry in sys.path:
+            if os.path.exists(os.path.join(entry, 'ZODB')):
+                zodb3_home = entry
+                break
+
+        self.params = {'PACKAGE': 'ZEO',
+                       'python': sys.executable,
+                       'package': 'zeo',
+                       'zdaemon_home': zdaemon_home,
+                       'instance_home': self.instance_home,
+                       'address': '99999',
+                       'zodb3_home': zodb3_home}
+
+    def tearDown(self):
+        shutil.rmtree(self.temp_dir)
+        
+    def test_create_folders_and_files(self):
+        instance_home = self.instance_home
+        orig_stdout = sys.stdout
+
+        temp_out_file = cStringIO.StringIO()
+        sys.stdout = temp_out_file
+        self.builder.create(instance_home, self.params)
+        sys.stdout = orig_stdout
+
+        expected_out = """Created directory %(instance_home)s
+Created directory %(instance_home)s/etc
+Created directory %(instance_home)s/var
+Created directory %(instance_home)s/log
+Created directory %(instance_home)s/bin
+Wrote file %(instance_home)s/etc/zeo.conf
+Wrote file %(instance_home)s/bin/zeoctl
+Changed mode for %(instance_home)s/bin/zeoctl to 755
+Wrote file %(instance_home)s/bin/runzeo
+Changed mode for %(instance_home)s/bin/runzeo to 755
+""" % {'instance_home':
+           instance_home}
+
+        self.assertEqual(temp_out_file.getvalue(), expected_out)
+
+        self.assertTrue(os.path.exists(os.path.join(instance_home, 'etc')))
+        self.assertTrue(os.path.exists(os.path.join(instance_home, 'var')))
+        self.assertTrue(os.path.exists(os.path.join(instance_home, 'log')))
+        self.assertTrue(os.path.exists(os.path.join(instance_home, 'bin')))
+        self.assertTrue(os.path.exists(os.path.join(instance_home, 'etc', 'zeo.conf')))
+        self.assertTrue(os.path.exists(os.path.join(instance_home, 'bin', 'zeoctl')))
+        self.assertTrue(os.path.exists(os.path.join(instance_home, 'bin', 'runzeo')))
+
+
+def test_suite():
+    suite = unittest.TestSuite()
+    suite.addTest(unittest.makeSuite(ZeoInstanceParamsTest))
+    suite.addTest(unittest.makeSuite(ZeoInstanceCreateTest))
+    return suite



More information about the checkins mailing list