Skip to content

Commit d4cafa4

Browse files
committed
JavaScript: Move extraction test cases into separate file
And remove unittest boilerplate while at it
1 parent bda29a7 commit d4cafa4

File tree

2 files changed

+99
-91
lines changed

2 files changed

+99
-91
lines changed

tests/messages/test_extract.py

Lines changed: 0 additions & 91 deletions
Original file line numberDiff line numberDiff line change
@@ -410,97 +410,6 @@ def test_extract_strip_comment_tags(self):
410410
u'a prefix too'], messages[1][2])
411411

412412

413-
class ExtractJavaScriptTestCase(unittest.TestCase):
414-
415-
def test_simple_extract(self):
416-
buf = BytesIO(b"""\
417-
msg1 = _('simple')
418-
msg2 = gettext('simple')
419-
msg3 = ngettext('s', 'p', 42)
420-
""")
421-
messages = \
422-
list(extract.extract('javascript', buf, extract.DEFAULT_KEYWORDS,
423-
[], {}))
424-
425-
self.assertEqual([(1, 'simple', [], None),
426-
(2, 'simple', [], None),
427-
(3, ('s', 'p'), [], None)], messages)
428-
429-
def test_various_calls(self):
430-
buf = BytesIO(b"""\
431-
msg1 = _(i18n_arg.replace(/"/, '"'))
432-
msg2 = ungettext(i18n_arg.replace(/"/, '"'), multi_arg.replace(/"/, '"'), 2)
433-
msg3 = ungettext("Babel", multi_arg.replace(/"/, '"'), 2)
434-
msg4 = ungettext(i18n_arg.replace(/"/, '"'), "Babels", 2)
435-
msg5 = ungettext('bunny', 'bunnies', parseInt(Math.random() * 2 + 1))
436-
msg6 = ungettext(arg0, 'bunnies', rparseInt(Math.random() * 2 + 1))
437-
msg7 = _(hello.there)
438-
msg8 = gettext('Rabbit')
439-
msg9 = dgettext('wiki', model.addPage())
440-
msg10 = dngettext(domain, 'Page', 'Pages', 3)
441-
""")
442-
messages = \
443-
list(extract.extract('javascript', buf, extract.DEFAULT_KEYWORDS, [],
444-
{}))
445-
self.assertEqual([(5, (u'bunny', u'bunnies'), [], None),
446-
(8, u'Rabbit', [], None),
447-
(10, (u'Page', u'Pages'), [], None)], messages)
448-
449-
def test_message_with_line_comment(self):
450-
buf = BytesIO(u"""\
451-
// NOTE: hello
452-
msg = _('Bonjour à tous')
453-
""".encode('utf-8'))
454-
messages = list(extract.extract_javascript(buf, ('_',), ['NOTE:'], {}))
455-
self.assertEqual(u'Bonjour à tous', messages[0][2])
456-
self.assertEqual([u'NOTE: hello'], messages[0][3])
457-
458-
def test_message_with_multiline_comment(self):
459-
buf = BytesIO(u"""\
460-
/* NOTE: hello
461-
and bonjour
462-
and servus */
463-
msg = _('Bonjour à tous')
464-
""".encode('utf-8'))
465-
messages = list(extract.extract_javascript(buf, ('_',), ['NOTE:'], {}))
466-
self.assertEqual(u'Bonjour à tous', messages[0][2])
467-
self.assertEqual([u'NOTE: hello', 'and bonjour', ' and servus'], messages[0][3])
468-
469-
def test_ignore_function_definitions(self):
470-
buf = BytesIO(b"""\
471-
function gettext(value) {
472-
return translations[language][value] || value;
473-
}""")
474-
475-
messages = list(extract.extract_javascript(buf, ('gettext',), [], {}))
476-
self.assertEqual(messages, [])
477-
478-
def test_misplaced_comments(self):
479-
buf = BytesIO(b"""\
480-
/* NOTE: this won't show up */
481-
foo()
482-
483-
/* NOTE: this will */
484-
msg = _('Something')
485-
486-
// NOTE: this will show up
487-
// too.
488-
msg = _('Something else')
489-
490-
// NOTE: but this won't
491-
bar()
492-
493-
_('no comment here')
494-
""")
495-
messages = list(extract.extract_javascript(buf, ('_',), ['NOTE:'], {}))
496-
self.assertEqual(u'Something', messages[0][2])
497-
self.assertEqual([u'NOTE: this will'], messages[0][3])
498-
self.assertEqual(u'Something else', messages[1][2])
499-
self.assertEqual([u'NOTE: this will show up', 'too.'], messages[1][3])
500-
self.assertEqual(u'no comment here', messages[2][2])
501-
self.assertEqual([], messages[2][3])
502-
503-
504413
class ExtractTestCase(unittest.TestCase):
505414

506415
def test_invalid_filter(self):

tests/messages/test_js_extract.py

Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
# -- encoding: UTF-8 --
2+
from babel._compat import BytesIO
3+
from babel.messages import extract
4+
5+
6+
def test_simple_extract():
7+
buf = BytesIO(b"""\
8+
msg1 = _('simple')
9+
msg2 = gettext('simple')
10+
msg3 = ngettext('s', 'p', 42)
11+
""")
12+
messages = \
13+
list(extract.extract('javascript', buf, extract.DEFAULT_KEYWORDS,
14+
[], {}))
15+
16+
assert messages == [(1, 'simple', [], None),
17+
(2, 'simple', [], None),
18+
(3, ('s', 'p'), [], None)]
19+
20+
21+
def test_various_calls():
22+
buf = BytesIO(b"""\
23+
msg1 = _(i18n_arg.replace(/"/, '"'))
24+
msg2 = ungettext(i18n_arg.replace(/"/, '"'), multi_arg.replace(/"/, '"'), 2)
25+
msg3 = ungettext("Babel", multi_arg.replace(/"/, '"'), 2)
26+
msg4 = ungettext(i18n_arg.replace(/"/, '"'), "Babels", 2)
27+
msg5 = ungettext('bunny', 'bunnies', parseInt(Math.random() * 2 + 1))
28+
msg6 = ungettext(arg0, 'bunnies', rparseInt(Math.random() * 2 + 1))
29+
msg7 = _(hello.there)
30+
msg8 = gettext('Rabbit')
31+
msg9 = dgettext('wiki', model.addPage())
32+
msg10 = dngettext(domain, 'Page', 'Pages', 3)
33+
""")
34+
messages = \
35+
list(extract.extract('javascript', buf, extract.DEFAULT_KEYWORDS, [],
36+
{}))
37+
assert messages == [
38+
(5, (u'bunny', u'bunnies'), [], None),
39+
(8, u'Rabbit', [], None),
40+
(10, (u'Page', u'Pages'), [], None)
41+
]
42+
43+
44+
def test_message_with_line_comment():
45+
buf = BytesIO(u"""\
46+
// NOTE: hello
47+
msg = _('Bonjour à tous')
48+
""".encode('utf-8'))
49+
messages = list(extract.extract_javascript(buf, ('_',), ['NOTE:'], {}))
50+
assert messages[0][2] == u'Bonjour à tous'
51+
assert messages[0][3] == [u'NOTE: hello']
52+
53+
54+
def test_message_with_multiline_comment():
55+
buf = BytesIO(u"""\
56+
/* NOTE: hello
57+
and bonjour
58+
and servus */
59+
msg = _('Bonjour à tous')
60+
""".encode('utf-8'))
61+
messages = list(extract.extract_javascript(buf, ('_',), ['NOTE:'], {}))
62+
assert messages[0][2] == u'Bonjour à tous'
63+
assert messages[0][3] == [u'NOTE: hello', 'and bonjour', ' and servus']
64+
65+
66+
def test_ignore_function_definitions():
67+
buf = BytesIO(b"""\
68+
function gettext(value) {
69+
return translations[language][value] || value;
70+
}""")
71+
72+
messages = list(extract.extract_javascript(buf, ('gettext',), [], {}))
73+
assert not messages
74+
75+
76+
def test_misplaced_comments():
77+
buf = BytesIO(b"""\
78+
/* NOTE: this won't show up */
79+
foo()
80+
81+
/* NOTE: this will */
82+
msg = _('Something')
83+
84+
// NOTE: this will show up
85+
// too.
86+
msg = _('Something else')
87+
88+
// NOTE: but this won't
89+
bar()
90+
91+
_('no comment here')
92+
""")
93+
messages = list(extract.extract_javascript(buf, ('_',), ['NOTE:'], {}))
94+
assert messages[0][2] == u'Something'
95+
assert messages[0][3] == [u'NOTE: this will']
96+
assert messages[1][2] == u'Something else'
97+
assert messages[1][3] == [u'NOTE: this will show up', 'too.']
98+
assert messages[2][2] == u'no comment here'
99+
assert messages[2][3] == []

0 commit comments

Comments
 (0)