comparison examples/bench/bigtable.py @ 543:0449396999c5 trunk

Replace Myghty by Mako in bigtable benchmark, apply escaping in Mako templates.
author cmlenz
date Thu, 28 Jun 2007 18:12:15 +0000
parents bd00120ea90a
children 1da8de3e5e51
comparison
equal deleted inserted replaced
542:1912af29ac70 543:0449396999c5
39 from django.template import Template as DjangoTemplate 39 from django.template import Template as DjangoTemplate
40 except ImportError: 40 except ImportError:
41 DjangoContext = DjangoTemplate = None 41 DjangoContext = DjangoTemplate = None
42 42
43 try: 43 try:
44 from myghty.interp import Interpreter as MyghtyInterpreter 44 from mako.template import Template as MakoTemplate
45 except ImportError: 45 except ImportError:
46 MyghtyInterpreter = None 46 MakoTemplate = None
47 47
48 table = [dict(a=1,b=2,c=3,d=4,e=5,f=6,g=7,h=8,i=9,j=10) 48 table = [dict(a=1,b=2,c=3,d=4,e=5,f=6,g=7,h=8,i=9,j=10)
49 for x in range(1000)] 49 for x in range(1000)]
50 50
51 genshi_tmpl = MarkupTemplate(""" 51 genshi_tmpl = MarkupTemplate("""
72 def test_django(): 72 def test_django():
73 """Djange template""" 73 """Djange template"""
74 context = DjangoContext({'table': table}) 74 context = DjangoContext({'table': table})
75 django_tmpl.render(context) 75 django_tmpl.render(context)
76 76
77 if MyghtyInterpreter: 77 if MakoTemplate:
78 interpreter = MyghtyInterpreter() 78 mako_tmpl = MakoTemplate("""
79 component = interpreter.make_component("""
80 <table> 79 <table>
81 % for row in ARGS['table']: 80 % for row in table:
82 <tr> 81 <tr>
83 % for col in row.values(): 82 % for col in row.values():
84 <td><% col %></td> 83 <td>${ col | h }</td>
85 % 84 % endfor
86 % 85 </tr>
87 </tr> 86 % endfor
88 </table> 87 </table>
89 """) 88 """)
90 def test_myghty(): 89 def test_mako():
91 """Myghty Template""" 90 """Mako Template"""
92 buf = StringIO() 91 mako_tmpl.render(table=table)
93 interpreter.execute(component, request_args={'table':table}, out_buffer=buf)
94 92
95 def test_genshi(): 93 def test_genshi():
96 """Genshi template""" 94 """Genshi template"""
97 stream = genshi_tmpl.generate(table=table) 95 stream = genshi_tmpl.generate(table=table)
98 stream.render('html', strip_whitespace=False) 96 stream.render('html', strip_whitespace=False)
184 cs.render() 182 cs.render()
185 183
186 184
187 def run(which=None, number=10): 185 def run(which=None, number=10):
188 tests = ['test_builder', 'test_genshi', 'test_genshi_builder', 186 tests = ['test_builder', 'test_genshi', 'test_genshi_builder',
189 'test_myghty', 'test_kid', 'test_kid_et', 'test_et', 'test_cet', 187 'test_mako', 'test_kid', 'test_kid_et', 'test_et', 'test_cet',
190 'test_clearsilver', 'test_django'] 188 'test_clearsilver', 'test_django']
191 189
192 if which: 190 if which:
193 tests = filter(lambda n: n[5:] in which, tests) 191 tests = filter(lambda n: n[5:] in which, tests)
194 192
Copyright (C) 2012-2017 Edgewall Software