# HG changeset patch # User cmlenz # Date 1179738789 0 # Node ID 56daac6d675fbfb9993bea6d8822512892db5a11 # Parent 6a48853a2e369fa568a557ea26d61975387aa6f5 Ported [587] to 0.4.x. diff --git a/examples/bench/basic.py b/examples/bench/basic.py --- a/examples/bench/basic.py +++ b/examples/bench/basic.py @@ -1,3 +1,8 @@ +# -*- encoding: utf-8 -*- +# Template language benchmarks +# +# Objective: Test general templating features using a small template + from cgi import escape import os from StringIO import StringIO @@ -20,7 +25,11 @@ return render def myghty(dirname, verbose=False): - from myghty import interp + try: + from myghty import interp + except ImportError: + print>>sys.stderr, 'Mighty not installed, skipping' + return lambda: None interpreter = interp.Interpreter(component_root=dirname) def render(): data = dict(title='Just a test', user='joe', @@ -34,7 +43,11 @@ def cheetah(dirname, verbose=False): # FIXME: infinite recursion somewhere... WTF? - from Cheetah.Template import Template + try: + from Cheetah.Template import Template + except ImportError: + print>>sys.stderr, 'Cheetah not installed, skipping' + return lambda: None class MyTemplate(Template): def serverSidePath(self, path): return os.path.join(dirname, path) filename = os.path.join(dirname, 'template.tmpl') @@ -54,7 +67,8 @@ try: import neo_cgi except ImportError: - return lambda:None + print>>sys.stderr, 'ClearSilver not installed, skipping' + return lambda: None neo_cgi.update() import neo_util import neo_cs @@ -74,8 +88,12 @@ return render def django(dirname, verbose=False): - from django.conf import settings - settings.configure(TEMPLATE_DIRS=[os.path.join(dirname, 'templates')]) + try: + from django.conf import settings + settings.configure(TEMPLATE_DIRS=[os.path.join(dirname, 'templates')]) + except ImportError: + print>>sys.stderr, 'Django not installed, skipping' + return lambda: None from django import template, templatetags from django.template import loader templatetags.__path__.append(os.path.join(dirname, 'templatetags')) @@ -91,32 +109,29 @@ return render def kid(dirname, verbose=False): - import kid + try: + import kid + except ImportError: + print>>sys.stderr, "SimpleTAL not installed, skipping" + return lambda: None kid.path = kid.TemplatePath([dirname]) - template = kid.Template(file='template.kid') + template = kid.load_template('template.kid').Template def render(): - template = kid.Template(file='template.kid', - title='Just a test', user='joe', - items=['Number %d' % num for num in range(1, 15)]) - return template.serialize(output='xhtml') - - if verbose: - print render() - return render - -def nevow(dirname, verbose=False): - # FIXME: can't figure out the API - from nevow.loaders import xmlfile - template = xmlfile('template.xml', templateDir=dirname).load() - def render(): - print template + return template( + title='Just a test', user='joe', + items=['Number %d' % num for num in range(1, 15)] + ).serialize(output='xhtml') if verbose: print render() return render def simpletal(dirname, verbose=False): - from simpletal import simpleTAL, simpleTALES + try: + from simpletal import simpleTAL, simpleTALES + except ImportError: + print>>sys.stderr, "SimpleTAL not installed, skipping" + return lambda: None fileobj = open(os.path.join(dirname, 'base.html')) base = simpleTAL.compileHTMLTemplate(fileobj) fileobj.close() diff --git a/examples/bench/bigtable.py b/examples/bench/bigtable.py --- a/examples/bench/bigtable.py +++ b/examples/bench/bigtable.py @@ -134,7 +134,6 @@ kid_tmpl.table = table kid_tmpl.serialize(output='html') - if cet: def test_kid_et(): """Kid template + cElementTree""" @@ -186,9 +185,9 @@ def run(which=None, number=10): - tests = ['test_builder', 'test_genshi', 'test_genshi_builder', 'test_myghty', 'test_kid', - 'test_kid_et', 'test_et', 'test_cet', 'test_clearsilver', - 'test_django'] + tests = ['test_builder', 'test_genshi', 'test_genshi_builder', + 'test_myghty', 'test_kid', 'test_kid_et', 'test_et', 'test_cet', + 'test_clearsilver', 'test_django'] if which: tests = filter(lambda n: n[5:] in which, tests)