[Checkins] SVN: zope.generations/trunk/ - renamed zope.app.generations to zope.generations

Michael Howitz mh at gocept.com
Sat Sep 18 05:30:18 EDT 2010


Log message for revision 116553:
  - renamed zope.app.generations to zope.generations
  - added test for configure.zcml
  - minimized dependencies
  - removed remaining things needed for browser code
  

Changed:
  U   zope.generations/trunk/CHANGES.txt
  U   zope.generations/trunk/buildout.cfg
  U   zope.generations/trunk/setup.py
  U   zope.generations/trunk/src/zope/generations/README.txt
  U   zope.generations/trunk/src/zope/generations/configure.zcml
  U   zope.generations/trunk/src/zope/generations/demo/evolve1.py
  U   zope.generations/trunk/src/zope/generations/demo/evolve2.py
  U   zope.generations/trunk/src/zope/generations/demo/evolve3.py
  U   zope.generations/trunk/src/zope/generations/demo/install.py
  U   zope.generations/trunk/src/zope/generations/demo3/__init__.py
  U   zope.generations/trunk/src/zope/generations/demo3/install.py
  D   zope.generations/trunk/src/zope/generations/ftesting.zcml
  U   zope.generations/trunk/src/zope/generations/generations.py
  D   zope.generations/trunk/src/zope/generations/testing.py
  A   zope.generations/trunk/src/zope/generations/tests/
  A   zope.generations/trunk/src/zope/generations/tests/__init__.py
  A   zope.generations/trunk/src/zope/generations/tests/test_generations.py
  A   zope.generations/trunk/src/zope/generations/tests/test_zcml.py
  D   zope.generations/trunk/src/zope/generations/tests.py
  U   zope.generations/trunk/src/zope/generations/utility.py

-=-
Modified: zope.generations/trunk/CHANGES.txt
===================================================================
--- zope.generations/trunk/CHANGES.txt	2010-09-18 08:50:14 UTC (rev 116552)
+++ zope.generations/trunk/CHANGES.txt	2010-09-18 09:30:17 UTC (rev 116553)
@@ -2,67 +2,7 @@
 CHANGES
 =======
 
-3.6.1 (unreleased)
+3.7.0 (unreleased)
 ------------------
 
-- Nothing changed yet.
-
-
-3.6.0 (2010-09-17)
-------------------
-
-- ``zope.app.generations`` depended on ``zope.app.applicationcontrol`` but
-  did not declare it. Modernized dependecy to ``zope.applicationcontrol`` as
-  the needed interface has been moved there.
-
-- Using python's ``doctest`` module instead of deprecated
-  ``zope.testing.doctest[unit]``.
-
-- Replaced a testing dependency on ``zope.app.securitypolicy`` with one on
-  ``zope.securitypolicy``.
-
-
-3.5.1 (2010-01-08)
-------------------
-
-- Depend on new ``zope.processlifetime`` interfaces instead of using
-  BBB imports from ``zope.app.appsetup``.
-
-- Fix ftesting.zcml due to ``zope.securitypolicy`` update.
-
-- Fix tests using a newer zope.publisher that requires zope.login.
-
-3.5.0 (2009-04-05)
-------------------
-
-- Moved ``getRootFolder`` utility method from
-  ``zope.app.zopeappgenerations`` to ``zope.app.generations.utility``.
-
-- Removed not necessary install dependency on ``zope.app.testing``.
-
-
-3.4.2 (2009-01-27)
-------------------
-
-- Provide more logging output for the various stages and actions of evolving a
-  database.
-
-- Fixed bug: A failing last generation would allow starting an app server
-  without having evolved to the minimum generation.
-
-- Substitute zope.app.zapi by direct calls to its wrapped apis. See
-  bug 219302.
-
-- Corrected author email and home page address.
-
-
-3.4.1 (2007-10-31)
-------------------
-
-- Resolve ``ZopeSecurityPolicy`` deprecation warning.
-
-
-3.4.0 (2007-10-24)
-------------------
-
-- Initial release independent of the main Zope tree.
+- Initial release extracted from `zope.app.generations`.
\ No newline at end of file

Modified: zope.generations/trunk/buildout.cfg
===================================================================
--- zope.generations/trunk/buildout.cfg	2010-09-18 08:50:14 UTC (rev 116552)
+++ zope.generations/trunk/buildout.cfg	2010-09-18 09:30:17 UTC (rev 116553)
@@ -4,7 +4,7 @@
 
 [test]
 recipe = zc.recipe.testrunner
-eggs = zope.app.generations [test]
+eggs = zope.generations [test]
 
 [coverage-test]
 recipe = zc.recipe.testrunner

Modified: zope.generations/trunk/setup.py
===================================================================
--- zope.generations/trunk/setup.py	2010-09-18 08:50:14 UTC (rev 116552)
+++ zope.generations/trunk/setup.py	2010-09-18 09:30:17 UTC (rev 116553)
@@ -16,7 +16,7 @@
 # When developing and releasing this package, please follow the documented
 # Zope Toolkit policies as described by this documentation.
 ##############################################################################
-"""Setup for zope.app.generations package
+"""Setup for zope.generations package
 
 $Id$
 """
@@ -26,11 +26,11 @@
 def read(*rnames):
     return open(os.path.join(os.path.dirname(__file__), *rnames)).read()
 
-setup(name='zope.app.generations',
-      version='3.6.1dev',
+setup(name='zope.generations',
+      version='3.7.0dev',
       author='Zope Corporation and Contributors',
       author_email='zope-dev at zope.org',
-      description='Zope Application Schema Generations',
+      description='Zope application schema generations',
       long_description=(
           read('README.txt')
           + '\n\n.. contents::\n\n' +
@@ -38,11 +38,11 @@
           'Detailed Documentation\n'
           '======================\n'
           + '\n\n' +
-          read('src', 'zope', 'app', 'generations', 'README.txt')
+          read('src', 'zope', 'generations', 'README.txt')
           + '\n\n' +
           read('CHANGES.txt')
           ),
-      keywords = "zope3 zodb schema generation",
+      keywords = "zope zodb schema generation",
       classifiers = [
           'Development Status :: 5 - Production/Stable',
           'Environment :: Web Environment',
@@ -53,26 +53,24 @@
           'Operating System :: OS Independent',
           'Topic :: Internet :: WWW/HTTP',
           'Framework :: Zope3'],
-      url='http://pypi.python.org/pypi/zope.app.generations',
+      url='http://pypi.python.org/pypi/zope.generations',
       license='ZPL 2.1',
       packages=find_packages('src'),
       package_dir = {'': 'src'},
-      namespace_packages=['zope', 'zope.app'],
+      namespace_packages=['zope'],
       extras_require = dict(test=[
-          'zope.app.testing',
-          'zope.app.zcmlfiles',
-          'zope.login',
-          'zope.publisher >= 3.12',
-          'zope.securitypolicy',
+          'ZODB3',
+          'zope.app.publication',
+          'zope.site',
+          'zope.testing',
           ]),
-      install_requires=['setuptools',
-                        'zope.app.renderer',
-                        'zope.interface',
-                        'zope.app.publication',
-                        'ZODB3',
-                        'zope.processlifetime',
-                        'zope.applicationcontrol',
-                        ],
+      install_requires=[
+          'setuptools',
+          'transaction',
+          'zope.component',
+          'zope.interface',
+          'zope.processlifetime',
+          ],
       include_package_data = True,
       zip_safe = False,
       )

Modified: zope.generations/trunk/src/zope/generations/README.txt
===================================================================
--- zope.generations/trunk/src/zope/generations/README.txt	2010-09-18 08:50:14 UTC (rev 116552)
+++ zope.generations/trunk/src/zope/generations/README.txt	2010-09-18 09:30:17 UTC (rev 116553)
@@ -15,7 +15,6 @@
     >>> import cgi
     >>> from pprint import pprint
     >>> from zope.interface import implements
-    >>> from zope.app.testing import ztapi
 
     >>> from ZODB.tests.util import DB
     >>> db = DB()
@@ -46,8 +45,10 @@
 
     >>> from zope.generations.interfaces import ISchemaManager
     >>> from zope.generations.generations import SchemaManager
+    >>> import zope.component
     >>> dummy_manager = SchemaManager(minimum_generation=0, generation=0)
-    >>> ztapi.provideUtility(ISchemaManager, dummy_manager, name='some.app')
+    >>> zope.component.provideUtility(
+    ...     dummy_manager, ISchemaManager, name='some.app')
 
 'some.app' is a unique identifier.  You should use a URI or the dotted name
 of your package.
@@ -88,7 +89,10 @@
 Let's update the schema manager (drop the old one and install a new custom
 one):
 
-    >>> ztapi.unprovideUtility(ISchemaManager, name='some.app')
+    >>> from zope.component import globalregistry
+    >>> gsm = globalregistry.getGlobalSiteManager()
+    >>> gsm.unregisterUtility(provided=ISchemaManager, name='some.app')
+    True
 
     >>> class MySchemaManager(object):
     ...     implements(ISchemaManager)
@@ -112,7 +116,7 @@
     ...         transaction.commit()
 
     >>> manager = MySchemaManager()
-    >>> ztapi.provideUtility(ISchemaManager, manager, name='some.app')
+    >>> zope.component.provideUtility(manager, ISchemaManager, name='some.app')
 
 We have set `minimum_generation` to 1.  That means that our application
 will refuse to run with a database older than generation 1.  The `generation`
@@ -201,10 +205,10 @@
     >>> manager1 = SchemaManager(minimum_generation=0, generation=0)
     >>> manager2 = SchemaManager(minimum_generation=0, generation=0)
 
-    >>> ztapi.provideUtility(
-    ...     ISchemaManager, manager1, name='another.app')
-    >>> ztapi.provideUtility(
-    ...     ISchemaManager, manager2, name='another.app-extension')
+    >>> zope.component.provideUtility(
+    ...     manager1, ISchemaManager, name='another.app')
+    >>> zope.component.provideUtility(
+    ...     manager2, ISchemaManager, name='another.app-extension')
 
 Notice how the name of the first package is used to create a namespace
 for dependent packages.  This is not a requirement of the framework,
@@ -226,8 +230,11 @@
 schema managers for each that record that they've been run so we can
 verify the result:
 
-    >>> ztapi.unprovideUtility(ISchemaManager, name='another.app')
-    >>> ztapi.unprovideUtility(ISchemaManager, name='another.app-extension')
+    >>> gsm.unregisterUtility(provided=ISchemaManager, name='another.app')
+    True
+    >>> gsm.unregisterUtility(
+    ...     provided=ISchemaManager, name='another.app-extension')
+    True
 
     >>> class FoundationSchemaManager(object):
     ...     implements(ISchemaManager)
@@ -266,10 +273,10 @@
     >>> manager1 = FoundationSchemaManager()
     >>> manager2 = DependentSchemaManager()
 
-    >>> ztapi.provideUtility(
-    ...     ISchemaManager, manager1, name='another.app')
-    >>> ztapi.provideUtility(
-    ...     ISchemaManager, manager2, name='another.app-extension')
+    >>> zope.component.provideUtility(
+    ...     manager1, ISchemaManager, name='another.app')
+    >>> zope.component.provideUtility(
+    ...     manager2, ISchemaManager, name='another.app-extension')
 
 Evolving the database now will always run the 'another.app' evolver
 before the 'another.app-extension' evolver:
@@ -297,8 +304,8 @@
 Let's define a new schema manager that includes installation:
 
 
-    >>> ztapi.unprovideUtility(ISchemaManager, name='some.app')
-
+    >>> gsm.unregisterUtility(provided=ISchemaManager, name='some.app')
+    True
     >>> from zope.generations.interfaces import IInstallableSchemaManager
     >>> class MySchemaManager(object):
     ...     implements(IInstallableSchemaManager)
@@ -329,7 +336,7 @@
     ...         transaction.commit()
 
     >>> manager = MySchemaManager()
-    >>> ztapi.provideUtility(ISchemaManager, manager, name='some.app')
+    >>> zope.component.provideUtility(manager, ISchemaManager, name='some.app')
 
 Now, lets open a new database:
 

Modified: zope.generations/trunk/src/zope/generations/configure.zcml
===================================================================
--- zope.generations/trunk/src/zope/generations/configure.zcml	2010-09-18 08:50:14 UTC (rev 116552)
+++ zope.generations/trunk/src/zope/generations/configure.zcml	2010-09-18 09:30:17 UTC (rev 116553)
@@ -2,22 +2,20 @@
 
   <!--
   <utility
-      name="zope.app" 
+      name="zope.app"
       provides=".interfaces.ISchemaManager"
       factory=".generations.SchemaManager"
       >
-  
+
       Provide an *initial* schema manager for zope.
-  
+
       We can use a factory here, because the generation is 0.
-  
+
       When we get to generation 1, we'll have to actually create
       a manager instance with the necessary parameters and a package of
       evolution scripts.
   </utility>
   -->
-  
-  <include package=".browser" />
 
   <!-- Registering documentation with API doc -->
   <configure

Modified: zope.generations/trunk/src/zope/generations/demo/evolve1.py
===================================================================
--- zope.generations/trunk/src/zope/generations/demo/evolve1.py	2010-09-18 08:50:14 UTC (rev 116552)
+++ zope.generations/trunk/src/zope/generations/demo/evolve1.py	2010-09-18 09:30:17 UTC (rev 116553)
@@ -19,8 +19,8 @@
 
 generation = 1
 
-import zope.app.generations.demo
+import zope.generations.demo
 
 def evolve(context):
     """Evolver 1"""
-    zope.app.generations.demo.evolve(context, generation)
+    zope.generations.demo.evolve(context, generation)

Modified: zope.generations/trunk/src/zope/generations/demo/evolve2.py
===================================================================
--- zope.generations/trunk/src/zope/generations/demo/evolve2.py	2010-09-18 08:50:14 UTC (rev 116552)
+++ zope.generations/trunk/src/zope/generations/demo/evolve2.py	2010-09-18 09:30:17 UTC (rev 116553)
@@ -19,8 +19,8 @@
 
 generation = 2
 
-import zope.app.generations.demo
+import zope.generations.demo
 
 def evolve(context):
     """Evolver 2"""
-    zope.app.generations.demo.evolve(context, generation)
+    zope.generations.demo.evolve(context, generation)

Modified: zope.generations/trunk/src/zope/generations/demo/evolve3.py
===================================================================
--- zope.generations/trunk/src/zope/generations/demo/evolve3.py	2010-09-18 08:50:14 UTC (rev 116552)
+++ zope.generations/trunk/src/zope/generations/demo/evolve3.py	2010-09-18 09:30:17 UTC (rev 116553)
@@ -19,7 +19,7 @@
 
 generation = 3
 
-import zope.app.generations.demo
+import zope.generations.demo
 
 def evolve(context):
-    zope.app.generations.demo.evolve(context, generation)
+    zope.generations.demo.evolve(context, generation)

Modified: zope.generations/trunk/src/zope/generations/demo/install.py
===================================================================
--- zope.generations/trunk/src/zope/generations/demo/install.py	2010-09-18 08:50:14 UTC (rev 116552)
+++ zope.generations/trunk/src/zope/generations/demo/install.py	2010-09-18 09:30:17 UTC (rev 116553)
@@ -19,7 +19,7 @@
 
 generation = 3
 
-import zope.app.generations.demo
+import zope.generations.demo
 
 def evolve(context):
-    zope.app.generations.demo.evolve(context, 'installed')
+    zope.generations.demo.evolve(context, 'installed')

Modified: zope.generations/trunk/src/zope/generations/demo3/__init__.py
===================================================================
--- zope.generations/trunk/src/zope/generations/demo3/__init__.py	2010-09-18 08:50:14 UTC (rev 116552)
+++ zope.generations/trunk/src/zope/generations/demo3/__init__.py	2010-09-18 09:30:17 UTC (rev 116553)
@@ -13,5 +13,5 @@
 ##############################################################################
 """Demo package for evolution scripts (3)"""
 
-key = 'zope.app.generations.demo-generation'
+key = 'zope.generations.demo-generation'
 

Modified: zope.generations/trunk/src/zope/generations/demo3/install.py
===================================================================
--- zope.generations/trunk/src/zope/generations/demo3/install.py	2010-09-18 08:50:14 UTC (rev 116552)
+++ zope.generations/trunk/src/zope/generations/demo3/install.py	2010-09-18 09:30:17 UTC (rev 116553)
@@ -19,7 +19,7 @@
 
 generation = 3
 
-import zope.app.generations.demo
+import zope.generations.demo
 
 import zope.nonexistingmodule
 

Deleted: zope.generations/trunk/src/zope/generations/ftesting.zcml
===================================================================
--- zope.generations/trunk/src/zope/generations/ftesting.zcml	2010-09-18 08:50:14 UTC (rev 116552)
+++ zope.generations/trunk/src/zope/generations/ftesting.zcml	2010-09-18 09:30:17 UTC (rev 116553)
@@ -1,32 +0,0 @@
-<configure
-   xmlns="http://namespaces.zope.org/zope"
-   i18n_domain="zope"
-   package="zope.app.generations"
-   >
-
-  <!-- This file is the equivalent of site.zcml and it is -->
-  <!-- used for functional testing setup -->
-
-  <include package="zope.securitypolicy" file="meta.zcml" />
-
-  <include package="zope.app.zcmlfiles" />
-  <include package="zope.app.authentication" />
-  <include package="zope.securitypolicy" />
-  <include package="zope.login" />
-
-  <securityPolicy
-      component="zope.securitypolicy.zopepolicy.ZopeSecurityPolicy" />
-
-  <role id="zope.Manager" title="Site Manager" />
-
-  <grantAll role="zope.Manager" />
-
-  <principal
-      id="zope.globalmgr"
-      title="Manager"
-      login="globalmgr"
-      password="globalmgrpw" />
-
-  <grant role="zope.Manager" principal="zope.globalmgr" />
-
-</configure>

Modified: zope.generations/trunk/src/zope/generations/generations.py
===================================================================
--- zope.generations/trunk/src/zope/generations/generations.py	2010-09-18 08:50:14 UTC (rev 116552)
+++ zope.generations/trunk/src/zope/generations/generations.py	2010-09-18 09:30:17 UTC (rev 116553)
@@ -28,10 +28,10 @@
 from interfaces import ISchemaManager, IInstallableSchemaManager
 
 
-logger = logging.getLogger('zope.app.generations')
-generations_key = 'zope.app.generations'
+logger = logging.getLogger('zope.generations')
+old_generations_key = 'zope.app.generations'
+generations_key = 'zope.generations'
 
-
 class SchemaManager(object):
     """Schema manager
 
@@ -48,7 +48,7 @@
 
        So, if we'll create a SchemaManager:
 
-         >>> manager = SchemaManager(1, 3, 'zope.app.generations.demo')
+         >>> manager = SchemaManager(1, 3, 'zope.generations.demo')
 
        and we'll create a test database and context:
 
@@ -59,13 +59,14 @@
 
        Then we'll evolve the database from generation 1 to 3:
 
+         >>> import transaction
          >>> manager.evolve(context, 2)
          >>> manager.evolve(context, 3)
          >>> transaction.commit()
 
        The demo evolvers simply record their data in a root key:
 
-         >>> from zope.app.generations.demo import key
+         >>> from zope.generations.demo import key
          >>> conn = db.open()
          >>> conn.root()[key]
          (2, 3)
@@ -98,12 +99,12 @@
        If there is not install script, the manager will do nothing on
        an install:
 
-         >>> manager = SchemaManager(1, 3, 'zope.app.generations.demo2')
+         >>> manager = SchemaManager(1, 3, 'zope.generations.demo2')
          >>> manager.install(context)
 
        We handle ImportErrors within the script specially, so they get promoted:
 
-         >>> manager = SchemaManager(1, 3, 'zope.app.generations.demo3')
+         >>> manager = SchemaManager(1, 3, 'zope.generations.demo3')
          >>> manager.install(context)
          Traceback (most recent call last):
          ImportError: No module named nonexistingmodule
@@ -191,7 +192,7 @@
     We evolve a database using registered application schema managers.
     Here's an example (silly) schema manager:
 
-      >>> from zope.app.generations.interfaces import ISchemaManager
+      >>> from zope.generations.interfaces import ISchemaManager
       >>> class FauxApp(object):
       ...     zope.interface.implements(ISchemaManager)
       ...
@@ -211,7 +212,7 @@
     logging handler:
 
       >>> from zope.testing import loggingsupport
-      >>> loghandler = loggingsupport.InstalledHandler('zope.app.generations')
+      >>> loghandler = loggingsupport.InstalledHandler('zope.generations')
       >>> def print_log():
       ...    print loghandler
       ...    loghandler.clear()
@@ -219,16 +220,16 @@
     We also need to set up the component system, since we'll be
     registering utilities:
 
-      >>> from zope.app.testing.placelesssetup import setUp, tearDown
+      >>> from zope.component.testing import setUp, tearDown
       >>> setUp()
 
     Now, we'll create and register some handlers:
 
-      >>> from zope.app.testing import ztapi
+      >>> import zope.component
       >>> app1 = FauxApp('app1', 0, 1)
-      >>> ztapi.provideUtility(ISchemaManager, app1, name='app1')
+      >>> zope.component.provideUtility(app1, ISchemaManager, name='app1')
       >>> app2 = FauxApp('app2', 5, 11)
-      >>> ztapi.provideUtility(ISchemaManager, app2, name='app2')
+      >>> zope.component.provideUtility(app2, ISchemaManager, name='app2')
 
     If we create a new database, and evolve it, we'll simply update
     the generation data:
@@ -245,7 +246,7 @@
       11
 
       >>> print_log()
-      zope.app.generations INFO
+      zope.generations INFO
         testdb: evolving in mode EVOLVE
 
     But nothing will have been done to the database:
@@ -259,13 +260,13 @@
       >>> evolve(db)
 
       >>> print_log()
-      zope.app.generations INFO
+      zope.generations INFO
         testdb: evolving in mode EVOLVE
-      zope.app.generations INFO
+      zope.generations INFO
         testdb/app1: currently at generation 1, targetting generation 2
-      zope.app.generations DEBUG
+      zope.generations DEBUG
         testdb/app1: evolving to generation 2
-      zope.app.generations DEBUG
+      zope.generations DEBUG
         testdb/app2: up-to-date at generation 11
 
     We'll see that the generation data has updated:
@@ -291,17 +292,17 @@
       >>> evolve(db)
 
       >>> print_log()
-      zope.app.generations INFO
+      zope.generations INFO
         testdb: evolving in mode EVOLVE
-      zope.app.generations INFO
+      zope.generations INFO
         testdb/app1: currently at generation 2, targetting generation 7
-      zope.app.generations DEBUG
+      zope.generations DEBUG
         testdb/app1: evolving to generation 3
-      zope.app.generations DEBUG
+      zope.generations DEBUG
         testdb/app1: evolving to generation 4
-      zope.app.generations ERROR
+      zope.generations ERROR
         testdb/app1: failed to evolve to generation 4
-      zope.app.generations DEBUG
+      zope.generations DEBUG
         testdb/app2: up-to-date at generation 11
 
     The database will have been updated for previous generations:
@@ -327,13 +328,13 @@
     We'll also get a log entry:
 
       >>> print_log()
-      zope.app.generations INFO
+      zope.generations INFO
         testdb: evolving in mode EVOLVE
-      zope.app.generations INFO
+      zope.generations INFO
         testdb/app1: currently at generation 3, targetting generation 7
-      zope.app.generations DEBUG
+      zope.generations DEBUG
         testdb/app1: evolving to generation 4
-      zope.app.generations ERROR
+      zope.generations ERROR
         testdb/app1: failed to evolve to generation 4
 
     So far, we've used evolve in its default policy, in which we evolve
@@ -358,9 +359,9 @@
       GenerationTooLow: (3, u'app1', 4)
 
       >>> print_log()
-      zope.app.generations INFO
+      zope.generations INFO
         testdb: evolving in mode EVOLVENOT
-      zope.app.generations ERROR
+      zope.generations ERROR
         testdb/app1: current generation too low (3 < 4) but mode is EVOLVENOT
 
     We got an error because we aren't at the minimum generation for
@@ -384,13 +385,13 @@
       4
 
       >>> print_log()
-      zope.app.generations INFO
+      zope.generations INFO
         testdb: evolving in mode EVOLVEMINIMUM
-      zope.app.generations INFO
+      zope.generations INFO
         testdb/app1: currently at generation 3, targetting generation 4
-      zope.app.generations DEBUG
+      zope.generations DEBUG
         testdb/app1: evolving to generation 4
-      zope.app.generations DEBUG
+      zope.generations DEBUG
         testdb/app2: up-to-date at generation 11
 
     If we happen to install an app that has a generation that is less
@@ -406,9 +407,9 @@
       GenerationTooHigh: (4, u'app1', 2)
 
       >>> print_log()
-      zope.app.generations INFO
+      zope.generations INFO
         testdb: evolving in mode EVOLVE
-      zope.app.generations ERROR
+      zope.generations ERROR
         testdb/app1: current generation too high (4 > 2)
 
     We'd better clean up:
@@ -427,7 +428,7 @@
         context = Context()
         context.connection = conn
         root = conn.root()
-        generations = root.get(generations_key)
+        generations = root.get(generations_key) #, root.get(old_generations_key))
         if generations is None:
             generations = root[generations_key] = PersistentDict()
             transaction.commit()

Deleted: zope.generations/trunk/src/zope/generations/testing.py
===================================================================
--- zope.generations/trunk/src/zope/generations/testing.py	2010-09-18 08:50:14 UTC (rev 116552)
+++ zope.generations/trunk/src/zope/generations/testing.py	2010-09-18 09:30:17 UTC (rev 116553)
@@ -1,26 +0,0 @@
-##############################################################################
-#
-# Copyright (c) 2007 Zope Corporation and Contributors.
-# All Rights Reserved.
-#
-# This software is subject to the provisions of the Zope Public License,
-# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
-# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
-# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
-# FOR A PARTICULAR PURPOSE.
-#
-##############################################################################
-"""zope.app.generations common test related classes/functions/objects.
-
-$Id$
-"""
-
-__docformat__ = "reStructuredText"
-
-import os
-from zope.app.testing.functional import ZCMLLayer
-
-GenerationsLayer = ZCMLLayer(
-    os.path.join(os.path.split(__file__)[0], 'ftesting.zcml'),
-    __name__, 'GenerationsLayer', allow_teardown=True)


Property changes on: zope.generations/trunk/src/zope/generations/tests/__init__.py
___________________________________________________________________
Added: svn:keywords
   + Id Rev Date
Added: svn:eol-style
   + native

Copied: zope.generations/trunk/src/zope/generations/tests/test_generations.py (from rev 116549, zope.generations/trunk/src/zope/generations/tests.py)
===================================================================
--- zope.generations/trunk/src/zope/generations/tests/test_generations.py	                        (rev 0)
+++ zope.generations/trunk/src/zope/generations/tests/test_generations.py	2010-09-18 09:30:17 UTC (rev 116553)
@@ -0,0 +1,36 @@
+##############################################################################
+#
+# Copyright (c) 2004 Zope Corporation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+"""Schema-generation tests."""
+
+import zope.component.testing
+import doctest
+import unittest
+
+
+def tearDownREADME(test):
+    zope.component.testing.tearDown(test)
+    test.globs['db'].close()
+
+
+def test_suite():
+    return unittest.TestSuite((
+        doctest.DocFileSuite(
+            'README.txt',
+            setUp=zope.component.testing.setUp,
+            tearDown=tearDownREADME,
+            package='zope.generations',
+            ),
+        doctest.DocTestSuite('zope.generations.generations'),
+        doctest.DocTestSuite('zope.generations.utility'),
+        ))

Copied: zope.generations/trunk/src/zope/generations/tests/test_zcml.py (from rev 116348, zope.dublincore/trunk/src/zope/dublincore/tests/test_zcml.py)
===================================================================
--- zope.generations/trunk/src/zope/generations/tests/test_zcml.py	                        (rev 0)
+++ zope.generations/trunk/src/zope/generations/tests/test_zcml.py	2010-09-18 09:30:17 UTC (rev 116553)
@@ -0,0 +1,29 @@
+##############################################################################
+#
+# Copyright (c) 2010 Zope Foundation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+""" Tests that ZCML can be loaded.
+"""
+import unittest
+
+class ZCMLTests(unittest.TestCase):
+
+    from zope.component.testing import setUp
+    from zope.component.testing import tearDown
+
+    def test_loadable(self):
+        # N.B.:  this test deliberately avoids any "ftesting" / layers
+        #        support:  its purpose is to ensure that the package's
+        #        ZCML file is loadable *without* loading any other ZCML.
+        from zope.configuration.xmlconfig import file
+        import zope.generations
+        return file('configure.zcml', package=zope.generations)

Deleted: zope.generations/trunk/src/zope/generations/tests.py
===================================================================
--- zope.generations/trunk/src/zope/generations/tests.py	2010-09-18 08:50:14 UTC (rev 116552)
+++ zope.generations/trunk/src/zope/generations/tests.py	2010-09-18 09:30:17 UTC (rev 116553)
@@ -1,37 +0,0 @@
-##############################################################################
-#
-# Copyright (c) 2004 Zope Corporation and Contributors.
-# All Rights Reserved.
-#
-# This software is subject to the provisions of the Zope Public License,
-# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
-# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
-# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
-# FOR A PARTICULAR PURPOSE.
-#
-##############################################################################
-"""Schema-generation tests
-
-$Id$
-"""
-
-from zope.app.testing import placelesssetup
-import doctest
-import unittest
-
-
-def tearDownREADME(test):
-    placelesssetup.tearDown(test)
-    test.globs['db'].close()
-
-
-def test_suite():
-    return unittest.TestSuite((
-        doctest.DocFileSuite(
-            'README.txt',
-            setUp=placelesssetup.setUp, tearDown=tearDownREADME,
-            ),
-        doctest.DocTestSuite('zope.app.generations.generations'),
-        doctest.DocTestSuite('zope.app.generations.utility'),
-        ))

Modified: zope.generations/trunk/src/zope/generations/utility.py
===================================================================
--- zope.generations/trunk/src/zope/generations/utility.py	2010-09-18 08:50:14 UTC (rev 116552)
+++ zope.generations/trunk/src/zope/generations/utility.py	2010-09-18 09:30:17 UTC (rev 116553)
@@ -17,9 +17,7 @@
 """
 __docformat__ = "reStructuredText"
 
-import zope.app.publication.zopepublication
 
-
 def findObjectsMatching(root, condition):
     """Find all objects in the root that match the condition.
 
@@ -128,37 +126,41 @@
     for match in findObjectsMatching(root, interface.providedBy):
         yield match
 
+try:
+    import zope.app.publication.zopepublication
+except:
+    pass
+else:
+    def getRootFolder(context):
+        """Get the root folder of the ZODB.
 
-def getRootFolder(context):
-    """Get the root folder of the ZODB.
+        We need some set up. Create a database:
 
-    We need some set up. Create a database:
+        >>> from ZODB.tests.util import DB
+        >>> from zope.generations.generations import Context
+        >>> db = DB()
+        >>> context = Context()
+        >>> context.connection = db.open()
+        >>> root = context.connection.root()
 
-    >>> from ZODB.tests.util import DB
-    >>> from zope.app.generations.generations import Context
-    >>> db = DB()
-    >>> context = Context()
-    >>> context.connection = db.open()
-    >>> root = context.connection.root()
+        Add a root folder:
 
-    Add a root folder:
+        >>> from zope.site.folder import rootFolder
+        >>> from zope.app.publication.zopepublication import ZopePublication
+        >>> import transaction
+        >>> root[ZopePublication.root_name] = rootFolder()
+        >>> transaction.commit()
 
-    >>> from zope.site.folder import rootFolder
-    >>> from zope.app.publication.zopepublication import ZopePublication
-    >>> import transaction
-    >>> root[ZopePublication.root_name] = rootFolder()
-    >>> transaction.commit()
+        Now we can get the root folder using the function:
 
-    Now we can get the root folder using the function:
+        >>> getRootFolder(context) # doctest: +ELLIPSIS
+        <zope.site.folder.Folder object at ...>
 
-    >>> getRootFolder(context) # doctest: +ELLIPSIS
-    <zope.site.folder.Folder object at ...>
+        We'd better clean up:
 
-    We'd better clean up:
+        >>> context.connection.close()
+        >>> db.close()
 
-    >>> context.connection.close()
-    >>> db.close()
-
-    """
-    return context.connection.root().get(
-        zope.app.publication.zopepublication.ZopePublication.root_name, None)
+        """
+        return context.connection.root().get(
+            zope.app.publication.zopepublication.ZopePublication.root_name, None)



More information about the checkins mailing list