[Checkins] SVN: relstorage/trunk/relstorage/tests/ Skip more tests with ZODB 3.8 (because it doesn't support a blob cache)

Shane Hathaway shane at hathawaymix.org
Tue Mar 1 21:57:34 EST 2011


Log message for revision 120657:
  Skip more tests with ZODB 3.8 (because it doesn't support a blob cache)
  

Changed:
  U   relstorage/trunk/relstorage/tests/blob/testblob.py
  U   relstorage/trunk/relstorage/tests/test_blobhelper.py
  U   relstorage/trunk/relstorage/tests/testmysql.py
  U   relstorage/trunk/relstorage/tests/testoracle.py
  U   relstorage/trunk/relstorage/tests/testpostgresql.py
  U   relstorage/trunk/relstorage/tests/util.py

-=-
Modified: relstorage/trunk/relstorage/tests/blob/testblob.py
===================================================================
--- relstorage/trunk/relstorage/tests/blob/testblob.py	2011-03-02 00:05:34 UTC (rev 120656)
+++ relstorage/trunk/relstorage/tests/blob/testblob.py	2011-03-02 02:57:33 UTC (rev 120657)
@@ -554,13 +554,3 @@
     suite.layer = MinimalTestLayer(prefix+'BlobTests')
 
     return suite
-
-
-try:
-    from ZEO.ClientStorage import BlobCacheLayout
-except ImportError:
-    # ZODB 3.8.  The blob directory must be shared.
-    shared_blob_dir_choices = (True,)
-else:
-    # ZODB >= 3.9.  The blob directory can be a private cache.
-    shared_blob_dir_choices = (False, True)

Modified: relstorage/trunk/relstorage/tests/test_blobhelper.py
===================================================================
--- relstorage/trunk/relstorage/tests/test_blobhelper.py	2011-03-02 00:05:34 UTC (rev 120656)
+++ relstorage/trunk/relstorage/tests/test_blobhelper.py	2011-03-02 02:57:33 UTC (rev 120657)
@@ -1,5 +1,6 @@
 """Tests of relstorage.blobhelper"""
 
+from relstorage.tests.util import support_blob_cache
 import os
 import unittest
 
@@ -87,11 +88,14 @@
         self.assertEqual(obj.fshelper.layout, LAYOUTS['bushy'])
 
     def test_ctor_with_private_blob_dir(self):
-        obj = self._make_default(shared=False)
-        self.assertTrue(obj.fshelper is not None)
-        self.assertTrue(obj.cache_checker is not None)
-        from ZODB.blob import LAYOUTS
-        self.assertEqual(obj.fshelper.layout, LAYOUTS['zeocache'])
+        if support_blob_cache:
+            obj = self._make_default(shared=False)
+            self.assertTrue(obj.fshelper is not None)
+            self.assertTrue(obj.cache_checker is not None)
+            from ZODB.blob import LAYOUTS
+            self.assertEqual(obj.fshelper.layout, LAYOUTS['zeocache'])
+        else:
+            self.assertRaises(ValueError, self._make_default, shared=False)
 
     def test_new_instance(self):
         class DummyAdapter2:
@@ -142,6 +146,9 @@
         self.assertRaises(POSKeyError, obj.loadBlob, None, test_oid, test_tid)
 
     def test_loadBlob_unshared_exists(self):
+        if not support_blob_cache:
+            return
+
         obj = self._make_default(shared=False)
         fn = obj.fshelper.getBlobFilename(test_oid, test_tid)
         os.makedirs(os.path.dirname(fn))
@@ -150,23 +157,35 @@
         self.assertEqual(fn, res)
 
     def test_loadBlob_unshared_download(self):
+        if not support_blob_cache:
+            return
+
         obj = self._make_default(shared=False)
         fn = obj.fshelper.getBlobFilename(test_oid, test_tid)
         res = obj.loadBlob(None, test_oid, test_tid)
         self.assertEqual(fn, res)
 
     def test_loadBlob_unshared_missing(self):
+        if not support_blob_cache:
+            return
+
         obj = self._make_default(shared=False, download_action=None)
         from ZODB.POSException import POSKeyError
         self.assertRaises(POSKeyError, obj.loadBlob, None, test_oid, test_tid)
 
     def test_openCommittedBlobFile_as_file(self):
+        if not support_blob_cache:
+            return
+
         obj = self._make_default(shared=False)
         f = obj.openCommittedBlobFile(None, test_oid, test_tid)
         self.assertEqual(f.__class__, file)
         self.assertEqual(f.read(), 'blob here')
 
     def test_openCommittedBlobFile_as_blobfile(self):
+        if not support_blob_cache:
+            return
+
         obj = self._make_default(shared=False)
         from ZODB.blob import Blob
         from ZODB.blob import BlobFile
@@ -176,6 +195,9 @@
         self.assertEqual(f.read(), 'blob here')
 
     def test_openCommittedBlobFile_retry_as_file(self):
+        if not support_blob_cache:
+            return
+
         loadBlob_calls = []
 
         def loadBlob_wrapper(cursor, oid, serial):
@@ -192,6 +214,9 @@
         self.assertEqual(f.read(), 'blob here')
 
     def test_openCommittedBlobFile_retry_as_blobfile(self):
+        if not support_blob_cache:
+            return
+
         loadBlob_calls = []
 
         def loadBlob_wrapper(cursor, oid, serial):
@@ -211,6 +236,9 @@
         self.assertEqual(f.read(), 'blob here')
 
     def test_openCommittedBlobFile_retry_fail_on_shared(self):
+        if not support_blob_cache:
+            return
+
         loadBlob_calls = []
 
         def loadBlob_wrapper(cursor, oid, serial):
@@ -250,6 +278,9 @@
             [(test_oid, test_tid, 'blob pickle', '', dummy_txn)])
 
     def test_storeBlob_unshared(self):
+        if not support_blob_cache:
+            return
+
         called = []
         dummy_txn = object()
 
@@ -305,6 +336,9 @@
         self.assertEqual(open(target_fn, 'rb').read(), 'here a blob')
 
     def test_restoreBlob_unshared(self):
+        if not support_blob_cache:
+            return
+
         fn = os.path.join(self.blob_dir, 'newblob')
         open(fn, 'wb').write('here a blob')
         obj = self._make_default(shared=False)
@@ -314,6 +348,9 @@
         self.assertEqual(open(target_fn, 'rb').read(), 'here a blob')
 
     def test_copy_undone_unshared(self):
+        if not support_blob_cache:
+            return
+
         obj = self._make_default(shared=False)
         obj.copy_undone(None, None)
         self.assertFalse(obj.txn_has_blobs)
@@ -330,6 +367,9 @@
         self.assertEqual(open(fn2, 'rb').read(), 'blob here')
 
     def test_after_pack_unshared(self):
+        if not support_blob_cache:
+            return
+
         obj = self._make_default(shared=False)
         obj.after_pack(None, None)  # No-op
 

Modified: relstorage/trunk/relstorage/tests/testmysql.py
===================================================================
--- relstorage/trunk/relstorage/tests/testmysql.py	2011-03-02 00:05:34 UTC (rev 120656)
+++ relstorage/trunk/relstorage/tests/testmysql.py	2011-03-02 02:57:33 UTC (rev 120657)
@@ -162,7 +162,7 @@
         pass
     else:
         from relstorage.tests.blob.testblob import storage_reusable_suite
-        from relstorage.tests.blob.testblob import shared_blob_dir_choices
+        from relstorage.tests.util import shared_blob_dir_choices
         for shared_blob_dir in shared_blob_dir_choices:
             for keep_history in (False, True):
                 def create_storage(name, blob_dir,

Modified: relstorage/trunk/relstorage/tests/testoracle.py
===================================================================
--- relstorage/trunk/relstorage/tests/testoracle.py	2011-03-02 00:05:34 UTC (rev 120656)
+++ relstorage/trunk/relstorage/tests/testoracle.py	2011-03-02 02:57:33 UTC (rev 120657)
@@ -171,7 +171,7 @@
     else:
         from relstorage.tests.blob.testblob import storage_reusable_suite
         dsn = os.environ.get('ORACLE_TEST_DSN', 'XE')
-        from relstorage.tests.blob.testblob import shared_blob_dir_choices
+        from relstorage.tests.util import shared_blob_dir_choices
         for shared_blob_dir in shared_blob_dir_choices:
             for keep_history in (False, True):
                 def create_storage(name, blob_dir,

Modified: relstorage/trunk/relstorage/tests/testpostgresql.py
===================================================================
--- relstorage/trunk/relstorage/tests/testpostgresql.py	2011-03-02 00:05:34 UTC (rev 120656)
+++ relstorage/trunk/relstorage/tests/testpostgresql.py	2011-03-02 02:57:33 UTC (rev 120657)
@@ -159,7 +159,7 @@
         pass
     else:
         from relstorage.tests.blob.testblob import storage_reusable_suite
-        from relstorage.tests.blob.testblob import shared_blob_dir_choices
+        from relstorage.tests.util import shared_blob_dir_choices
         for shared_blob_dir in shared_blob_dir_choices:
             for keep_history in (False, True):
                 def create_storage(name, blob_dir,

Modified: relstorage/trunk/relstorage/tests/util.py
===================================================================
--- relstorage/trunk/relstorage/tests/util.py	2011-03-02 00:05:34 UTC (rev 120656)
+++ relstorage/trunk/relstorage/tests/util.py	2011-03-02 02:57:33 UTC (rev 120657)
@@ -24,3 +24,15 @@
             else:
                 return onfail()
         time.sleep(0.01)
+
+
+try:
+    from ZEO.ClientStorage import BlobCacheLayout
+except ImportError:
+    # ZODB 3.8.  The blob directory must be shared.
+    shared_blob_dir_choices = (True,)
+    support_blob_cache = False
+else:
+    # ZODB >= 3.9.  The blob directory can be a private cache.
+    shared_blob_dir_choices = (False, True)
+    support_blob_cache = True



More information about the checkins mailing list