[Checkins] SVN: gocept.zeoraid/trunk/src/gocept/zeoraid/ fixed blob detection of recovery and recovery tests
Thomas Lotze
tl at gocept.com
Wed Jan 7 06:50:59 EST 2009
Log message for revision 94569:
fixed blob detection of recovery and recovery tests
Changed:
U gocept.zeoraid/trunk/src/gocept/zeoraid/recovery.py
U gocept.zeoraid/trunk/src/gocept/zeoraid/tests/test_recovery.py
-=-
Modified: gocept.zeoraid/trunk/src/gocept/zeoraid/recovery.py
===================================================================
--- gocept.zeoraid/trunk/src/gocept/zeoraid/recovery.py 2009-01-07 11:48:59 UTC (rev 94568)
+++ gocept.zeoraid/trunk/src/gocept/zeoraid/recovery.py 2009-01-07 11:50:58 UTC (rev 94569)
@@ -53,7 +53,15 @@
self.source = source
self.target = target
self.finalize = finalize
- self.recover_blobs = hasattr(source, 'loadBlob') and recover_blobs
+ if recover_blobs:
+ if hasattr(source, 'loadBlob'):
+ try:
+ source.loadBlob(ZODB.utils.z64, ZODB.utils.z64)
+ except ZODB.POSException.POSKeyError:
+ pass
+ except TypeError, e:
+ recover_blobs = False
+ self.recover_blobs = recover_blobs
def __call__(self):
"""Performs recovery."""
Modified: gocept.zeoraid/trunk/src/gocept/zeoraid/tests/test_recovery.py
===================================================================
--- gocept.zeoraid/trunk/src/gocept/zeoraid/tests/test_recovery.py 2009-01-07 11:48:59 UTC (rev 94568)
+++ gocept.zeoraid/trunk/src/gocept/zeoraid/tests/test_recovery.py 2009-01-07 11:50:58 UTC (rev 94569)
@@ -13,6 +13,7 @@
##############################################################################
"""Test harness for online recovery."""
+import itertools
import os
import unittest
import tempfile
@@ -36,8 +37,8 @@
source, target, lambda target: None)
protocol = list(recovery())
test.assertEquals([('verified',), ('recovered',)], protocol[-2:])
- for source_txn, target_txn in zip(source.iterator(),
- target.iterator()):
+ for source_txn, target_txn in itertools.izip(source.iterator(),
+ target.iterator()):
# We need not compare the transaction metadata because that has
# already been done by the recovery's verification run.
source_records = list(source_txn)
@@ -58,6 +59,10 @@
test.assertRaises(
ZODB.POSException.POSKeyError,
target.loadBlob, target_record.oid, target_record.tid)
+ except TypeError:
+ test.assertRaises(
+ TypeError,
+ target.loadBlob, target_record.oid, target_record.tid)
else:
target_file_name = target.loadBlob(
target_record.oid, target_record.tid)
More information about the Checkins
mailing list