[Zope3-checkins] SVN: Zope3/trunk/src/zope/app/module/
ModuleManagers behave differently when interfaces are involved
Ross Patterson
me at rpatterson.net
Mon Feb 5 18:11:16 EST 2007
Log message for revision 72384:
ModuleManagers behave differently when interfaces are involved
I've added a doc file and corresponding test to demonstrate.
Changed:
A Zope3/trunk/src/zope/app/module/interfaces.txt
U Zope3/trunk/src/zope/app/module/tests.py
-=-
Added: Zope3/trunk/src/zope/app/module/interfaces.txt
===================================================================
--- Zope3/trunk/src/zope/app/module/interfaces.txt 2007-02-05 23:03:44 UTC (rev 72383)
+++ Zope3/trunk/src/zope/app/module/interfaces.txt 2007-02-05 23:11:13 UTC (rev 72384)
@@ -0,0 +1,38 @@
+;-*-Doctest-*-
+=====================
+Persistent Interfaces
+=====================
+
+zope.app.module's ModuleManagers behave a little differently when
+interfaces are involved::
+
+ >>> from zope.app.module.manager import ModuleManager
+ >>> manager = ModuleManager()
+ >>> source = """\n
+ ... from zope.interface import Interface
+ ... class IFoo(Interface): pass
+ ... class IBar(IFoo): pass
+ ... """
+ >>> manager.source = source
+
+A ModuleManager doesn't get a name until it's registered and the
+zodbcode wrappers break without a name, so we can't retrieve our
+module until our manager is registered::
+
+ >>> from zope.app.testing import setup
+ >>> from zope.app.module import interfaces
+ >>> root = setup.buildSampleFolderTree()
+ >>> root_sm = setup.createSiteManager(root)
+ >>> manager = setup.addUtility(root_sm, 'foo',
+ ... interfaces.IModuleManager, manager)
+
+Now we can compile a module with interfaces and access everything
+appropriately::
+
+ >>> module = manager.getModule()
+ >>> module
+ <PersistentModule foo>
+ >>> module.IFoo
+ <PersistentInterfaceClass foo.IFoo>
+ >>> module.IBar
+ <PersistentInterfaceClass foo.IBar>
Modified: Zope3/trunk/src/zope/app/module/tests.py
===================================================================
--- Zope3/trunk/src/zope/app/module/tests.py 2007-02-05 23:03:44 UTC (rev 72383)
+++ Zope3/trunk/src/zope/app/module/tests.py 2007-02-05 23:11:13 UTC (rev 72384)
@@ -34,7 +34,8 @@
def test_suite():
return unittest.TestSuite((
- doctest.DocFileSuite('README.txt', setUp=setUp, tearDown=tearDown),
+ doctest.DocFileSuite('README.txt', 'interfaces.txt',
+ setUp=setUp, tearDown=tearDown),
))
if __name__ == "__main__":
More information about the Zope3-Checkins
mailing list