spec = (1,)
if not isinstance(messages, (list, tuple)):
messages = [messages]
+ if not messages:
+ continue
- msgs = []
# Validate the messages against the keyword's specification
+ msgs = []
invalid = False
+ # last_index is 1 based like the keyword spec
+ last_index = len(messages)
for index in spec:
+ if last_index < index:
+ # Not enough arguments
+ invalid = True
+ break
message = messages[index - 1]
if message is None:
invalid = True
n = ngettext('hello', 'there', n=3)
n = ngettext(n=3, 'hello', 'there')
n = ngettext(n=3, *messages)
+n = ngettext()
+n = ngettext('foo')
""")
messages = list(extract.extract_python(buf, ('_', 'ngettext'), [], {}))
self.assertEqual((u'foo', u'bar'), messages[0][2])
self.assertEqual((u'hello', u'there', None), messages[1][2])
self.assertEqual((None, u'hello', u'there'), messages[2][2])
self.assertEqual((None, None), messages[3][2])
+ self.assertEqual(None, messages[4][2])
+ self.assertEqual(('foo'), messages[5][2])
def test_utf8_message(self):
buf = StringIO("""
n = ngettext('hello', 'there', n=3)
n = ngettext(n=3, 'hello', 'there')
n = ngettext(n=3, *messages)
+n = ngettext()
+n = ngettext('foo')
""")
messages = \
list(extract.extract('python', buf, extract.DEFAULT_KEYWORDS, [],