From 400d5ad343ccf6c179ca1b5abce2b11037e544a7 Mon Sep 17 00:00:00 2001 From: sudheesh001 Date: Thu, 28 Jan 2016 09:26:33 +0530 Subject: [PATCH] Added npgettext to default keywords in extraction --- babel/messages/extract.py | 3 ++- tests/messages/test_extract.py | 20 ++++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/babel/messages/extract.py b/babel/messages/extract.py index 8183d527..cadcb629 100644 --- a/babel/messages/extract.py +++ b/babel/messages/extract.py @@ -38,7 +38,8 @@ DEFAULT_KEYWORDS = { 'dgettext': (2,), 'dngettext': (2, 3), 'N_': None, - 'pgettext': ((1, 'c'), 2) + 'pgettext': ((1, 'c'), 2), + 'npgettext': ((1, 'c', 2, 3)) } DEFAULT_MAPPING = [('**.py', 'python')] diff --git a/tests/messages/test_extract.py b/tests/messages/test_extract.py index fa03207c..a9408f6a 100644 --- a/tests/messages/test_extract.py +++ b/tests/messages/test_extract.py @@ -60,6 +60,15 @@ msg = ngettext('pylon', # TRANSLATORS: shouldn't be ['TRANSLATORS:'], {})) self.assertEqual([(1, 'ngettext', (u'pylon', u'pylons', None), [])], messages) + buf = BytesIO(b"""\ +msg = npgettext('Strings', 'pylon', # TRANSLATORS: shouldn't be + 'pylons', # TRANSLATORS: seeing this + count) +""") + messages = list(extract.extract_python(buf, ('npgettext',), + ['TRANSLATORS:'], {})) + self.assertEqual([(1, 'npgettext', (u'Strings', u'pylon', u'pylons', None), [])], + messages) def test_comments_with_calls_that_spawn_multiple_lines(self): buf = BytesIO(b"""\ @@ -131,6 +140,17 @@ msg2 = ngettext('elvis', self.assertEqual([(1, 'ngettext', (u'pylon', u'pylons', None), []), (3, 'ngettext', (u'elvis', u'elvises', None), [])], messages) + buf = BytesIO(b"""\ +msg1 = npgettext('Strings','pylon', + 'pylons', count) +msg2 = npgettext('Strings','elvis', + 'elvises', + count) +""") + messages = list(extract.extract_python(buf, ('npgettext',), [], {})) + self.assertEqual([(1, 'npgettext', (u'Strings', u'pylon', u'pylons', None), []), + (3, 'npgettext', (u'Strings', u'elvis', u'elvises', None), [])], + messages) def test_triple_quoted_strings(self): buf = BytesIO(b"""\ -- 2.47.2