| 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), |
| ], |
| ) |