]> git.ipfire.org Git - thirdparty/babel.git/commitdiff
More complex test cases for nested gettext
authorHeungsub Lee <sub@subl.ee>
Fri, 31 Mar 2017 11:14:26 +0000 (20:14 +0900)
committerHeungsub Lee <sub@subl.ee>
Fri, 31 Mar 2017 11:14:26 +0000 (20:14 +0900)
tests/messages/test_extract.py

index 0bf074be00b0e798b927b7bec47f3744c33632b7..f3a28278e92046cfe6b3af01539fe3e02702ab07 100644 (file)
@@ -426,14 +426,34 @@ _('Babatschi')""")
 
     def test_nested(self):
         buf = BytesIO(b"""
-# NOTE: A translation comment
-msg = _(u'Hello, {name}!', name=_(u'Foo Bar'))
+# NOTE: First
+_(u'Hello, {name}!', name=_(u'Foo Bar'))
+
+# NOTE: Second
+_(u'Hello, {name1} and {name2}!', name1=_(u'Heungsub'),
+  name2=_(u'Armin'))
+
+# NOTE: Third
+_(u'Hello, {0} and {1}!', _(u'Heungsub'),
+  _(u'Armin'))
 """)
         messages = list(extract.extract_python(buf, ('_',), ['NOTE:'], {}))
-        self.assertEqual(u'Hello, {name}!', messages[0][2])
-        self.assertEqual([u'NOTE: A translation comment'], messages[0][3])
-        self.assertEqual(u'Foo Bar!', messages[1][2])
-        self.assertEqual(None, messages[1][3])
+        self.assertEqual((u'Hello, {name}!', None), messages[0][2])
+        self.assertEqual([u'NOTE: First'], messages[0][3])
+        self.assertEqual(u'Foo Bar', messages[1][2])
+        self.assertEqual([], messages[1][3])
+        self.assertEqual((u'Hello, {name1} and {name2}!', None), messages[2][2])
+        self.assertEqual([u'NOTE: Second'], messages[2][3])
+        self.assertEqual(u'Heungsub', messages[3][2])
+        self.assertEqual([], messages[3][3])
+        self.assertEqual(u'Armin', messages[4][2])
+        self.assertEqual([], messages[4][3])
+        self.assertEqual((u'Hello, {0} and {1}!', None), messages[5][2])
+        self.assertEqual([u'NOTE: Third'], messages[5][3])
+        self.assertEqual(u'Heungsub', messages[6][2])
+        self.assertEqual([], messages[6][3])
+        self.assertEqual(u'Armin', messages[7][2])
+        self.assertEqual([], messages[7][3])
 
 
 class ExtractTestCase(unittest.TestCase):