[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