[Checkins] SVN: grok/branches/snowsprint-viewlets2/src/grok/ Fixed
a bug,
grok.view and grok.viewletmanager could not be specified on module
level.
Tim TerlegÃÂ¥rd
tim.terlegard at valentinewebsystems.se
Mon Feb 4 02:38:54 EST 2008
Log message for revision 83488:
Fixed a bug, grok.view and grok.viewletmanager could not be specified on module level.
Changed:
U grok/branches/snowsprint-viewlets2/src/grok/directive.py
A grok/branches/snowsprint-viewlets2/src/grok/ftests/viewlet/view_directive.py
A grok/branches/snowsprint-viewlets2/src/grok/ftests/viewlet/view_directive_templates/
A grok/branches/snowsprint-viewlets2/src/grok/ftests/viewlet/view_directive_templates/boneview.pt
A grok/branches/snowsprint-viewlets2/src/grok/ftests/viewlet/viewletmanager_directive.py
A grok/branches/snowsprint-viewlets2/src/grok/ftests/viewlet/viewletmanager_directive_templates/
A grok/branches/snowsprint-viewlets2/src/grok/ftests/viewlet/viewletmanager_directive_templates/boneview.pt
-=-
Modified: grok/branches/snowsprint-viewlets2/src/grok/directive.py
===================================================================
--- grok/branches/snowsprint-viewlets2/src/grok/directive.py 2008-02-04 03:35:58 UTC (rev 83487)
+++ grok/branches/snowsprint-viewlets2/src/grok/directive.py 2008-02-04 07:38:53 UTC (rev 83488)
@@ -141,6 +141,6 @@
order = OrderDirective('grok.order', ClassDirectiveContext())
direct = MarkerDirective('grok.direct', ClassDirectiveContext())
viewletmanager = InterfaceOrClassDirective('grok.viewletmanager',
- ClassDirectiveContext())
+ ClassOrModuleDirectiveContext())
view = InterfaceOrClassDirective('grok.view',
- ClassDirectiveContext())
+ ClassOrModuleDirectiveContext())
Added: grok/branches/snowsprint-viewlets2/src/grok/ftests/viewlet/view_directive.py
===================================================================
--- grok/branches/snowsprint-viewlets2/src/grok/ftests/viewlet/view_directive.py (rev 0)
+++ grok/branches/snowsprint-viewlets2/src/grok/ftests/viewlet/view_directive.py 2008-02-04 07:38:53 UTC (rev 83488)
@@ -0,0 +1,40 @@
+"""
+We check here that specifying grok.view() on module level works.
+grok.view() on module level will make the viewlet manager be
+associated with the CaveView, so nothing is found for BoneView
+and an error should occur.
+
+Set up a content object in the application root::
+
+ >>> root = getRootFolder()
+ >>> root['fred'] = Fred()
+
+Traverse to the view on the model object. We get the viewlets
+registered for the default layer, with the anybody permission::
+
+ >>> from zope.testbrowser.testing import Browser
+ >>> browser = Browser()
+ >>> browser.handleErrors = False
+ >>> browser.open("http://localhost/fred/@@boneview")
+ Traceback (most recent call last):
+ ...
+ ContentProviderLookupError: cave
+
+"""
+
+import grok
+
+class Fred(grok.Model):
+ pass
+
+class CaveView(grok.View):
+ def render(self):
+ return 'Cave'
+
+class BoneView(grok.View):
+ pass
+
+grok.view(CaveView)
+
+class CaveManager(grok.ViewletManager):
+ grok.name('cave')
Added: grok/branches/snowsprint-viewlets2/src/grok/ftests/viewlet/view_directive_templates/boneview.pt
===================================================================
--- grok/branches/snowsprint-viewlets2/src/grok/ftests/viewlet/view_directive_templates/boneview.pt (rev 0)
+++ grok/branches/snowsprint-viewlets2/src/grok/ftests/viewlet/view_directive_templates/boneview.pt 2008-02-04 07:38:53 UTC (rev 83488)
@@ -0,0 +1 @@
+<span tal:replace="provider:cave" />
Added: grok/branches/snowsprint-viewlets2/src/grok/ftests/viewlet/viewletmanager_directive.py
===================================================================
--- grok/branches/snowsprint-viewlets2/src/grok/ftests/viewlet/viewletmanager_directive.py (rev 0)
+++ grok/branches/snowsprint-viewlets2/src/grok/ftests/viewlet/viewletmanager_directive.py 2008-02-04 07:38:53 UTC (rev 83488)
@@ -0,0 +1,42 @@
+"""
+We check here that the grok.viewletmanager directive works on
+module level. If we don't specify a viewlet manager at all for
+the Fred viewlet we get an error, so if we specify a manager using
+the directive on module level we shouldn't get any error.
+
+Set up a content object in the application root::
+
+ >>> root = getRootFolder()
+ >>> root['fred'] = Fred()
+
+Traverse to the view on the model object. We get the viewlets
+registered for the default layer, with the anybody permission::
+
+ >>> from zope.testbrowser.testing import Browser
+ >>> browser = Browser()
+ >>> browser.handleErrors = False
+ >>> browser.open("http://localhost/fred/@@boneview")
+ >>> print browser.contents
+ Fred viewlet
+
+"""
+
+import grok
+
+class Fred(grok.Model):
+ pass
+
+class BoneView(grok.View):
+ pass
+
+class BoneManager(grok.ViewletManager):
+ grok.name('bone')
+
+class CaveManager(grok.ViewletManager):
+ grok.name('cave')
+
+grok.viewletmanager(CaveManager)
+
+class FredViewlet(grok.Viewlet):
+ def render(self):
+ return 'Fred viewlet'
Added: grok/branches/snowsprint-viewlets2/src/grok/ftests/viewlet/viewletmanager_directive_templates/boneview.pt
===================================================================
--- grok/branches/snowsprint-viewlets2/src/grok/ftests/viewlet/viewletmanager_directive_templates/boneview.pt (rev 0)
+++ grok/branches/snowsprint-viewlets2/src/grok/ftests/viewlet/viewletmanager_directive_templates/boneview.pt 2008-02-04 07:38:53 UTC (rev 83488)
@@ -0,0 +1 @@
+<span tal:replace="provider:cave" />
More information about the Checkins
mailing list