def test_extract(self): from jinja2.ext import babel_extract source = BytesIO(''' {{ gettext('Hello World') }} {% trans %}Hello World{% endtrans %} {% trans %}{{ users }} user{% pluralize %}{{ users }} users{% endtrans %} '''.encode('ascii')) # make python 3 happy assert list(babel_extract(source, ('gettext', 'ngettext', '_'), [], {})) == [ (2, 'gettext', u'Hello World', []), (3, 'gettext', u'Hello World', []), (4, 'ngettext', (u'%(users)s user', u'%(users)s users', None), []) ]
def test_comment_extract(self): from jinja2.ext import babel_extract source = BytesIO(''' {# trans first #} {{ gettext('Hello World') }} {% trans %}Hello World{% endtrans %}{# trans second #} {#: third #} {% trans %}{{ users }} user{% pluralize %}{{ users }} users{% endtrans %} '''.encode('utf-8')) # make python 3 happy assert list(babel_extract(source, ('gettext', 'ngettext', '_'), ['trans', ':'], {})) == [ (3, 'gettext', u'Hello World', ['first']), (4, 'gettext', u'Hello World', ['second']), (6, 'ngettext', (u'%(users)s user', u'%(users)s users', None), ['third']) ]
def test_extract_trimmed_option(self): from jinja2.ext import babel_extract source = BytesIO(''' {{ gettext(' Hello \n World') }} {% trans %} Hello \n World{% endtrans %} {% trans %}{{ users }} \n user {%- pluralize %}{{ users }} \n users{% endtrans %} '''.encode('ascii')) # make python 3 happy opts = {'trimmed': 'true'} assert list(babel_extract(source, ('gettext', 'ngettext', '_'), [], opts)) == [ (2, 'gettext', u' Hello \n World', []), (4, 'gettext', u'Hello World', []), (6, 'ngettext', (u'%(users)s user', u'%(users)s users', None), []) ]
def test_extract(self): from jinja2.ext import babel_extract source = BytesIO(""" {{ gettext('Hello World') }} {% trans %}Hello World{% endtrans %} {% trans %}{{ users }} user{% pluralize %}{{ users }} users{% endtrans %} """.encode("ascii")) # make python 3 happy assert list(babel_extract(source, ("gettext", "ngettext", "_"), [], {})) == [ (2, "gettext", u"Hello World", []), (3, "gettext", u"Hello World", []), (4, "ngettext", (u"%(users)s user", u"%(users)s users", None), []), ]
def test_extract_trimmed_option(self): from jinja2.ext import babel_extract source = BytesIO(""" {{ gettext(' Hello \n World') }} {% trans %} Hello \n World{% endtrans %} {% trans %}{{ users }} \n user {%- pluralize %}{{ users }} \n users{% endtrans %} """.encode("ascii")) # make python 3 happy opts = {"trimmed": "true"} assert list( babel_extract(source, ("gettext", "ngettext", "_"), [], opts)) == [ (2, "gettext", u" Hello \n World", []), (4, "gettext", u"Hello World", []), (6, "ngettext", (u"%(users)s user", u"%(users)s users", None), []), ]
def test_comment_extract(self): from jinja2.ext import babel_extract source = BytesIO(""" {# trans first #} {{ gettext('Hello World') }} {% trans %}Hello World{% endtrans %}{# trans second #} {#: third #} {% trans %}{{ users }} user{% pluralize %}{{ users }} users{% endtrans %} """.encode("utf-8")) # make python 3 happy assert list( babel_extract(source, ("gettext", "ngettext", "_"), ["trans", ":"], {})) == [ (3, "gettext", u"Hello World", ["first"]), (4, "gettext", u"Hello World", ["second"]), (6, "ngettext", (u"%(users)s user", u"%(users)s users", None), ["third"]), ]
def bytecode_to_string(self): """Return the bytecode as string.""" out = BytesIO() self.write_bytecode(out) return out.getvalue()
def bytecode_from_string(self, string): """Load bytecode from a string.""" self.load_bytecode(BytesIO(string))