[Checkins] SVN: zopyx.versioning/trunk/zopyx/versioning/storages/mongodb/ more tests, better error handling
Andreas Jung
andreas at andreas-jung.com
Fri Jul 2 03:31:25 EDT 2010
Log message for revision 114094:
more tests, better error handling
Changed:
U zopyx.versioning/trunk/zopyx/versioning/storages/mongodb/storage.py
U zopyx.versioning/trunk/zopyx/versioning/storages/mongodb/tests/test_storage.py
-=-
Modified: zopyx.versioning/trunk/zopyx/versioning/storages/mongodb/storage.py
===================================================================
--- zopyx.versioning/trunk/zopyx/versioning/storages/mongodb/storage.py 2010-07-02 07:25:36 UTC (rev 114093)
+++ zopyx.versioning/trunk/zopyx/versioning/storages/mongodb/storage.py 2010-07-02 07:31:25 UTC (rev 114094)
@@ -63,6 +63,8 @@
return bool(self.revisions.find_one({'_oid' : id, '_rev' : revision}))
def list_revisions(self, id):
+ if self.revisions.find({'_oid' : id}).count() == 0:
+ raise errors.NoDocumentFound('No document with ID %s found' % id)
revisions = self.revisions.find({'_oid' : id})
if revisions.count == 0:
@@ -70,6 +72,8 @@
return sorted([r['_rev'] for r in revisions])
def remove_revision(self, id, revision):
+ if self.revisions.find({'_oid' : id}).count() == 0:
+ raise errors.NoDocumentFound('No document with ID %s found' % id)
self.revisions.remove({'_oid' : id, '_rev' : revision})
Modified: zopyx.versioning/trunk/zopyx/versioning/storages/mongodb/tests/test_storage.py
===================================================================
--- zopyx.versioning/trunk/zopyx/versioning/storages/mongodb/tests/test_storage.py 2010-07-02 07:25:36 UTC (rev 114093)
+++ zopyx.versioning/trunk/zopyx/versioning/storages/mongodb/tests/test_storage.py 2010-07-02 07:31:25 UTC (rev 114094)
@@ -3,6 +3,7 @@
"""
import unittest2
+import json
from zope.interface.verify import verifyClass
@@ -23,3 +24,14 @@
with self.assertRaises(errors.NoDocumentFound):
self.storage.retrieve('42', 42)
+ def testStore(self):
+ version_data = {'text' : u'hello world', 'subject' : [u'kw1', u'kw2']}
+ for i in range(5):
+ self.storage.store('42', json.dumps(version_data), 'ajung')
+ revisions = self.storage.list_revisions('42')
+ self.assertEqual(revisions, [0,1,2,3,4])
+
+ def testListRevisionsNonExistingID(self):
+ with self.assertRaises(errors.NoDocumentFound):
+ revisions = self.storage.list_revisions('do.such.document')
+
More information about the checkins
mailing list