[Checkins] SVN: zc.freeze/trunk/ - Updated tests to run with ZTK 1.0 (using a nonpersistent zope.locking token utility is no longer possible as it requires to be persistent to work)
Michael Howitz
mh at gocept.com
Fri Mar 18 03:35:49 EDT 2011
Log message for revision 121016:
- Updated tests to run with ZTK 1.0 (using a nonpersistent zope.locking token utility is no longer possible as it requires to be persistent to work)
- Updated metadata in setup.py
Changed:
A zc.freeze/trunk/CHANGES.txt
U zc.freeze/trunk/buildout.cfg
U zc.freeze/trunk/setup.py
D zc.freeze/trunk/src/zc/freeze/CHANGES.txt
A zc.freeze/trunk/src/zc/freeze/ftesting.zcml
U zc.freeze/trunk/src/zc/freeze/subscribers.txt
U zc.freeze/trunk/src/zc/freeze/tests.py
-=-
Copied: zc.freeze/trunk/CHANGES.txt (from rev 120834, zc.freeze/trunk/src/zc/freeze/CHANGES.txt)
===================================================================
--- zc.freeze/trunk/CHANGES.txt (rev 0)
+++ zc.freeze/trunk/CHANGES.txt 2011-03-18 07:35:49 UTC (rev 121016)
@@ -0,0 +1,30 @@
+=======
+CHANGES
+=======
+
+1.2 (unreleased)
+================
+
+* Updated tests to run with ZTK 1.0.
+
+
+1.1
+===
+
+(supports Zope 3.4/eggs)
+
+1.1b
+----
+
+Switched to supporting eggs
+
+1.0
+===
+
+(supports Zope 3.3/no eggs)
+
+1.0.1
+-----
+
+Removed the included rwproperty.py and added a dependency instead, as
+rwproperty is now available from pypi.
Modified: zc.freeze/trunk/buildout.cfg
===================================================================
--- zc.freeze/trunk/buildout.cfg 2011-03-17 22:22:13 UTC (rev 121015)
+++ zc.freeze/trunk/buildout.cfg 2011-03-18 07:35:49 UTC (rev 121016)
@@ -2,8 +2,6 @@
develop = .
parts = test py
-find-links = http://download.zope.org/distribution/
-
[test]
recipe = zc.recipe.testrunner
eggs = zc.freeze
Modified: zc.freeze/trunk/setup.py
===================================================================
--- zc.freeze/trunk/setup.py 2011-03-17 22:22:13 UTC (rev 121015)
+++ zc.freeze/trunk/setup.py 2011-03-18 07:35:49 UTC (rev 121016)
@@ -19,19 +19,19 @@
'zope.app.testing', # lame, should remove
'zope.app.container', # lame, should remove
],
-# dependency_links=['http://download.zope.org/distribution/',],
packages=find_packages('src'),
include_package_data=True,
package_dir= {'':'src'},
-
+
namespace_packages=['zc'],
zip_safe=False,
author='Zope Project',
- author_email='zope3-dev at zope.org',
+ author_email='zope-dev at zope.org',
+ url='http://pypi.python.org/pypi/zc.freeze',
description=open('README.txt').read(),
long_description=
- open('src/zc/freeze/CHANGES.txt').read() +
+ open('CHANGES.txt').read() +
'\n\n' +
open("src/zc/freeze/README.txt").read(),
license='ZPL 2.1',
Deleted: zc.freeze/trunk/src/zc/freeze/CHANGES.txt
===================================================================
--- zc.freeze/trunk/src/zc/freeze/CHANGES.txt 2011-03-17 22:22:13 UTC (rev 121015)
+++ zc.freeze/trunk/src/zc/freeze/CHANGES.txt 2011-03-18 07:35:49 UTC (rev 121016)
@@ -1,24 +0,0 @@
-=======
-CHANGES
-=======
-
-1.1
-===
-
-(supports Zope 3.4/eggs)
-
-1.1b
-----
-
-Switched to supporting eggs
-
-1.0
-===
-
-(supports Zope 3.3/no eggs)
-
-1.0.1
------
-
-Removed the included rwproperty.py and added a dependency instead, as
-rwproperty is now available from pypi.
Added: zc.freeze/trunk/src/zc/freeze/ftesting.zcml
===================================================================
--- zc.freeze/trunk/src/zc/freeze/ftesting.zcml (rev 0)
+++ zc.freeze/trunk/src/zc/freeze/ftesting.zcml 2011-03-18 07:35:49 UTC (rev 121016)
@@ -0,0 +1,12 @@
+<configure xmlns="http://namespaces.zope.org/zope">
+
+ <include package="zope.component" file="meta.zcml" />
+ <include package="zope.security" file="meta.zcml" />
+ <include package="zope.browserpage" file="meta.zcml" />
+ <include package="zope.app.publication" file="meta.zcml" />
+ <include package="zope.app.publication" />
+ <include package="zope.traversing" />
+ <include package="zope.container" />
+ <include package="zope.app.appsetup" />
+
+</configure>
Property changes on: zc.freeze/trunk/src/zc/freeze/ftesting.zcml
___________________________________________________________________
Added: svn:keywords
+ Id Rev Date
Added: svn:eol-style
+ native
Modified: zc.freeze/trunk/src/zc/freeze/subscribers.txt
===================================================================
--- zc.freeze/trunk/src/zc/freeze/subscribers.txt 2011-03-17 22:22:13 UTC (rev 121015)
+++ zc.freeze/trunk/src/zc/freeze/subscribers.txt 2011-03-18 07:35:49 UTC (rev 121016)
@@ -1,3 +1,7 @@
+=============
+ Subscribers
+=============
+
The subscribers module contains a subscriber for "enforcing" freezing
using zope.locking tokens. This, of course, assumes that zope.locking
tokens are configured to themselves be enforced somehow, using
@@ -3,53 +7,17 @@
approaches such as those in zc.tokenpolicy. By default, this `freezer`
subscriber is registered only for objects that provide
-zc.freeze.interfaces.ITokenEnforced. Imagine a demo object that
-implements ITokenEnforced, with a token utility already in place [#setup]_.
+zc.freeze.interfaces.ITokenEnforced.
- >>> import zc.freeze.subscribers
- >>> import zope.component
- >>> zope.component.provideHandler(zc.freeze.subscribers.freezer)
- >>> demo = Demo()
- >>> import zc.freeze.interfaces
- >>> import zope.interface
- >>> zope.interface.directlyProvides(
- ... demo, zc.freeze.interfaces.ITokenEnforced)
- >>> zc.freeze.interfaces.ITokenEnforced.providedBy(demo)
- True
- >>> util.get(demo) is None
- True
- >>> demo._z_frozen
- False
- >>> demo._z_freeze()
- >>> demo._z_frozen
- True
- >>> import zope.locking.interfaces
- >>> zope.locking.interfaces.IFreeze.providedBy(util.get(demo))
- True
+Set up
+======
-If an object does not provide ITokenEnforced, the subscriber will not
-fire, given a default registration.
+This sets up a `zope.locking` token utility. This code also creates a Demo
+class that provides ``IVersioning`` and can be used in our setup.
- >>> demo2 = Demo()
- >>> zc.freeze.interfaces.ITokenEnforced.providedBy(demo2)
- False
- >>> demo2._z_freeze()
- >>> demo2._z_frozen
- True
- >>> util.get(demo2) is None
- True
-
-=========
-Footnotes
-=========
-
-.. [#setup] This sets up a zope.locking token utility as a global,
- non-persistent utility. This is completely useless and even dangerous
- in real use, but is fine for this test. This code also creates a Demo
- class that provides IVersioning and can be used in our non-persistent
- setup.
-
>>> from zope import interface, component
>>> from zope.locking import utility, interfaces
- >>> util = utility.TokenUtility()
+ >>> getRootFolder()['token_util'] = util = utility.TokenUtility()
+ >>> import transaction
+ >>> transaction.commit()
>>> component.provideUtility(util, provides=interfaces.ITokenUtility)
>>> import zope.app.keyreference.interfaces
@@ -82,6 +50,47 @@
... def __cmp__(self, other):
... if self.key_type_id == other.key_type_id:
... return cmp(self._id, other._id)
- ... return cmp(self.key_type_id, other.key_type_id)
+ ... return cmp(self.key_type_id, other.key_type_id)
...
>>> component.provideAdapter(DemoKeyReference)
+
+
+Subscription
+============
+
+Imagine a demo object that implements ``ITokenEnforced``, with a token utility
+already in place.
+
+ >>> import zc.freeze.subscribers
+ >>> import zope.component
+ >>> zope.component.provideHandler(zc.freeze.subscribers.freezer)
+ >>> demo = Demo()
+ >>> import zc.freeze.interfaces
+ >>> import zope.interface
+ >>> zope.interface.directlyProvides(
+ ... demo, zc.freeze.interfaces.ITokenEnforced)
+ >>> zc.freeze.interfaces.ITokenEnforced.providedBy(demo)
+ True
+ >>> util.get(demo) is None
+ True
+ >>> demo._z_frozen
+ False
+ >>> demo._z_freeze()
+ >>> demo._z_frozen
+ True
+ >>> import zope.locking.interfaces
+ >>> zope.locking.interfaces.IFreeze.providedBy(util.get(demo))
+ True
+
+If an object does not provide ``ITokenEnforced``, the subscriber will not
+fire, given a default registration.
+
+ >>> demo2 = Demo()
+ >>> zc.freeze.interfaces.ITokenEnforced.providedBy(demo2)
+ False
+ >>> demo2._z_freeze()
+ >>> demo2._z_frozen
+ True
+ >>> util.get(demo2) is None
+ True
+
Modified: zc.freeze/trunk/src/zc/freeze/tests.py
===================================================================
--- zc.freeze/trunk/src/zc/freeze/tests.py 2011-03-17 22:22:13 UTC (rev 121015)
+++ zc.freeze/trunk/src/zc/freeze/tests.py 2011-03-18 07:35:49 UTC (rev 121016)
@@ -1,12 +1,15 @@
+from zope.app.container.tests.placelesssetup import PlacelessSetup
+from zope.app.testing import placelesssetup
+from zope.component import testing, eventtesting
+from zope.testing import doctest
import unittest
-from zope.app.testing import placelesssetup
+import zope.app.testing.functional
import zope.testing.module
-from zope.testing import doctest
-from zope.component import testing, eventtesting
-from zope.app.container.tests.placelesssetup import PlacelessSetup
+
container_setup = PlacelessSetup()
+
def setUp(test):
placelesssetup.setUp(test)
events = test.globs['events'] = []
@@ -53,12 +56,13 @@
except ImportError:
pass
else:
- tests += (
- doctest.DocFileSuite(
+ zope.app.testing.functional.defineLayer(
+ 'SubscribersLayer', zcml='ftesting.zcml')
+
+ subscribers = zope.app.testing.functional.FunctionalDocFileSuite(
'subscribers.txt',
- setUp=subscribersSetUp, tearDown=subscribersTearDown,
- optionflags=doctest.INTERPRET_FOOTNOTES),)
+ setUp=subscribersSetUp, tearDown=subscribersTearDown)
+ subscribers.layer = SubscribersLayer
+ tests += (subscribers,)
+
return unittest.TestSuite(tests)
-
-if __name__ == '__main__':
- unittest.main(defaultTest='test_suite')
More information about the checkins
mailing list