[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