[Zope-Checkins] CVS: ZODB3/ZODB/tests - testConfig.py:1.1.4.4

Barry Warsaw barry@wooz.org
Fri, 3 Jan 2003 14:04:48 -0500


Update of /cvs-repository/ZODB3/ZODB/tests
In directory cvs.zope.org:/tmp/cvs-serv28364

Modified Files:
      Tag: zconfig-schema-devel-branch
	testConfig.py 
Log Message:
Tests of BerkeleyDB based storages.  Also, a bit of refactoring.


=== ZODB3/ZODB/tests/testConfig.py 1.1.4.3 => 1.1.4.4 ===
--- ZODB3/ZODB/tests/testConfig.py:1.1.4.3	Thu Jan  2 18:30:37 2003
+++ ZODB3/ZODB/tests/testConfig.py	Fri Jan  3 14:04:46 2003
@@ -13,18 +13,22 @@
 ##############################################################################
 
 import os
+import errno
+import shutil
 import tempfile
 import unittest
 
-from ZODB.POSException import ReadOnlyError
 import ZODB.config
 import ZODB.tests
+from ZODB.POSException import ReadOnlyError
 from ZEO.ClientStorage import ClientDisconnected
 
-class ZODBConfigTest(unittest.TestCase):
+class ConfigTestBase(unittest.TestCase):
+    def _opendb(self, s):
+        return ZODB.config.databaseFromString(s)
 
     def _test(self, s):
-        db = ZODB.config.databaseFromString(s)
+        db = self._opendb(s)
         # Do something with the database to make sure it works
         cn = db.open()
         rt = cn.root()
@@ -32,6 +36,8 @@
         get_transaction().commit()
         db.close()
 
+
+class ZODBConfigTest(ConfigTestBase):
     def test_map_config1(self):
         self._test("<mappingstorage/>")
 
@@ -52,23 +58,65 @@
         
     def test_file_config2(self):
         path = tempfile.mktemp()
-        cfg = \
-            """<filestorage>
+        cfg = """
+        <filestorage>
             path %s
             create false
             read_only true
-            </filestorage>
-            """ % path
+        </filestorage>
+        """ % path
         self.assertRaises(ReadOnlyError, self._test, cfg)
 
     def test_zeo_config(self):
-        cfg = \
-            """<zeoclient>
+        cfg = """
+        <zeoclient>
             server /no/path/var/test/foo
             wait false
-            </zeoclient>
-            """
+        </zeoclient>
+        """
         self.assertRaises(ClientDisconnected, self._test, cfg)
 
+
+class BDBConfigTest(ConfigTestBase):
+    def setUp(self):
+        self._path = tempfile.mktemp()
+        try:
+            os.mkdir(self._path)
+        except OSError, e:
+            if e.errno <> errno.EEXIST:
+                raise
+
+    def tearDown(self):
+        shutil.rmtree(self._path)
+
+    def test_bdbfull_simple(self):
+        cfg = """
+        <fullstorage>
+            name %s
+        </fullstorage>
+        """ % self._path
+        self._test(cfg)
+
+    def test_bdbminimal_simple(self):
+        cfg = """
+        <minimalstorage>
+            name %s
+        </minimalstorage>
+        """ % self._path
+        self._test(cfg)
+
+
 def test_suite():
-    return unittest.makeSuite(ZODBConfigTest)
+    suite = unittest.TestSuite()
+    suite.addTest(unittest.makeSuite(ZODBConfigTest))
+    try:
+        import BDBStorage.BDBFullStorage
+    except ImportError:
+        pass
+    else:
+        suite.addTest(unittest.makeSuite(BDBConfigTest))
+    return suite
+
+
+if __name__ == '__main__':
+    unittest.main(defaultTest='test_suite')