[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