[Checkins] SVN: grokcore.view/branches/jw-contentproviders/src/grokcore/view/ftests/contentprovider/ show layer based discrimintation of content providers

Jan-Wijbrand Kolman janwijbrand at gmail.com
Mon Jun 27 04:52:25 EDT 2011


Log message for revision 121982:
  show layer based discrimintation of content providers

Changed:
  D   grokcore.view/branches/jw-contentproviders/src/grokcore/view/ftests/contentprovider/contentprovider.py
  D   grokcore.view/branches/jw-contentproviders/src/grokcore/view/ftests/contentprovider/contentprovider_templates/
  A   grokcore.view/branches/jw-contentproviders/src/grokcore/view/ftests/contentprovider/layer.py
  A   grokcore.view/branches/jw-contentproviders/src/grokcore/view/ftests/contentprovider/layer_templates/

-=-
Deleted: grokcore.view/branches/jw-contentproviders/src/grokcore/view/ftests/contentprovider/contentprovider.py
===================================================================
--- grokcore.view/branches/jw-contentproviders/src/grokcore/view/ftests/contentprovider/contentprovider.py	2011-06-27 07:06:49 UTC (rev 121981)
+++ grokcore.view/branches/jw-contentproviders/src/grokcore/view/ftests/contentprovider/contentprovider.py	2011-06-27 08:52:25 UTC (rev 121982)
@@ -1,69 +0,0 @@
-"""
-=====================
-Test Content Provider
-=====================
-
-This doctest will test the various grok content provider registrations. Grok
-viewlets offer the same flexibility as zope3, allowing you to register viewlets
-for a particular view, context, layer, and permission.
-
-Set up a content object in the application root::
-
-  >>> root = getRootFolder()
-  >>> root['wilma'] = CaveWoman()
-  >>> root['fred'] = CaveMan()
-
-Traverse to the view on the model object. We get the viewlets
-registered for the default layer, with the anybody permission::
-
-  >>> from zope.app.wsgi.testlayer import Browser
-  >>> browser = Browser()
-  >>> browser.handleErrors = False
-  >>> browser.open("http://localhost/wilma/@@caveview")
-  >>> print browser.contents
-  Soup pot
-
-"""
-
-from zope.interface import Interface
-from zope.publisher.interfaces.browser import IDefaultBrowserLayer
-import grokcore.view as grok
-
-class CaveWoman(grok.Context):
-    pass
-
-class CaveMan(grok.Context):
-    pass
-
-class CaveView(grok.View):
-    grok.context(Interface)
-
-class FireView(grok.View):
-    grok.context(Interface)
-    grok.template('caveview')
-
-class Pot(grok.ContentProvider):
-    grok.context(Interface)
-
-    def render(self):
-        return u"Soup pot"
-
-class GoldPot(grok.ContentProvider):
-    grok.name('pot')
-    grok.context(Interface)
-    grok.require('bone.gold')
-    grok.view(FireView)
-
-    def render(self):
-        return u"Gold Soup Pot"
-
-class IBoneLayer(IDefaultBrowserLayer):
-    grok.skin('boneskin')
-
-class LayeredPot(grok.ContentProvider):
-    grok.name('pot')
-    grok.context(Interface)
-    grok.layer(IBoneLayer)
-
-    def render(self):
-        return u"Layered pot"

Copied: grokcore.view/branches/jw-contentproviders/src/grokcore/view/ftests/contentprovider/layer.py (from rev 121968, grokcore.view/branches/jw-contentproviders/src/grokcore/view/ftests/contentprovider/contentprovider.py)
===================================================================
--- grokcore.view/branches/jw-contentproviders/src/grokcore/view/ftests/contentprovider/layer.py	                        (rev 0)
+++ grokcore.view/branches/jw-contentproviders/src/grokcore/view/ftests/contentprovider/layer.py	2011-06-27 08:52:25 UTC (rev 121982)
@@ -0,0 +1,51 @@
+"""
+Content providers can be discriminated based on layer too::
+
+  >>> root = getRootFolder()
+  >>> root['wilma'] = CaveWoman()
+
+Traverse to the view on the model object. We get the content provider
+registered for the default layer::
+
+  >>> from zope.app.wsgi.testlayer import Browser
+  >>> browser = Browser()
+  >>> browser.handleErrors = False
+  >>> browser.open("http://localhost/wilma/@@caveview")
+  >>> print browser.contents
+  Soup pot
+
+Traverse to the view on the model object. We get the content provider
+registered for the "boneskin" layer::
+
+  >>> browser.open("http://localhost/++skin++boneskin/wilma/@@caveview")
+  >>> print browser.contents
+  Layered pot
+
+"""
+
+from zope.interface import Interface
+from zope.publisher.interfaces.browser import IDefaultBrowserLayer
+import grokcore.view as grok
+
+class CaveWoman(grok.Context):
+    pass
+
+class CaveView(grok.View):
+    grok.context(Interface)
+
+class Pot(grok.ContentProvider):
+    grok.context(Interface)
+
+    def render(self):
+        return u"Soup pot"
+
+class IBoneLayer(IDefaultBrowserLayer):
+    grok.skin('boneskin')
+
+class LayeredPot(grok.ContentProvider):
+    grok.name('pot')
+    grok.context(Interface)
+    grok.layer(IBoneLayer)
+
+    def render(self):
+        return u"Layered pot"



More information about the checkins mailing list