[Checkins] SVN: grokcore.view/branches/jw-contentproviders/src/grokcore/view/ add tests similar to those on grokcore.viewlet
Jan-Wijbrand Kolman
janwijbrand at gmail.com
Thu Jun 23 05:30:03 EDT 2011
Log message for revision 121967:
add tests similar to those on grokcore.viewlet
Changed:
U grokcore.view/branches/jw-contentproviders/src/grokcore/view/__init__.py
U grokcore.view/branches/jw-contentproviders/src/grokcore/view/configure.zcml
A grokcore.view/branches/jw-contentproviders/src/grokcore/view/meta/contentproviders.py
U grokcore.view/branches/jw-contentproviders/src/grokcore/view/meta/views.py
-=-
Modified: grokcore.view/branches/jw-contentproviders/src/grokcore/view/__init__.py
===================================================================
--- grokcore.view/branches/jw-contentproviders/src/grokcore/view/__init__.py 2011-06-23 09:29:43 UTC (rev 121966)
+++ grokcore.view/branches/jw-contentproviders/src/grokcore/view/__init__.py 2011-06-23 09:30:03 UTC (rev 121967)
@@ -19,7 +19,7 @@
from zope.publisher.interfaces.browser import IBrowserRequest
from zope.publisher.interfaces.browser import IDefaultBrowserLayer
-from grokcore.view.components import View, ViewSupport
+from grokcore.view.components import View, ViewSupport, ContentProvider
from grokcore.view.components import PageTemplate, PageTemplateFile
from grokcore.view.interfaces import IGrokSecurityView
from grokcore.view.components import DirectoryResource
Modified: grokcore.view/branches/jw-contentproviders/src/grokcore/view/configure.zcml
===================================================================
--- grokcore.view/branches/jw-contentproviders/src/grokcore/view/configure.zcml 2011-06-23 09:29:43 UTC (rev 121966)
+++ grokcore.view/branches/jw-contentproviders/src/grokcore/view/configure.zcml 2011-06-23 09:30:03 UTC (rev 121967)
@@ -2,6 +2,7 @@
xmlns="http://namespaces.zope.org/zope"
xmlns:grok="http://namespaces.zope.org/grok">
+ <include package="zope.contentprovider" />
<include package="zope.browserresource" />
<!-- ZPT support -->
Added: grokcore.view/branches/jw-contentproviders/src/grokcore/view/meta/contentproviders.py
===================================================================
--- grokcore.view/branches/jw-contentproviders/src/grokcore/view/meta/contentproviders.py (rev 0)
+++ grokcore.view/branches/jw-contentproviders/src/grokcore/view/meta/contentproviders.py 2011-06-23 09:30:03 UTC (rev 121967)
@@ -0,0 +1,52 @@
+#############################################################################
+#
+# Copyright (c) 2006-2007 Zope Foundation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+"""Grokkers for the views code."""
+from zope import component
+from zope.publisher.interfaces.browser import IDefaultBrowserLayer
+
+import martian
+
+import grokcore.security
+import grokcore.view
+from grokcore.view.interfaces import IContentProvider
+from grokcore.view.meta.views import default_view_name, TemplateGrokker
+
+
+class ContentProviderTemplateGrokker(TemplateGrokker):
+ martian.component(grokcore.view.ContentProvider)
+
+
+class ContentProviderGrokker(martian.ClassGrokker):
+ martian.component(grokcore.view.ContentProvider)
+ martian.directive(grokcore.component.context)
+ martian.directive(grokcore.view.layer, default=IDefaultBrowserLayer)
+ martian.directive(grokcore.view.view)
+ martian.directive(grokcore.component.name, get_default=default_view_name)
+
+ def grok(self, name, factory, module_info, **kw):
+ # Need to store the module info object on the view class so that it
+ # can look up the 'static' resource directory.
+ factory.module_info = module_info
+ return super(ContentProviderGrokker, self).grok(
+ name, factory, module_info, **kw)
+
+ def execute(self, factory, config, context, layer, view, name, **kw):
+ # This will be used to support __name__ on the viewlet manager
+ factory.__view_name__ = name
+
+ config.action(
+ discriminator=('contentprovider', context, layer, view, name),
+ callable=component.provideAdapter,
+ args=(factory, (context, layer, view), IContentProvider, name))
+ return True
Modified: grokcore.view/branches/jw-contentproviders/src/grokcore/view/meta/views.py
===================================================================
--- grokcore.view/branches/jw-contentproviders/src/grokcore/view/meta/views.py 2011-06-23 09:29:43 UTC (rev 121966)
+++ grokcore.view/branches/jw-contentproviders/src/grokcore/view/meta/views.py 2011-06-23 09:30:03 UTC (rev 121967)
@@ -40,7 +40,8 @@
def grok(self, name, factory, module_info, **kw):
# Need to store the module info to look for a template
factory.module_info = module_info
- return super(TemplateGrokker, self).grok(name, factory, module_info, **kw)
+ return super(TemplateGrokker, self).grok(
+ name, factory, module_info, **kw)
def execute(self, factory, config, **kw):
# Associate templates to a view or a component. We set the
@@ -63,7 +64,8 @@
def associate_template(self, module_info, factory):
component_name = martian.component.bind().get(self).__name__.lower()
templatereg.associate_template(
- module_info, factory, component_name, self.has_render, self.has_no_render)
+ module_info, factory, component_name,
+ self.has_render, self.has_no_render)
def has_render(self, factory):
render = getattr(factory, 'render', None)
More information about the checkins
mailing list