| import os |
| |
| from .. import skip_if |
| from .. import template_base |
| from .. import TemplateTest |
| |
| try: |
| import lingua |
| except: |
| lingua = None |
| |
| if lingua is not None: |
| from mako.ext.linguaplugin import LinguaMakoExtractor |
| from lingua.extractors import register_extractors |
| |
| |
| class MockOptions: |
| keywords = [] |
| domain = None |
| |
| |
| def skip(): |
| return skip_if( |
| lambda: not lingua, "lingua not installed: skipping linguaplugin test" |
| ) |
| |
| |
| class ExtractMakoTestCase(TemplateTest): |
| @skip() |
| def test_extract(self): |
| register_extractors() |
| plugin = LinguaMakoExtractor({"comment-tags": "TRANSLATOR"}) |
| messages = list( |
| plugin(os.path.join(template_base, "gettext.mako"), MockOptions()) |
| ) |
| msgids = [(m.msgid, m.msgid_plural) for m in messages] |
| self.assertEqual( |
| 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), |
| (u"foo", None), |
| ("hoho", None), |
| (u"bar", None), |
| ("Inside a p tag", None), |
| ("Later in a p tag", None), |
| ("No action at a distance.", None), |
| ], |
| ) |