view examples/basic/kidrun.py @ 743:7fa3af78556f experimental-soc2008

Path.test() function reimplementation and few Changed path.py tests to play well with new understanding of few things In test suite one test fails, don't know why yet
author mkurczych
date Sat, 07 Jun 2008 19:22:31 +0000
parents 5ca4be55ad0b
children
line wrap: on
line source
#!/usr/bin/python
# -*- coding: utf-8 -*-

import os
import sys
import time

import kid

def test():
    base_path = os.path.dirname(os.path.abspath(__file__))
    kid.path = kid.TemplatePath([base_path])

    ctxt = dict(hello='<world>', hey='ZYX', bozz=None,
                items=['Number %d' % num for num in range(1, 15)],
                prefix='#')

    start = time.clock()
    template = kid.Template(file='test.kid', **ctxt)
    print ' --> parse stage: %.4f ms' % ((time.clock() - start) * 1000)

    for output in template.generate():
        sys.stdout.write(output)
    print

    times = []
    for i in range(1000):
        start = time.clock()
        list(template.generate())
        times.append(time.clock() - start)
        sys.stdout.write('.')
        sys.stdout.flush()
    print

    print ' --> render stage: %s ms (average)' % (
          (sum(times) / len(times) * 1000))

if __name__ == '__main__':
    if '-p' in sys.argv:
        import hotshot, hotshot.stats
        prof = hotshot.Profile("template.prof")
        benchtime = prof.runcall(test)
        stats = hotshot.stats.load("template.prof")
        stats.strip_dirs()
        stats.sort_stats('time', 'calls')
        stats.print_stats()
    else:
        test()
Copyright (C) 2012-2017 Edgewall Software