def test_1(self): """DTML test 1: if, in, and var: %(comment)[ blah %(comment)] <html><head><title>Test of documentation templates</title></head> <body> %(if args)[ <dl><dt>The arguments to this test program were:<p> <dd> <ul> %(in args)[ <li>Argument number %(num)d was %(arg)s %(in args)] </ul></dl><p> %(if args)] %(else args)[ No arguments were given.<p> %(else args)] And thats da trooth. </body></html> """ tal = util.read_input('DTML1.html') self.t.write(tal) aa = util.argv(('one', 'two', 'three', 'cha', 'cha', 'cha')) o = self.t.__of__(aa)() expect = util.read_output('DTML1a.html') util.check_xml(expect, o) aa = util.argv(()) o = self.t.__of__(aa)() expect = util.read_output('DTML1b.html') util.check_xml(expect, o)
def test_3(self): """DTML test 3: batches and formatting: <html><head><title>Test of documentation templates</title></head> <body> <!--#if args--> The arguments were: <!--#in args size=size end=end--> <!--#if previous-sequence--> (<!--#var previous-sequence-start-arg-->- <!--#var previous-sequence-end-arg-->) <!--#/if previous-sequence--> <!--#if sequence-start--> <dl> <!--#/if sequence-start--> <dt><!--#var sequence-arg-->.</dt> <dd>Argument <!--#var num fmt=d--> was <!--#var arg--></dd> <!--#if next-sequence--> (<!--#var next-sequence-start-arg-->- <!--#var next-sequence-end-arg-->) <!--#/if next-sequence--> <!--#/in args--> </dl> <!--#else args--> No arguments were given.<p> <!--#/if args--> And I\'m 100% sure! </body></html> """ tal = util.read_input('DTML3.html') self.t.write(tal) aa = util.argv(( 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten', 'eleven', 'twelve', 'thirteen', 'fourteen', 'fifteen', 'sixteen', 'seventeen', 'eighteen', 'nineteen', 'twenty', )) from Products.PageTemplates.tests import batch o = self.t.__of__(aa)(batch=batch.batch(aa.args, 5)) expect = util.read_output('DTML3.html') util.check_xml(expect, o)
def test_on_error_in_slot_default(self): # The `here` isn't defined, so the macro definition is # expected to catch the error that gets raised. text = '''\ <div metal:define-macro="foo"> <div tal:on-error="string:eek"> <div metal:define-slot="slot"> <div tal:content="here/xxx" /> </div> </div> </div> <div metal:use-macro="template/macros/foo"> </div> ''' self.t.write(text) aa = util.argv(('one', 'two', 'three', 'four', 'five')) self.t.__of__(aa)()
def check_on_error_in_slot_default(self): # The `here` isn't defined, so the macro definition is # expected to catch the error that gets raised. text = """\ <div metal:define-macro="foo"> <div tal:on-error="string:eek"> <div metal:define-slot="slot"> <div tal:content="here/xxx" /> </div> </div> </div> <div metal:use-macro="template/macros/foo"> </div> """ self.t.write(text) aa = util.argv(("one", "two", "three", "four", "five")) self.t.__of__(aa)()
def test_3(self): """DTML test 3: batches and formatting: <html><head><title>Test of documentation templates</title></head> <body> <!--#if args--> The arguments were: <!--#in args size=size end=end--> <!--#if previous-sequence--> (<!--#var previous-sequence-start-arg-->- <!--#var previous-sequence-end-arg-->) <!--#/if previous-sequence--> <!--#if sequence-start--> <dl> <!--#/if sequence-start--> <dt><!--#var sequence-arg-->.</dt> <dd>Argument <!--#var num fmt=d--> was <!--#var arg--></dd> <!--#if next-sequence--> (<!--#var next-sequence-start-arg-->- <!--#var next-sequence-end-arg-->) <!--#/if next-sequence--> <!--#/in args--> </dl> <!--#else args--> No arguments were given.<p> <!--#/if args--> And I\'m 100% sure! </body></html> """ tal = util.read_input('DTML3.html') self.t.write(tal) aa = util.argv(('one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten', 'eleven', 'twelve', 'thirteen', 'fourteen', 'fifteen', 'sixteen', 'seventeen', 'eighteen', 'nineteen', 'twenty', )) from Products.PageTemplates.tests import batch o = self.t.__of__(aa)(batch=batch.batch(aa.args, 5)) expect = util.read_output('DTML3.html') util.check_xml(expect, o)
def test_on_error_in_slot_filler(self): # The `here` isn't defined, so the macro definition is # expected to catch the error that gets raised. # BBB This only works with the old Zope page template engine useOldZopeEngine() text = '''\ <div metal:define-macro="foo"> <div tal:on-error="string:eek"> <div metal:define-slot="slot" /> cool </div> </div> <div metal:use-macro="template/macros/foo"> <div metal:fill-slot="slot"> <p tal:content="here/xxx" /> </div> </div> ''' self.t.write(text) aa = util.argv(('one', 'two', 'three', 'four', 'five')) self.t.__of__(aa)()