[Zope3-checkins] SVN: Zope3/branches/3.3/src/zope/app/interface/
Add a test and a fix for a problem creating the persistent
versions of
Ross Patterson
me at rpatterson.net
Sat Jan 27 18:01:52 EST 2007
Log message for revision 72239:
Add a test and a fix for a problem creating the persistent versions of
declarations pointed out by Jim.
Fix up a docstring format per feedback from Jim.
Changed:
U Zope3/branches/3.3/src/zope/app/interface/__init__.py
U Zope3/branches/3.3/src/zope/app/interface/tests/test_interface.py
-=-
Modified: Zope3/branches/3.3/src/zope/app/interface/__init__.py
===================================================================
--- Zope3/branches/3.3/src/zope/app/interface/__init__.py 2007-01-27 17:16:05 UTC (rev 72238)
+++ Zope3/branches/3.3/src/zope/app/interface/__init__.py 2007-01-27 23:01:51 UTC (rev 72239)
@@ -81,7 +81,7 @@
ProvidesClass.__init__(self, *args, **kw)
self.dependents = DependentsDict()
def persistentProvides(obj):
- return PersistentProvidesClass(*obj.__reduce__()[1:])
+ return PersistentProvidesClass(*obj.__reduce__()[1])
persistentFactories[Provides] = persistentProvides
from zope.interface.declarations import Implements
Modified: Zope3/branches/3.3/src/zope/app/interface/tests/test_interface.py
===================================================================
--- Zope3/branches/3.3/src/zope/app/interface/tests/test_interface.py 2007-01-27 17:16:05 UTC (rev 72238)
+++ Zope3/branches/3.3/src/zope/app/interface/tests/test_interface.py 2007-01-27 23:01:51 UTC (rev 72239)
@@ -111,9 +111,11 @@
self.assertTrue(barmodule.IBar.providedBy(bar))
def test_weakref(self):
- """Weak references to persistent objects don't remain after
- ZODB pack and garbage collection."""
+ """Verify interacton of declaration weak refs with ZODB
+ Weak references to persistent objects don't remain after ZODB
+ pack and garbage collection."""
+
bar = self.root['bar'] = Bar()
baz = self.root['baz'] = Baz()
@@ -142,6 +144,32 @@
barmodule = root['registry'].findModule("barmodule")
self.assertEqual(barmodule.IBar.dependents.keys(), [])
+
+ def test_persistentDeclarations(self):
+ """Verify equivalency of persistent declarations
+
+ Make sure that the persistent declaration instance are
+ equivalent to the non-persistent instances they originate
+ from."""
+
+ self.registry.newModule("barmodule", bar_code)
+ barmodule = self.registry.findModule("barmodule")
+
+ class Baz(object):
+ implements(barmodule.IBar)
+
+ bar = Bar()
+ directlyProvides(bar, barmodule.IBar)
+
+ self.assertEqual(
+ bar.__provides__._Provides__args,
+ barmodule.IBar.dependents.keys()[0]._Provides__args
+ )
+
+ self.assertEqual(
+ Baz.__implemented__.__bases__,
+ barmodule.IBar.dependents.keys()[1].__bases__
+ )
def test_suite():
return unittest.makeSuite(PersistentInterfaceTest)
More information about the Zope3-Checkins
mailing list