def test_text_template_line_statement_prefix_none(self): with self.assertRaises(jinja2.TemplateSyntaxError): self.assertEqual( "", jinja2template("#${id}", text=True).render({'id': 10})) self.assertEqual( "#10", jinja2template("#${id}", text=True, line_statement_prefix=None).render({'id': 10}))
def test_text_template_line_comment_prefix_none(self): self.assertEqual( "", jinja2template("##${id}", text=True, line_statement_prefix=None).render({'id': 10})) self.assertEqual( "##10", jinja2template("##${id}", text=True, line_statement_prefix=None, line_comment_prefix=None).render({'id': 10}))
def _format_subj(self, event): is_newticket = event.category == 'created' ticket = event.target summary = ticket['summary'] if event.changes and 'summary' in event.changes['fields']: change = event.changes['fields']['summary'] summary = "%s (was: %s)" % (change['new'], change['old']) prefix = self.config.get('notification', 'smtp_subject_prefix') if prefix == '__default__': prefix = '[%s]' % self.env.project_name data = { 'prefix': prefix, 'summary': summary, 'ticket': ticket, 'changes': event.changes, 'env': self.env, } template = jinja2template(self.ticket_subject_template, text=True) subj = template.render(**data).strip() if not is_newticket: subj = "Re: " + subj return subj
def expand_macro(self, formatter, name, content): template = """ <div>Hello World, args = ${args}</div> """ from trac.util.text import jinja2template tmpl = jinja2template(template.strip()) return tmpl.render(args=content)
def expand_macro(self, formatter, name, content): template = """ <div>Hello World, args = ${args}</div> """ if genshi: from genshi.template import MarkupTemplate tmpl = MarkupTemplate(template) return tmpl.generate(args=content) else: from trac.util.text import jinja2template tmpl = jinja2template(template.strip()) return tmpl.render(args=content)
def _expand_docs(self, docs, ctx): try: tmpl = jinja2template(docs) return tmpl.render(ctx) except TemplateError as exc: self.log.exception("Syntax error rendering protocol documentation") return "'''Syntax error:''' [[BR]] %s" % (str(exc), ) except Exception: self.log.exception( "Runtime error rendering protocol documentation") return "Error rendering protocol documentation. " \ "Contact your '''Trac''' administrator for details"
def _format_subj_batchmodify(self, tickets): tickets_descr = ', '.join('#%s' % t for t in tickets) template = jinja2template(self.batch_subject_template, text=True) prefix = self.config.get('notification', 'smtp_subject_prefix') if prefix == '__default__': prefix = '[%s]' % self.env.project_name data = { 'prefix': prefix, 'tickets_descr': tickets_descr, 'env': self.env, } subj = template.render(**data).strip() return shorten_line(subj)
def test_text_template(self): self.assertEqual( "<h1>Hell&O</h1>", jinja2template("<h1>${hell}O</h1>", text=True).render({'hell': 'Hell&'}))
def test_html_template(self): self.assertEqual( "<h1>Hell&O</h1>", jinja2template("<h1>${hell}O</h1>").render({'hell': 'Hell&'}))
def _render_template(self, template, data, text=False): t = jinja2template(template, text=text) return t.render(**data)
def _template_from_string(string): return jinja2template(string, text=True, line_statement_prefix=None, line_comment_prefix=None)