Mercurial > genshi > mirror
diff genshi/filters/tests/i18n.py @ 787:d7366797440f trunk
Add support for supplying comments on localizable messages in the i18n filter. Based on patch by Pedro Algarvio on #129.
author | cmlenz |
---|---|
date | Thu, 07 Aug 2008 23:15:11 +0000 |
parents | 36fb0a57fe74 |
children | 31432f30a6fb |
line wrap: on
line diff
--- a/genshi/filters/tests/i18n.py +++ b/genshi/filters/tests/i18n.py @@ -44,7 +44,7 @@ translator = Translator(extract_text=False) messages = list(translator.extract(tmpl.stream)) self.assertEqual(1, len(messages)) - self.assertEqual((3, 'ngettext', (u'Singular', u'Plural', None)), + self.assertEqual((3, 'ngettext', (u'Singular', u'Plural', None), []), messages[0]) def test_extract_plural_form(self): @@ -54,7 +54,7 @@ translator = Translator() messages = list(translator.extract(tmpl.stream)) self.assertEqual(1, len(messages)) - self.assertEqual((2, 'ngettext', (u'Singular', u'Plural', None)), + self.assertEqual((2, 'ngettext', (u'Singular', u'Plural', None), []), messages[0]) def test_extract_funky_plural_form(self): @@ -64,7 +64,7 @@ translator = Translator() messages = list(translator.extract(tmpl.stream)) self.assertEqual(1, len(messages)) - self.assertEqual((2, 'ngettext', (None, None)), messages[0]) + self.assertEqual((2, 'ngettext', (None, None), []), messages[0]) def test_extract_gettext_with_unicode_string(self): tmpl = MarkupTemplate("""<html xmlns:py="http://genshi.edgewall.org/"> @@ -73,7 +73,7 @@ translator = Translator() messages = list(translator.extract(tmpl.stream)) self.assertEqual(1, len(messages)) - self.assertEqual((2, 'gettext', u'Gr\xfc\xdfe'), messages[0]) + self.assertEqual((2, 'gettext', u'Gr\xfc\xdfe', []), messages[0]) def test_extract_included_attribute_text(self): tmpl = MarkupTemplate("""<html xmlns:py="http://genshi.edgewall.org/"> @@ -82,7 +82,7 @@ translator = Translator() messages = list(translator.extract(tmpl.stream)) self.assertEqual(1, len(messages)) - self.assertEqual((2, None, u'Foo'), messages[0]) + self.assertEqual((2, None, u'Foo', []), messages[0]) def test_extract_attribute_expr(self): tmpl = MarkupTemplate("""<html xmlns:py="http://genshi.edgewall.org/"> @@ -91,7 +91,7 @@ translator = Translator() messages = list(translator.extract(tmpl.stream)) self.assertEqual(1, len(messages)) - self.assertEqual((2, '_', u'Save'), messages[0]) + self.assertEqual((2, '_', u'Save', []), messages[0]) def test_extract_non_included_attribute_interpolated(self): tmpl = MarkupTemplate("""<html xmlns:py="http://genshi.edgewall.org/"> @@ -100,7 +100,7 @@ translator = Translator() messages = list(translator.extract(tmpl.stream)) self.assertEqual(1, len(messages)) - self.assertEqual((2, None, u'Foo'), messages[0]) + self.assertEqual((2, None, u'Foo', []), messages[0]) def test_extract_text_from_sub(self): tmpl = MarkupTemplate("""<html xmlns:py="http://genshi.edgewall.org/"> @@ -109,7 +109,7 @@ translator = Translator() messages = list(translator.extract(tmpl.stream)) self.assertEqual(1, len(messages)) - self.assertEqual((2, None, u'Foo'), messages[0]) + self.assertEqual((2, None, u'Foo', []), messages[0]) def test_ignore_tag_with_fixed_xml_lang(self): tmpl = MarkupTemplate("""<html xmlns:py="http://genshi.edgewall.org/"> @@ -126,7 +126,8 @@ translator = Translator() messages = list(translator.extract(tmpl.stream)) self.assertEqual(1, len(messages)) - self.assertEqual((2, None, u'(c) 2007 Edgewall Software'), messages[0]) + self.assertEqual((2, None, u'(c) 2007 Edgewall Software', []), + messages[0]) def test_ignore_attribute_with_expression(self): tmpl = MarkupTemplate("""<html xmlns:py="http://genshi.edgewall.org/"> @@ -369,6 +370,27 @@ # <p><input type="text" name="num" value="x"/> Einträge pro Seite anzeigen.</p> # </html>""", tmpl.generate().render()) + def test_extract_i18n_msg_with_comment(self): + tmpl = MarkupTemplate("""<html xmlns:py="http://genshi.edgewall.org/" + xmlns:i18n="http://genshi.edgewall.org/i18n"> + <p i18n:msg="" i18n:comment="As in foo bar">Foo</p> + </html>""") + translator = Translator() + messages = list(translator.extract(tmpl.stream)) + self.assertEqual(1, len(messages)) + self.assertEqual((3, None, u'Foo', ['As in foo bar']), messages[0]) + + def test_translate_i18n_msg_with_comment(self): + tmpl = MarkupTemplate("""<html xmlns:py="http://genshi.edgewall.org/" + xmlns:i18n="http://genshi.edgewall.org/i18n"> + <p i18n:msg="" i18n:comment="As in foo bar">Foo</p> + </html>""") + gettext = lambda s: u"Voh" + tmpl.filters.insert(0, Translator(gettext)) + self.assertEqual("""<html> + <p>Voh</p> + </html>""", tmpl.generate().render()) + class ExtractTestCase(unittest.TestCase):