[Checkins] SVN: persistent/trunk/ Refactor legacy tests to cover both C and Python implementations.

Tres Seaver cvs-admin at zope.org
Fri Jun 29 05:20:02 UTC 2012


Log message for revision 127185:
  Refactor legacy tests to cover both C and Python implementations.

Changed:
  _U  persistent/trunk/
  U   persistent/trunk/persistent/tests/testPersistent.py

-=-
Modified: persistent/trunk/persistent/tests/testPersistent.py
===================================================================
--- persistent/trunk/persistent/tests/testPersistent.py	2012-06-29 05:19:55 UTC (rev 127184)
+++ persistent/trunk/persistent/tests/testPersistent.py	2012-06-29 05:19:59 UTC (rev 127185)
@@ -15,19 +15,19 @@
 
 Picklable = None # avoid global import of Persistent;  updated later
 
-class PersistenceTest(unittest.TestCase):
+class _Base(object):
 
     def _makeOne(self):
-        from persistent import Persistent
-
-        class P(Persistent):
+        class P(self._getTargetClass()):
             pass
 
         return P()
 
     def _makeJar(self):
         from persistent.tests.utils import ResettingJar
-        return ResettingJar()
+        jar = ResettingJar()
+        jar.cache = jar._cache = self._makeCache(jar)
+        return jar
 
     def test_oid_initial_value(self):
         obj = self._makeOne()
@@ -316,6 +316,36 @@
     # TODO:  Need to decide how __setattr__ and __delattr__ should work,
     # then write tests.
 
+class PythonPersistentTests(unittest.TestCase, _Base):
 
+    def _getTargetClass(self):
+        from persistent.persistence import Persistent
+        return Persistent
+
+    def _makeCache(self, jar):
+        from persistent.picklecache import PickleCache
+        return PickleCache(jar)
+
+_add_to_suite = [PythonPersistentTests]
+
+try:
+    import persistent.cPersistence
+except ImportError:
+    pass
+else:
+    class CPersistentTests(unittest.TestCase, _Base):
+
+        def _getTargetClass(self):
+            from persistent.cPersistence import Persistent
+            return Persistent
+
+        def _makeCache(self, jar):
+            from persistent.cPickleCache import PickleCache
+            return PickleCache(jar)
+
+    _add_to_suite.append(CPersistentTests)
+
 def test_suite():
-    return unittest.makeSuite(PersistenceTest)
+    return unittest.TestSuite((
+           [unittest.makeSuite(x) for x in _add_to_suite]
+    ))



More information about the checkins mailing list