[Checkins] SVN: Sandbox/cklinger/megrok.pagelet/trunk/src/megrok/pagelet/ added validation for the template directive

Christian Klinger cklinger at novareto.de
Thu Mar 19 11:41:10 EDT 2009


Log message for revision 98275:
  added validation for the template directive

Changed:
  U   Sandbox/cklinger/megrok.pagelet/trunk/src/megrok/pagelet/directive.py
  U   Sandbox/cklinger/megrok.pagelet/trunk/src/megrok/pagelet/meta.py
  U   Sandbox/cklinger/megrok.pagelet/trunk/src/megrok/pagelet/tests/test_layout.py

-=-
Modified: Sandbox/cklinger/megrok.pagelet/trunk/src/megrok/pagelet/directive.py
===================================================================
--- Sandbox/cklinger/megrok.pagelet/trunk/src/megrok/pagelet/directive.py	2009-03-19 15:36:43 UTC (rev 98274)
+++ Sandbox/cklinger/megrok.pagelet/trunk/src/megrok/pagelet/directive.py	2009-03-19 15:41:10 UTC (rev 98275)
@@ -1,7 +1,8 @@
 import martian
 
+
 class template(martian.Directive):
     scope = martian.CLASS
     store = martian.ONCE
+    validate = martian.validateText
     default = u'megrok.pagelet.template'
-    

Modified: Sandbox/cklinger/megrok.pagelet/trunk/src/megrok/pagelet/meta.py
===================================================================
--- Sandbox/cklinger/megrok.pagelet/trunk/src/megrok/pagelet/meta.py	2009-03-19 15:36:43 UTC (rev 98274)
+++ Sandbox/cklinger/megrok.pagelet/trunk/src/megrok/pagelet/meta.py	2009-03-19 15:41:10 UTC (rev 98275)
@@ -1,3 +1,4 @@
+import os
 import grok
 import martian
 import zope.component
@@ -48,8 +49,12 @@
 	#from grokcore.component.directive import name
         # Let register it only for the given grok.name
 	name = grokcore.component.directive.name.bind().get(self)
-	path = '/'.join(factory.module_info.path.split('/')[:-1])
-	template = "%s/%s" %(path, template)
+	module_info = factory.module_info
+	path = module_info.getResourcePath('')
+	template = "%s%s" %(path, template)
+	if not os.path.isfile(template):
+	    raise GrokError("The Template %s is not found in module %s.py" 
+	                     %(template, module_info.getModule()), module_info.getModule())
         layoutfactory = TemplateFactory(template, 'text/html')
         config.action(
             discriminator = ('layoutTemplate', context, layer, name),

Modified: Sandbox/cklinger/megrok.pagelet/trunk/src/megrok/pagelet/tests/test_layout.py
===================================================================
--- Sandbox/cklinger/megrok.pagelet/trunk/src/megrok/pagelet/tests/test_layout.py	2009-03-19 15:36:43 UTC (rev 98274)
+++ Sandbox/cklinger/megrok.pagelet/trunk/src/megrok/pagelet/tests/test_layout.py	2009-03-19 15:41:10 UTC (rev 98275)
@@ -66,6 +66,11 @@
     grok.context(Mammoth)
     megrok.pagelet.template('templates/context_layout.pt')
 
+#class NoTemplateLayout(megrok.pagelet.Layout):
+#    grok.context(Mammoth)
+#    megrok.pagelet.template('template/no_template.pt')
+
+
 def test_suite():
     from zope.testing import doctest
     from megrok.pagelet.tests import FunctionalLayer



More information about the Checkins mailing list