예제 #1
0
 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}))
예제 #2
0
 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}))
예제 #3
0
    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
예제 #4
0
파일: formatter.py 프로젝트: wataash/trac
 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)
예제 #5
0
 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)
예제 #6
0
 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"
예제 #7
0
    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)
예제 #8
0
 def test_text_template(self):
     self.assertEqual(
         "<h1>Hell&O</h1>",
         jinja2template("<h1>${hell}O</h1>",
                        text=True).render({'hell': 'Hell&'}))
예제 #9
0
 def test_html_template(self):
     self.assertEqual(
         "<h1>Hell&amp;O</h1>",
         jinja2template("<h1>${hell}O</h1>").render({'hell': 'Hell&'}))
예제 #10
0
 def _render_template(self, template, data, text=False):
     t = jinja2template(template, text=text)
     return t.render(**data)
예제 #11
0
def _template_from_string(string):
    return jinja2template(string,
                          text=True,
                          line_statement_prefix=None,
                          line_comment_prefix=None)