[Checkins] SVN: grokcore.view/branches/reinout-christian-codeview/src/grokcore/view/ Added a warning for CodeView without render
Christian Klinger
cklinger at novareto.de
Fri Jul 3 07:05:56 EDT 2009
Log message for revision 101431:
Added a warning for CodeView without render
Changed:
U grokcore.view/branches/reinout-christian-codeview/src/grokcore/view/meta/views.py
A grokcore.view/branches/reinout-christian-codeview/src/grokcore/view/tests/view/codeviewnorender.py
-=-
Modified: grokcore.view/branches/reinout-christian-codeview/src/grokcore/view/meta/views.py
===================================================================
--- grokcore.view/branches/reinout-christian-codeview/src/grokcore/view/meta/views.py 2009-07-03 10:37:58 UTC (rev 101430)
+++ grokcore.view/branches/reinout-christian-codeview/src/grokcore/view/meta/views.py 2009-07-03 11:05:56 UTC (rev 101431)
@@ -101,15 +101,12 @@
return super(CodeViewGrokker, self).grok(name, factory, module_info, **kw)
def execute(self, factory, config, context, layer, name, **kw):
- # find templates
- templates = factory.module_info.getAnnotation('grok.templates', None)
- if templates is not None:
- config.action(
- discriminator=None,
- callable=self.checkTemplates,
- args=(templates, factory.module_info, factory)
- )
+ # Make sure that we have a render Method
+ render = getattr(factory, 'render', None)
+ if not render:
+ raise GrokError("CodeView Class '%s' without an render method" % factory, factory)
+
# safety belt: make sure that the programmer didn't use
# @grok.require on any of the view's methods.
methods = util.methods_from_class(factory)
@@ -131,19 +128,7 @@
)
return True
- def checkTemplates(self, templates, module_info, factory):
- def has_render(factory):
- render = getattr(factory, 'render', None)
- base_method = getattr(render, 'base_method', False)
- return render and not base_method
-
- def has_no_render(factory):
- return not getattr(factory, 'render', None)
- templates.checkTemplates(module_info, factory, 'view',
- has_render, has_no_render)
-
-
class ViewSecurityGrokker(martian.ClassGrokker):
martian.component(components.View)
martian.directive(grokcore.security.require, name='permission')
Copied: grokcore.view/branches/reinout-christian-codeview/src/grokcore/view/tests/view/codeviewnorender.py (from rev 101428, grokcore.view/branches/reinout-christian-codeview/src/grokcore/view/tests/view/codeview.py)
===================================================================
--- grokcore.view/branches/reinout-christian-codeview/src/grokcore/view/tests/view/codeviewnorender.py (rev 0)
+++ grokcore.view/branches/reinout-christian-codeview/src/grokcore/view/tests/view/codeviewnorender.py 2009-07-03 11:05:56 UTC (rev 101431)
@@ -0,0 +1,16 @@
+"""
+
+ >>> grok.testing.grok(__name__)
+ Traceback (most recent call last):
+ ...
+ GrokError: CodeView Class '<class 'grokcore.view.tests.view.codeviewnorender.CaveTiger'>' without an render method
+
+"""
+
+import grokcore.view as grok
+
+class Mammoth(grok.Context):
+ pass
+
+class CaveTiger(grok.CodeView):
+ pass
More information about the Checkins
mailing list