[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