def _expand_docs(self, docs, ctx): try: tmpl = TextTemplate(docs) return tmpl.generate(**dict(ctx.items())).render() except (TemplateSyntaxError, BadDirectiveError), exc: self.log.exception("Syntax error rendering protocol documentation") return "'''Syntax error:''' [[BR]] %s" % (str(exc), )
def report_name(records, reserved_length=0): names = [] name_length = 0 record_count = len(records) max_length = (REPORT_NAME_MAX_LENGTH - reserved_length - len(str(record_count)) - 2) if action_report.record_name: template = TextTemplate(action_report.record_name) else: template = None for record in records[:5]: if template: record_name = template.generate(record=record).render() else: record_name = record.rec_name name_length += len(unicodedata.normalize('NFKD', record_name)) + 1 if name_length > max_length: break names.append(record_name) name = '-'.join(names) if len(records) > len(names): name += '__' + str(record_count - len(names)) return name
def _expand_docs(self, docs, ctx): try : tmpl = TextTemplate(docs) return tmpl.generate(**dict(ctx.items())).render() except (TemplateSyntaxError, BadDirectiveError), exc: self.log.exception("Syntax error rendering protocol documentation") return "'''Syntax error:''' [[BR]] %s" % (str(exc),)
def test_empty_lines1(self): tmpl = TextTemplate("""Your items: #for item in items * ${item} #end""") self.assertEqual( """Your items: * 0 * 1 * 2 """, tmpl.generate(items=range(3)).render('text'))
def format_subject(self): template = self.config.get('fullblog-notification', 'subject_template') template = TextTemplate(template.encode('utf8')) prefix = self.config.get('notification', 'smtp_subject_prefix') if prefix == '__default__': prefix = '[%s]' % self.config.get('project', 'name') action = self.action.strip('post_').replace('_', ' ') data = { 'blog': self.blog, 'prefix': prefix, 'action': action } return template.generate(**data).render('text', encoding=None).strip()
def format_subj(self, summary): template = self.config.get('notification','ticket_subject_template') template = TextTemplate(template.encode('utf8')) prefix = self.config.get('notification', 'smtp_subject_prefix') if prefix == '__default__': prefix = '[%s]' % self.config.get('project', 'name') data = { 'prefix': prefix, 'summary': summary, 'ticket': self.ticket, 'env': self.env, } return template.generate(**data).render('text', encoding=None).strip()
def test_unicode_input(self): text = u'$foo\xf6$bar' tmpl = TextTemplate(text) self.assertEqual(u'x\xf6y', unicode(tmpl.generate(foo='x', bar='y')))
def test_latin1_encoded(self): text = u'$foo\xf6$bar'.encode('iso-8859-1') tmpl = TextTemplate(text, encoding='iso-8859-1') self.assertEqual(u'x\xf6y', unicode(tmpl.generate(foo='x', bar='y')))
def test_end_with_args(self): tmpl = TextTemplate(""" #if foo bar #end 'if foo'""") self.assertEqual('\n', str(tmpl.generate(foo=False)))
def test_comment_escaping(self): tmpl = TextTemplate('\\## escaped comment') self.assertEqual('## escaped comment', str(tmpl.generate()))
def test_comment(self): tmpl = TextTemplate('## a comment') self.assertEqual('', str(tmpl.generate()))
def test_escaping(self): tmpl = TextTemplate('\\#escaped') self.assertEqual('#escaped', str(tmpl.generate()))