[Checkins] SVN: grok/trunk/src/grok/ don't grok imported things by
default
Philipp von Weitershausen
philikon at philikon.de
Sat Oct 14 13:43:29 EDT 2006
Log message for revision 70617:
don't grok imported things by default
Changed:
U grok/trunk/src/grok/_grok.py
U grok/trunk/src/grok/adapter.txt
A grok/trunk/src/grok/tests/importedmodel.py
A grok/trunk/src/grok/tests/importedmodel2.py
U grok/trunk/src/grok/tests/test_adapter.py
-=-
Modified: grok/trunk/src/grok/_grok.py
===================================================================
--- grok/trunk/src/grok/_grok.py 2006-10-14 17:23:00 UTC (rev 70616)
+++ grok/trunk/src/grok/_grok.py 2006-10-14 17:43:28 UTC (rev 70617)
@@ -40,6 +40,9 @@
for name in dir(module):
obj = getattr(module, name)
+ if getattr(obj, '__module__', None) != dotted_name:
+ continue
+
if check_subclass(obj, Model):
context = obj
elif check_subclass(obj, Adapter):
Modified: grok/trunk/src/grok/adapter.txt
===================================================================
--- grok/trunk/src/grok/adapter.txt 2006-10-14 17:23:00 UTC (rev 70616)
+++ grok/trunk/src/grok/adapter.txt 2006-10-14 17:43:28 UTC (rev 70617)
@@ -19,3 +19,27 @@
Traceback (most recent call last):
...
GrokError: Adapter without context
+
+Clean up component registry:
+
+ >>> from zope.testing.cleanup import cleanUp
+ >>> cleanUp()
+
+Imported model and adapter won't be grokked:
+
+ >>> grok.grok('grok.tests.importedmodel')
+ >>> home = IHome(cave)
+ Traceback (most recent call last):
+ ...
+ TypeError: ('Could not adapt', <grok.tests.adapter.Cave object at ...>, <InterfaceClass grok.tests.adapter.IHome>)
+
+Clean up:
+
+ >>> cleanUp()
+
+Grok error because import model doesn't count as context:
+
+ >>> grok.grok('grok.tests.importedmodel2')
+ Traceback (most recent call last):
+ ...
+ GrokError: Adapter without context
Added: grok/trunk/src/grok/tests/importedmodel.py
===================================================================
--- grok/trunk/src/grok/tests/importedmodel.py 2006-10-14 17:23:00 UTC (rev 70616)
+++ grok/trunk/src/grok/tests/importedmodel.py 2006-10-14 17:43:28 UTC (rev 70617)
@@ -0,0 +1 @@
+from grok.tests.adapter import Cave, Home
Property changes on: grok/trunk/src/grok/tests/importedmodel.py
___________________________________________________________________
Name: svn:eol-style
+ native
Added: grok/trunk/src/grok/tests/importedmodel2.py
===================================================================
--- grok/trunk/src/grok/tests/importedmodel2.py 2006-10-14 17:23:00 UTC (rev 70616)
+++ grok/trunk/src/grok/tests/importedmodel2.py 2006-10-14 17:43:28 UTC (rev 70617)
@@ -0,0 +1,13 @@
+import grok
+from grok.tests.adapter import Cave
+from zope import interface
+
+class IPainting(interface.Interface):
+ pass
+
+class Painting(grok.Adapter):
+ """
+ Grokking of this should fail because there's no model (only an
+ imported one which doesn't count).
+ """
+ grok.implements(IPainting)
Property changes on: grok/trunk/src/grok/tests/importedmodel2.py
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: grok/trunk/src/grok/tests/test_adapter.py
===================================================================
--- grok/trunk/src/grok/tests/test_adapter.py 2006-10-14 17:23:00 UTC (rev 70616)
+++ grok/trunk/src/grok/tests/test_adapter.py 2006-10-14 17:43:28 UTC (rev 70617)
@@ -1,10 +1,11 @@
import unittest
-from zope.testing.doctest import DocFileSuite
+from zope.testing import doctest
def test_suite():
return unittest.TestSuite((
- DocFileSuite('adapter.txt',
- package='grok'),
+ doctest.DocFileSuite('adapter.txt',
+ package='grok',
+ optionflags=doctest.ELLIPSIS),
))
if __name__ == '__main__':
More information about the Checkins
mailing list