[Checkins] SVN: z3c.testing/trunk/src/z3c/testing/ Added helper
methods and classes for generation tests.
Roger Ineichen
roger at projekt01.ch
Tue Nov 14 23:41:50 EST 2006
Log message for revision 71124:
Added helper methods and classes for generation tests.
This should make it easy to write generation tests
Changed:
U z3c.testing/trunk/src/z3c/testing/__init__.py
A z3c.testing/trunk/src/z3c/testing/generation.py
-=-
Modified: z3c.testing/trunk/src/z3c/testing/__init__.py
===================================================================
--- z3c.testing/trunk/src/z3c/testing/__init__.py 2006-11-14 21:45:14 UTC (rev 71123)
+++ z3c.testing/trunk/src/z3c/testing/__init__.py 2006-11-15 04:41:49 UTC (rev 71124)
@@ -15,10 +15,20 @@
$Id$
"""
+# interface base tests
from z3c.testing.app import TestCase
from z3c.testing.app import InterfaceBaseTest
from z3c.testing.app import BaseTestIContainer
from z3c.testing.app import marker_pos
from z3c.testing.app import marker_kws
+
+# directive helper
from z3c.testing.directive import registerDirective
from z3c.testing.directive import setUpContentMetaDirectives
+
+# generation testing
+from z3c.testing.generation import ContextStub
+from z3c.testing.generation import getDB
+from z3c.testing.generation import getDBRoot
+from z3c.testing.generation import setUpGeneration
+from z3c.testing.generation import tearDownGeneration
Added: z3c.testing/trunk/src/z3c/testing/generation.py
===================================================================
--- z3c.testing/trunk/src/z3c/testing/generation.py 2006-11-14 21:45:14 UTC (rev 71123)
+++ z3c.testing/trunk/src/z3c/testing/generation.py 2006-11-15 04:41:49 UTC (rev 71124)
@@ -0,0 +1,89 @@
+###############################################################################
+#
+# Copyright 2006 by refline (Schweiz) AG, CH-5630 Muri
+#
+###############################################################################
+"""
+$Id$
+"""
+
+import os
+
+from ZODB.FileStorage import FileStorage
+from ZODB.DB import DB
+from ZODB.DemoStorage import DemoStorage
+
+from zope.testing import doctest
+from zope.app.publication.zopepublication import ZopePublication
+from zope.app.testing import setup
+from zope.app.folder.folder import rootFolder
+
+
+###############################################################################
+#
+# Test component
+#
+###############################################################################
+
+class ContextStub(object):
+ """Stub for the context argument passed to evolve scripts.
+
+ >>> from zope.app.zopeappgenerations import getRootFolder
+ >>> context = ContextStub()
+ >>> getRootFolder(context) is context.root_folder
+ True
+
+ """
+
+ class ConnectionStub(object):
+ def __init__(self, root_folder, db):
+ self.root_folder = root_folder
+ self.db = db
+
+ def root(self):
+ return {ZopePublication.root_name: self.root_folder}
+
+ @property
+ def _storage(self):
+ return self.db._storage._base
+
+ def get(self, oid):
+ return self.db.open().get(oid)
+
+ def __init__(self, rootFolder, db):
+ self.root_folder = rootFolder
+ self.connection = self.ConnectionStub(self.root_folder, db)
+
+
+def getDBRoot(db):
+ """Returns the Zope root folder."""
+ connection = db.open()
+ root = connection.root()
+ return root[ZopePublication.root_name]
+
+
+def getDB(filename, package=None):
+ """Returns a DB by it's path."""
+ if package is not None:
+ filename = doctest._module_relative_path(package, filename)
+ package = package.__file__
+ else:
+ package = __file__
+ filename = os.path.join(os.path.dirname(package), filename)
+ fileStorage = FileStorage(filename)
+ storage = DemoStorage("Demo Storage", fileStorage)
+ return DB(storage)
+
+
+###############################################################################
+#
+# Test setup
+#
+###############################################################################
+
+def setUpGeneration(test):
+ setup.placefulSetUp()
+
+
+def tearDownGeneration(test):
+ setup.placefulTearDown()
Property changes on: z3c.testing/trunk/src/z3c/testing/generation.py
___________________________________________________________________
Name: svn:keywords
+ Id
Name: svn:eol-style
+ native
More information about the Checkins
mailing list