[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