[Checkins] SVN: grok/trunk/src/grok/ test that grok.MultiAdapter
must specify grok.adapts
Wolfgang Schnerring
wosc at wosc.de
Wed Oct 18 09:32:24 EDT 2006
Log message for revision 70781:
test that grok.MultiAdapter must specify grok.adapts
Changed:
U grok/trunk/src/grok/_grok.py
A grok/trunk/src/grok/tests/adapter/multiadaptsnone.py
-=-
Modified: grok/trunk/src/grok/_grok.py
===================================================================
--- grok/trunk/src/grok/_grok.py 2006-10-18 13:26:05 UTC (rev 70780)
+++ grok/trunk/src/grok/_grok.py 2006-10-18 13:32:23 UTC (rev 70781)
@@ -311,6 +311,7 @@
def register_multiadapters(multiadapters):
for factory in multiadapters:
check_implements_one(factory)
+ check_adapts(factory)
name = class_annotation(factory, 'grok.name', '')
component.provideAdapter(factory, name=name)
@@ -428,6 +429,12 @@
"(use grok.implements to specify)."
% class_, class_)
+def check_adapts(class_):
+ if component.adaptedBy(class_) is None:
+ raise GrokError("%r must specify which contexts it adapts "
+ "(use grok.adapts to specify)."
+ % class_, class_)
+
def determine_module_context(module_info, models):
if len(models) == 0:
context = None
Added: grok/trunk/src/grok/tests/adapter/multiadaptsnone.py
===================================================================
--- grok/trunk/src/grok/tests/adapter/multiadaptsnone.py 2006-10-18 13:26:05 UTC (rev 70780)
+++ grok/trunk/src/grok/tests/adapter/multiadaptsnone.py 2006-10-18 13:32:23 UTC (rev 70781)
@@ -0,0 +1,18 @@
+"""
+Subclasses of grok.MultiAdapter must declare what they adapt, using grok.adapts:
+
+ >>> grok.grok(__name__)
+ Traceback (most recent call last):
+ ...
+ GrokError: <class 'grok.tests.adapter.multiadaptsnone.Home'> must specify
+ which contexts it adapts (use grok.adapts to specify).
+"""
+import grok
+
+from zope import interface
+
+class IHome(interface.Interface):
+ pass
+
+class Home(grok.MultiAdapter):
+ grok.implements(IHome)
More information about the Checkins
mailing list