def _do_test_traceback(self, utf8, memory, syntax): if memory: if syntax: source = u('## coding: utf-8\n<% print "m’a réveillé. '\ 'Elle disait: « S’il vous plaît… dessine-moi un mouton! » %>') else: source = u('## coding: utf-8\n<% print u"m’a réveillé. '\ 'Elle disait: « S’il vous plaît… dessine-moi un mouton! »" + str(5/0) %>') if utf8: source = source.encode('utf-8') else: source = source templateargs = {'text': source} else: if syntax: filename = 'unicode_syntax_error.html' else: filename = 'unicode_runtime_error.html' source = util.read_file(self._file_path(filename), 'rb') if not utf8: source = source.decode('utf-8') templateargs = {'filename': self._file_path(filename)} try: template = Template(**templateargs) if not syntax: template.render_unicode() assert False except Exception: tback = exceptions.RichTraceback() if utf8: assert tback.source == source.decode('utf-8') else: assert tback.source == source
def render(buf, render_data, template_filename): """Using given template renders data into given buffer.""" root_dir = os.path.dirname(os.path.dirname(__file__)) lookup_dirs = [os.path.join(root_dir, 'templates')] template_lookup = lookup.TemplateLookup(directories=lookup_dirs) try: template = template_lookup.get_template(template_filename) template.render_context(runtime.Context(buf, **render_data._asdict())) except: traceback = exceptions.RichTraceback() for (filename, lineno, function, line) in traceback.traceback: print("File %s, line %s, in %s" % (filename, lineno, function)) print(line, '\n') print('%s: %s' % (str(traceback.error.__class__.__name__), traceback.error))