[Checkins] SVN: grokcore.view/branches/reinout-christian-codeview/ Working progress...

Christian Klinger cklinger at novareto.de
Fri Jul 3 07:28:46 EDT 2009


Log message for revision 101432:
  Working progress...

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/viewwithrender.py
  U   grokcore.view/branches/reinout-christian-codeview/versions.cfg

-=-
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 11:05:56 UTC (rev 101431)
+++ grokcore.view/branches/reinout-christian-codeview/src/grokcore/view/meta/views.py	2009-07-03 11:28:46 UTC (rev 101432)
@@ -46,12 +46,18 @@
         return super(ViewGrokker, self).grok(name, factory, module_info, **kw)
 
     def execute(self, factory, config, context, layer, name, **kw):
+        # Make sure that we have a render Method
+        render = getattr(factory, 'render', None)
+        if render:
+            raise GrokError("View Class '%s' has a render method" % factory, factory)
+
         # find templates
         templates = factory.module_info.getAnnotation('grok.templates', None)
         if templates is not None:
             config.action(
                 discriminator=None,
                 callable=self.checkTemplates,
+                #callable=templates.checkTemplates(factory.module_info, factory, 'view', False, True),
                 args=(templates, factory.module_info, factory)
                 )
 
@@ -79,15 +85,14 @@
     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
+	    return False
 
         def has_no_render(factory):
-            return not getattr(factory, 'render', None)
+	    return True
         templates.checkTemplates(module_info, factory, 'view',
                                  has_render, has_no_render)
 
+
 class CodeViewGrokker(martian.ClassGrokker):
     martian.component(components.CodeView)
     martian.directive(grokcore.component.context)

Copied: grokcore.view/branches/reinout-christian-codeview/src/grokcore/view/tests/view/viewwithrender.py (from rev 101414, grokcore.view/branches/reinout-christian-codeview/src/grokcore/view/tests/view/view.py)
===================================================================
--- grokcore.view/branches/reinout-christian-codeview/src/grokcore/view/tests/view/viewwithrender.py	                        (rev 0)
+++ grokcore.view/branches/reinout-christian-codeview/src/grokcore/view/tests/view/viewwithrender.py	2009-07-03 11:28:46 UTC (rev 101432)
@@ -0,0 +1,18 @@
+"""
+
+  >>> grok.testing.grok(__name__)
+  Traceback (most recent call last):
+  ... 
+  GrokError: View Class '<class 'grokcore.view.tests.view.viewwithrender.CavePainting'>' has a render method
+
+"""
+
+import grokcore.view as grok
+
+class Mammoth(grok.Context):
+    pass
+
+class CavePainting(grok.View):
+
+    def render(self):
+        return 'A cave painting of a mammoth'

Modified: grokcore.view/branches/reinout-christian-codeview/versions.cfg
===================================================================
--- grokcore.view/branches/reinout-christian-codeview/versions.cfg	2009-07-03 11:05:56 UTC (rev 101431)
+++ grokcore.view/branches/reinout-christian-codeview/versions.cfg	2009-07-03 11:28:46 UTC (rev 101432)
@@ -102,7 +102,7 @@
 zope.tal = 3.4.1
 zope.tales = 3.4.0
 zope.testbrowser = 3.4.2
-zope.testing = 3.5.6
+zope.testing = 3.7.5
 zope.thread = 3.4
 zope.traversing = 3.4.1
 zope.viewlet = 3.4.2



More information about the Checkins mailing list