[Checkins] SVN: five.pt/trunk/src/five/pt/tests/test_persistenttemplate.py Add tests for persistent templates

Leonardo Rochael Almeida leorochael at gmail.com
Tue Feb 22 14:14:47 EST 2011


Log message for revision 120518:
  Add tests for persistent templates

Changed:
  A   five.pt/trunk/src/five/pt/tests/test_persistenttemplate.py

-=-
Added: five.pt/trunk/src/five/pt/tests/test_persistenttemplate.py
===================================================================
--- five.pt/trunk/src/five/pt/tests/test_persistenttemplate.py	                        (rev 0)
+++ five.pt/trunk/src/five/pt/tests/test_persistenttemplate.py	2011-02-22 19:14:47 UTC (rev 120518)
@@ -0,0 +1,60 @@
+from Testing.ZopeTestCase import ZopeTestCase
+from Products.PageTemplates.ZopePageTemplate import manage_addPageTemplate
+
+macro_outer = """
+<metal:defm define-macro="master">
+    <metal:defs define-slot="main_slot">
+      Outer Slot
+    </metal:defs>
+</metal:defm>
+""".strip()
+
+macro_middle = """
+<metal:def define-macro="master">
+  <metal:use use-macro="here/macro_outer/macros/master">
+    <metal:fill fill-slot="main_slot">
+      <metal:defs define-slot="main_slot">
+        Middle Slot
+      </metal:defs>
+    </metal:fill>
+  </metal:use>
+</metal:def>
+""".strip()
+
+macro_inner = """
+<metal:use use-macro="here/macro_middle/macros/master">
+  <metal:fills fill-slot="main_slot">
+    Inner Slot
+  </metal:fills>
+</metal:use>
+""".strip()
+
+class TestPageTemplateFile(ZopeTestCase):
+    def afterSetUp(self):
+        from Products.Five import zcml
+        import Products.Five
+        import z3c.pt
+        import five.pt
+        zcml.load_config("configure.zcml", Products.Five)
+        zcml.load_config("configure.zcml", five.pt)
+        zcml.load_config("configure.zcml", z3c.pt)
+        #import IPython;IPython.Shell.IPShellEmbed(())()
+        self.setRoles(['Manager'])
+
+    def _makeOne(self, template_id, source):
+        return manage_addPageTemplate(self.folder, template_id, text=source)
+
+    def test_simple(self):
+        template = self._makeOne('foo',
+                                 '<tal:block content="string:Hello, World" />')
+        result = template()
+        self.assertEqual(result, u'Hello, World')
+        # check that it's editable
+        template.pt_editForm()
+
+    def test_macro(self):
+        self._makeOne('macro_outer', macro_outer)
+        self._makeOne('macro_middle', macro_middle)
+        inner = self._makeOne('macro_inner', macro_inner)
+        result = inner().strip()
+        self.assertEqual(result, u'Inner Slot')



More information about the checkins mailing list