diff options
Diffstat (limited to 'tests/test_talgettext.py')
-rw-r--r-- | tests/test_talgettext.py | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/tests/test_talgettext.py b/tests/test_talgettext.py index 56d6858..1d31435 100644 --- a/tests/test_talgettext.py +++ b/tests/test_talgettext.py @@ -18,7 +18,11 @@ $Id$ """ import sys import unittest +import operator +from StringIO import StringIO +from zope.tal.htmltalparser import HTMLTALParser +from zope.tal.talgettext import POTALInterpreter from zope.tal.talgettext import POEngine from zope.tal.tests import utils @@ -40,6 +44,32 @@ class test_POEngine(unittest.TestCase): "POEngine catalog does not properly store message ids" ) + def test_dynamic_msgids(self): + sample_source = """ + <p i18n:translate=""> + Some + <span tal:replace="string:strange">dynamic</span> + text. + </p> + <p i18n:translate=""> + A <a tal:attributes="href path:dynamic">link</a>. + </p> + """ + p = HTMLTALParser() + p.parseString(sample_source) + program, macros = p.getCode() + engine = POEngine() + engine.file = 'sample_source' + POTALInterpreter(program, macros, engine, stream=StringIO(), + metal=False)() + msgids = [] + for domain in engine.catalog.values(): + msgids += domain.keys() + msgids.sort() + self.assertEquals(msgids, + ['A <a href="XXX">link</a>.', 'Some XXX text.']) + + def test_suite(): suite = unittest.makeSuite(test_POEngine) return suite |