From d200718f045beba8180af84f56b9d85ec3d3db5c Mon Sep 17 00:00:00 2001 From: Marius Gedminas Date: Thu, 21 Oct 2004 11:45:01 +0000 Subject: Indicate dynamic message IDs by replacing dynamic parts with XXX instead of removing them. See the newly-added unit test for examples. See also . --- talgettext.py | 7 +++++-- tests/test_talgettext.py | 30 ++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 2 deletions(-) diff --git a/talgettext.py b/talgettext.py index 036bc19..3e6d2b6 100644 --- a/talgettext.py +++ b/talgettext.py @@ -94,10 +94,13 @@ class POEngine(DummyEngine): DummyEngine.__init__(self, macros) def evaluate(*args): - return '' # who cares + # If the result of evaluate ever gets into a message ID, we want + # to notice the fact in the .pot file. + return 'XXX' def evaluatePathOrVar(*args): - return '' # who cares + # Actually this method is never called. + return 'XXX' def evaluateSequence(self, expr): return (0,) # dummy 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 = """ +

+ Some + dynamic + text. +

+

+ A link. +

+ """ + 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 link.', 'Some XXX text.']) + + def test_suite(): suite = unittest.makeSuite(test_POEngine) return suite -- cgit v1.2.1