[Checkins] SVN: zopyx.versioning/trunk/ testing boilerplate
Andreas Jung
andreas at andreas-jung.com
Wed Jun 30 10:41:09 EDT 2010
Log message for revision 114019:
testing boilerplate
Changed:
U zopyx.versioning/trunk/setup.py
U zopyx.versioning/trunk/zopyx/versioning/storages/mongodb/storage.py
A zopyx.versioning/trunk/zopyx/versioning/storages/mongodb/tests/test_storage.py
-=-
Modified: zopyx.versioning/trunk/setup.py
===================================================================
--- zopyx.versioning/trunk/setup.py 2010-06-30 14:39:48 UTC (rev 114018)
+++ zopyx.versioning/trunk/setup.py 2010-06-30 14:41:09 UTC (rev 114019)
@@ -21,10 +21,13 @@
namespace_packages=['zopyx'],
include_package_data=True,
zip_safe=False,
+ test_runner='nose.testrunner',
install_requires=[
'setuptools',
'zope.component',
'pymongo',
+ 'unittest2',
+ 'nose',
# -*- Extra requirements: -*-
],
entry_points="""
Modified: zopyx.versioning/trunk/zopyx/versioning/storages/mongodb/storage.py
===================================================================
--- zopyx.versioning/trunk/zopyx/versioning/storages/mongodb/storage.py 2010-06-30 14:39:48 UTC (rev 114018)
+++ zopyx.versioning/trunk/zopyx/versioning/storages/mongodb/storage.py 2010-06-30 14:41:09 UTC (rev 114019)
@@ -7,6 +7,7 @@
from zope.interface import implements
from zopyx.versioning.interfaces import IVersionStorage
+from zopyx.versioning import errors
from pymongo.connection import Connection
@@ -20,6 +21,10 @@
self.metadata = self.db.metadata
self.revisions = self.db.revisions
+ def clear(self):
+ self.metadata.remove()
+ self.revisions.remove()
+
def store(self, id, version_data, creator, comment=None):
id_entry = self.metadata.find_one({'_oid' : id})
@@ -37,13 +42,19 @@
def retrieve(self, id, revision):
+ count = self.revisions.find({'_oid' : id}).count()
+ if count == 0:
+ raise errors.NoDocumentFound('No document with ID %s found' % id)
+
entry = self.revisions.find_one({'_oid' : id, '_rev' : revision})
if entry:
del entry['_oid']
del entry['_rev']
del entry['_id']
- return json.dumps(entry)
+ return json.dumps(entry)
+ raise errors.NoRevisionFound('No revision %d found for document with ID %s found' % (revision, id))
+
def remove(self, id):
self.metadata.remove({'_oid' : id})
self.revisions.remove({'_oid' : id})
Added: zopyx.versioning/trunk/zopyx/versioning/storages/mongodb/tests/test_storage.py
===================================================================
--- zopyx.versioning/trunk/zopyx/versioning/storages/mongodb/tests/test_storage.py (rev 0)
+++ zopyx.versioning/trunk/zopyx/versioning/storages/mongodb/tests/test_storage.py 2010-06-30 14:41:09 UTC (rev 114019)
@@ -0,0 +1,18 @@
+"""
+MongoDB storage tests
+"""
+
+import unittest2
+from zopyx.versioning.storages.mongodb.storage import MongoDBStorage
+from zopyx.versioning import errors
+
+class StorageTests(unittest2.TestCase):
+
+ def setUp(self):
+ self.storage = MongoDBStorage('localhost', 10200, 'test-db')
+ self.storage.clear()
+
+ def testRetrievalNonExistingDocuments(self):
+ with self.assertRaises(errors.NoDocumentFound):
+ self.storage.retrieve('42', 42)
+
More information about the checkins
mailing list