[Checkins] SVN: gocept.zeoraid/trunk/src/gocept/zeoraid/ test
isReadOnly and lastTransaction, fixed code accordingly
Thomas Lotze
tl at gocept.com
Mon Jan 14 09:20:41 EST 2008
Log message for revision 82869:
test isReadOnly and lastTransaction, fixed code accordingly
Changed:
U gocept.zeoraid/trunk/src/gocept/zeoraid/storage.py
U gocept.zeoraid/trunk/src/gocept/zeoraid/tests/test_basics.py
-=-
Modified: gocept.zeoraid/trunk/src/gocept/zeoraid/storage.py
===================================================================
--- gocept.zeoraid/trunk/src/gocept/zeoraid/storage.py 2008-01-14 14:14:03 UTC (rev 82868)
+++ gocept.zeoraid/trunk/src/gocept/zeoraid/storage.py 2008-01-14 14:20:41 UTC (rev 82869)
@@ -175,6 +175,8 @@
def lastTransaction(self):
"""Return the id of the last committed transaction."""
+ if self.raid_status() == 'failed':
+ raise gocept.zeoraid.interfaces.RAIDError('RAID is failed.')
return self._last_tid
def __len__(self):
@@ -435,7 +437,7 @@
@ensure_open_storage
def raid_disable(self, name):
self._degrade_storage(name, fail=False)
- return 'disabled %r' % name
+ return 'disabled %r' % (name,)
# XXX
@ensure_open_storage
Modified: gocept.zeoraid/trunk/src/gocept/zeoraid/tests/test_basics.py
===================================================================
--- gocept.zeoraid/trunk/src/gocept/zeoraid/tests/test_basics.py 2008-01-14 14:14:03 UTC (rev 82868)
+++ gocept.zeoraid/trunk/src/gocept/zeoraid/tests/test_basics.py 2008-01-14 14:20:41 UTC (rev 82869)
@@ -105,7 +105,7 @@
self.assertEquals('teststorage', self._storage.getName())
-class FailingStorageTestsBase(unittest.TestCase):
+class FailingStorageTestsBase(StorageTestBase.StorageTestBase):
backend_count = None
@@ -215,7 +215,25 @@
self._storage.history, ZODB.utils.z64, '')
self.assertEquals('failed', self._storage.raid_status())
+ def test_lastTransaction(self):
+ self.assertEquals(ZODB.utils.z64, self._storage.lastTransaction())
+ self.assertEquals(ZODB.utils.z64, self._backend(0).lastTransaction())
+ self.assertEquals(ZODB.utils.z64, self._backend(1).lastTransaction())
+ self._dostore()
+ lt = self._storage.lastTransaction()
+ self.assertNotEquals(ZODB.utils.z64, lt)
+ self.assertEquals(lt, self._backend(0).lastTransaction())
+ self.assertEquals(lt, self._backend(1).lastTransaction())
+ def test_lastTransaction_degrading(self):
+ self._storage.raid_disable(self._storage.storages_optimal[0])
+ self.assertEquals(ZODB.utils.z64, self._storage.lastTransaction())
+ self._storage.raid_disable(self._storage.storages_optimal[0])
+ self.assertEquals('failed', self._storage.raid_status())
+ self.assertRaises(gocept.zeoraid.interfaces.RAIDError,
+ self._storage.lastTransaction)
+
+
class ZEOReplicationStorageTests(ZEOStorageBackendTests,
ReplicationStorageTests,
ThreadTests.ThreadTests):
More information about the Checkins
mailing list