Mercurial > babel > mirror
comparison babel/messages/tests/extract.py @ 569:1b801a0cb2cb trunk
Support for context-aware methods during message extraction (fixes #229, patch by David Rios)
author | fschwarz |
---|---|
date | Mon, 26 Sep 2011 20:01:01 +0000 |
parents | ca203b2af83c |
children |
comparison
equal
deleted
inserted
replaced
568:39ff5164e8ea | 569:1b801a0cb2cb |
---|---|
382 """) | 382 """) |
383 messages = \ | 383 messages = \ |
384 list(extract.extract('javascript', buf, extract.DEFAULT_KEYWORDS, | 384 list(extract.extract('javascript', buf, extract.DEFAULT_KEYWORDS, |
385 [], {})) | 385 [], {})) |
386 | 386 |
387 self.assertEqual([(1, 'simple', []), | 387 self.assertEqual([(1, 'simple', [], None), |
388 (2, 'simple', []), | 388 (2, 'simple', [], None), |
389 (3, ('s', 'p'), [])], messages) | 389 (3, ('s', 'p'), [], None)], messages) |
390 | 390 |
391 def test_various_calls(self): | 391 def test_various_calls(self): |
392 buf = StringIO("""\ | 392 buf = StringIO("""\ |
393 msg1 = _(i18n_arg.replace(/"/, '"')) | 393 msg1 = _(i18n_arg.replace(/"/, '"')) |
394 msg2 = ungettext(i18n_arg.replace(/"/, '"'), multi_arg.replace(/"/, '"'), 2) | 394 msg2 = ungettext(i18n_arg.replace(/"/, '"'), multi_arg.replace(/"/, '"'), 2) |
402 msg10 = dngettext(domain, 'Page', 'Pages', 3) | 402 msg10 = dngettext(domain, 'Page', 'Pages', 3) |
403 """) | 403 """) |
404 messages = \ | 404 messages = \ |
405 list(extract.extract('javascript', buf, extract.DEFAULT_KEYWORDS, [], | 405 list(extract.extract('javascript', buf, extract.DEFAULT_KEYWORDS, [], |
406 {})) | 406 {})) |
407 self.assertEqual([(5, (u'bunny', u'bunnies'), []), | 407 self.assertEqual([(5, (u'bunny', u'bunnies'), [], None), |
408 (8, u'Rabbit', []), | 408 (8, u'Rabbit', [], None), |
409 (10, (u'Page', u'Pages'), [])], messages) | 409 (10, (u'Page', u'Pages'), [], None)], messages) |
410 | 410 |
411 def test_message_with_line_comment(self): | 411 def test_message_with_line_comment(self): |
412 buf = StringIO("""\ | 412 buf = StringIO("""\ |
413 // NOTE: hello | 413 // NOTE: hello |
414 msg = _('Bonjour à tous') | 414 msg = _('Bonjour à tous') |
479 msg10 = dngettext(domain, 'Page', 'Pages', 3) | 479 msg10 = dngettext(domain, 'Page', 'Pages', 3) |
480 """) | 480 """) |
481 messages = \ | 481 messages = \ |
482 list(extract.extract('python', buf, extract.DEFAULT_KEYWORDS, [], | 482 list(extract.extract('python', buf, extract.DEFAULT_KEYWORDS, [], |
483 {})) | 483 {})) |
484 self.assertEqual([(5, (u'bunny', u'bunnies'), []), | 484 self.assertEqual([(5, (u'bunny', u'bunnies'), [], None), |
485 (8, u'Rabbit', []), | 485 (8, u'Rabbit', [], None), |
486 (10, (u'Page', u'Pages'), [])], messages) | 486 (10, (u'Page', u'Pages'), [], None)], messages) |
487 | 487 |
488 def test_invalid_extract_method(self): | 488 def test_invalid_extract_method(self): |
489 buf = StringIO('') | 489 buf = StringIO('') |
490 self.assertRaises(ValueError, list, extract.extract('spam', buf)) | 490 self.assertRaises(ValueError, list, extract.extract('spam', buf)) |
491 | 491 |
518 self.assertEqual([], messages) | 518 self.assertEqual([], messages) |
519 assert 'warning: Empty msgid.' in sys.stderr.getvalue() | 519 assert 'warning: Empty msgid.' in sys.stderr.getvalue() |
520 finally: | 520 finally: |
521 sys.stderr = stderr | 521 sys.stderr = stderr |
522 | 522 |
523 def test_warn_if_empty_string_msgid_found_in_context_aware_extraction_method(self): | |
524 buf = StringIO("\nmsg = pgettext('ctxt', '')\n") | |
525 stderr = sys.stderr | |
526 sys.stderr = StringIO() | |
527 try: | |
528 messages = extract.extract('python', buf) | |
529 self.assertEqual([], list(messages)) | |
530 assert 'warning: Empty msgid.' in sys.stderr.getvalue() | |
531 finally: | |
532 sys.stderr = stderr | |
533 | |
523 | 534 |
524 def suite(): | 535 def suite(): |
525 suite = unittest.TestSuite() | 536 suite = unittest.TestSuite() |
526 suite.addTest(doctest.DocTestSuite(extract)) | 537 suite.addTest(doctest.DocTestSuite(extract)) |
527 suite.addTest(unittest.makeSuite(ExtractPythonTestCase)) | 538 suite.addTest(unittest.makeSuite(ExtractPythonTestCase)) |