import os import pytest from mako.testing.assertions import eq_ from mako.testing.config import config from mako.testing.exclusions import requires_lingua from mako.testing.fixtures import TemplateTest class MockOptions: keywords = [] domain = None comment_tag = True @requires_lingua class MakoExtractTest(TemplateTest): @pytest.fixture(autouse=True) def register_lingua_extractors(self): from lingua.extractors import register_extractors register_extractors() def test_extract(self): from mako.ext.linguaplugin import LinguaMakoExtractor plugin = LinguaMakoExtractor({"comment-tags": "TRANSLATOR"}) messages = list( plugin( os.path.join(config.template_base, "gettext.mako"), MockOptions(), ) ) msgids = [(m.msgid, m.msgid_plural) for m in messages] eq_( msgids, [ ("Page arg 1", None), ("Page arg 2", None), ("Begin", None), ("Hi there!", None), ("Hello", None), ("Welcome", None), ("Yo", None), ("The", None), ("bunny", "bunnies"), ("Goodbye", None), ("Babel", None), ("hella", "hellas"), ("The", None), ("bunny", "bunnies"), ("Goodbye, really!", None), ("P.S. byebye", None), ("Top", None), ("foo", None), ("hoho", None), ("bar", None), ("Inside a p tag", None), ("Later in a p tag", None), ("No action at a distance.", None), ], )