@@ -37,33 +37,34 @@ def test_nested_calls(self):
37
37
messages = list (extract .extract_python (buf ,
38
38
extract .DEFAULT_KEYWORDS .keys (),
39
39
[], {}))
40
- self .assertEqual ([
41
- (1 , '_' , None , []),
42
- (2 , 'ungettext' , (None , None , None ), []),
43
- (3 , 'ungettext' , (u'Babel' , None , None ), []),
44
- (4 , 'ungettext' , (None , u'Babels' , None ), []),
45
- (5 , 'ungettext' , (u'bunny' , u'bunnies' , None ), []),
46
- (6 , 'ungettext' , (None , u'bunnies' , None ), []),
47
- (7 , '_' , None , []),
48
- (8 , 'gettext' , u'Rabbit' , []),
49
- (9 , 'dgettext' , (u'wiki' , None ), []),
50
- (10 , 'dngettext' , (None , u'Page' , u'Pages' , None ), [])],
51
- messages )
40
+ self .assertEqual (
41
+ [
42
+ (1 , '_' , None , [], ()),
43
+ (2 , 'ungettext' , (None , None , None ), [], ()),
44
+ (3 , 'ungettext' , (u'Babel' , None , None ), [], ()),
45
+ (4 , 'ungettext' , (None , u'Babels' , None ), [], ()),
46
+ (5 , 'ungettext' , (u'bunny' , u'bunnies' , None ), [], ()),
47
+ (6 , 'ungettext' , (None , u'bunnies' , None ), [], ()),
48
+ (7 , '_' , None , [], ()),
49
+ (8 , 'gettext' , u'Rabbit' , [], ()),
50
+ (9 , 'dgettext' , (u'wiki' , None ), [], ()),
51
+ (10 , 'dngettext' , (None , u'Page' , u'Pages' , None ), [], ())
52
+ ], messages )
52
53
53
54
def test_extract_default_encoding_ascii (self ):
54
55
buf = BytesIO (b'_("a")' )
55
56
messages = list (extract .extract_python (
56
57
buf , list (extract .DEFAULT_KEYWORDS ), [], {},
57
58
))
58
59
# Should work great in both py2 and py3
59
- self .assertEqual ([(1 , '_' , 'a' , [])], messages )
60
+ self .assertEqual ([(1 , '_' , 'a' , [], () )], messages )
60
61
61
62
def test_extract_default_encoding_utf8 (self ):
62
63
buf = BytesIO (u'_("☃")' .encode ('UTF-8' ))
63
64
messages = list (extract .extract_python (
64
65
buf , list (extract .DEFAULT_KEYWORDS ), [], {},
65
66
))
66
- self .assertEqual ([(1 , '_' , u'☃' , [])], messages )
67
+ self .assertEqual ([(1 , '_' , u'☃' , [], () )], messages )
67
68
68
69
def test_nested_comments (self ):
69
70
buf = BytesIO (b"""\
@@ -73,7 +74,7 @@ def test_nested_comments(self):
73
74
""" )
74
75
messages = list (extract .extract_python (buf , ('ngettext' ,),
75
76
['TRANSLATORS:' ], {}))
76
- self .assertEqual ([(1 , 'ngettext' , (u'pylon' , u'pylons' , None ), [])],
77
+ self .assertEqual ([(1 , 'ngettext' , (u'pylon' , u'pylons' , None ), [], () )],
77
78
messages )
78
79
79
80
def test_comments_with_calls_that_spawn_multiple_lines (self ):
@@ -98,21 +99,21 @@ def test_comments_with_calls_that_spawn_multiple_lines(self):
98
99
99
100
{'strip_comment_tags' : False }))
100
101
self .assertEqual ((6 , '_' , 'Locale deleted.' ,
101
- [u'NOTE: This Comment SHOULD Be Extracted' ]),
102
+ [u'NOTE: This Comment SHOULD Be Extracted' ], () ),
102
103
messages [1 ])
103
104
self .assertEqual ((10 , 'ngettext' , (u'Foo deleted.' , u'Foos deleted.' ,
104
105
None ),
105
- [u'NOTE: This Comment SHOULD Be Extracted' ]),
106
+ [u'NOTE: This Comment SHOULD Be Extracted' ], () ),
106
107
messages [2 ])
107
108
self .assertEqual ((3 , 'ngettext' ,
108
- (u'Catalog deleted.' ,
109
- u'Catalogs deleted.' , None ),
110
- [u'NOTE: This Comment SHOULD Be Extracted' ]),
109
+ (u'Catalog deleted.' ,
110
+ u'Catalogs deleted.' , None ),
111
+ [u'NOTE: This Comment SHOULD Be Extracted' ], () ),
111
112
messages [0 ])
112
113
self .assertEqual ((15 , 'ngettext' , (u'Bar deleted.' , u'Bars deleted.' ,
113
114
None ),
114
115
[u'NOTE: This Comment SHOULD Be Extracted' ,
115
- u'NOTE: And This One Too' ]),
116
+ u'NOTE: And This One Too' ], () ),
116
117
messages [3 ])
117
118
118
119
def test_declarations (self ):
@@ -129,9 +130,9 @@ class Meta:
129
130
messages = list (extract .extract_python (buf ,
130
131
extract .DEFAULT_KEYWORDS .keys (),
131
132
[], {}))
132
- self .assertEqual ([(3 , '_' , u'Page arg 1' , []),
133
- (3 , '_' , u'Page arg 2' , []),
134
- (8 , '_' , u'log entry' , [])],
133
+ self .assertEqual ([(3 , '_' , u'Page arg 1' , [], () ),
134
+ (3 , '_' , u'Page arg 2' , [], () ),
135
+ (8 , '_' , u'log entry' , [], () )],
135
136
messages )
136
137
137
138
def test_multiline (self ):
@@ -143,8 +144,8 @@ def test_multiline(self):
143
144
count)
144
145
""" )
145
146
messages = list (extract .extract_python (buf , ('ngettext' ,), [], {}))
146
- self .assertEqual ([(1 , 'ngettext' , (u'pylon' , u'pylons' , None ), []),
147
- (3 , 'ngettext' , (u'elvis' , u'elvises' , None ), [])],
147
+ self .assertEqual ([(1 , 'ngettext' , (u'pylon' , u'pylons' , None ), [], () ),
148
+ (3 , 'ngettext' , (u'elvis' , u'elvises' , None ), [], () )],
148
149
messages )
149
150
150
151
def test_npgettext (self ):
@@ -156,8 +157,8 @@ def test_npgettext(self):
156
157
count)
157
158
""" )
158
159
messages = list (extract .extract_python (buf , ('npgettext' ,), [], {}))
159
- self .assertEqual ([(1 , 'npgettext' , (u'Strings' , u'pylon' , u'pylons' , None ), []),
160
- (3 , 'npgettext' , (u'Strings' , u'elvis' , u'elvises' , None ), [])],
160
+ self .assertEqual ([(1 , 'npgettext' , (u'Strings' , u'pylon' , u'pylons' , None ), [], () ),
161
+ (3 , 'npgettext' , (u'Strings' , u'elvis' , u'elvises' , None ), [], () )],
161
162
messages )
162
163
buf = BytesIO (b"""\
163
164
msg = npgettext('Strings', 'pylon', # TRANSLATORS: shouldn't be
@@ -166,7 +167,7 @@ def test_npgettext(self):
166
167
""" )
167
168
messages = list (extract .extract_python (buf , ('npgettext' ,),
168
169
['TRANSLATORS:' ], {}))
169
- self .assertEqual ([(1 , 'npgettext' , (u'Strings' , u'pylon' , u'pylons' , None ), [])],
170
+ self .assertEqual ([(1 , 'npgettext' , (u'Strings' , u'pylon' , u'pylons' , None ), [], () )],
170
171
messages )
171
172
172
173
def test_triple_quoted_strings (self ):
@@ -178,9 +179,9 @@ def test_triple_quoted_strings(self):
178
179
messages = list (extract .extract_python (buf ,
179
180
extract .DEFAULT_KEYWORDS .keys (),
180
181
[], {}))
181
- self .assertEqual ([(1 , '_' , u'pylons' , []),
182
- (2 , 'ngettext' , (u'elvis' , u'elvises' , None ), []),
183
- (3 , 'ngettext' , (u'elvis' , u'elvises' , None ), [])],
182
+ self .assertEqual ([(1 , '_' , u'pylons' , [], () ),
183
+ (2 , 'ngettext' , (u'elvis' , u'elvises' , None ), [], () ),
184
+ (3 , 'ngettext' , (u'elvis' , u'elvises' , None ), [], () )],
184
185
messages )
185
186
186
187
def test_multiline_strings (self ):
@@ -196,7 +197,7 @@ def test_multiline_strings(self):
196
197
[(1 , '_' ,
197
198
u'This module provides internationalization and localization\n '
198
199
'support for your Python programs by providing an interface to '
199
- 'the GNU\n gettext message catalog library.' , [])],
200
+ 'the GNU\n gettext message catalog library.' , [], () )],
200
201
messages )
201
202
202
203
def test_concatenated_strings (self ):
@@ -456,6 +457,10 @@ def test_nested_messages(self):
456
457
self .assertEqual ([], messages [7 ][3 ])
457
458
458
459
460
+ def extract_bad (fileobj , keywords , comment_tags , options ):
461
+ yield (None ,)
462
+
463
+
459
464
class ExtractTestCase (unittest .TestCase ):
460
465
461
466
def test_invalid_filter (self ):
@@ -474,14 +479,19 @@ def test_invalid_filter(self):
474
479
messages = \
475
480
list (extract .extract ('python' , buf , extract .DEFAULT_KEYWORDS , [],
476
481
{}))
477
- self .assertEqual ([(5 , (u'bunny' , u'bunnies' ), [], None ),
478
- (8 , u'Rabbit' , [], None ),
479
- (10 , (u'Page' , u'Pages' ), [], None )], messages )
482
+ self .assertEqual ([(5 , (u'bunny' , u'bunnies' ), [], None , () ),
483
+ (8 , u'Rabbit' , [], None , () ),
484
+ (10 , (u'Page' , u'Pages' ), [], None , () )], messages )
480
485
481
486
def test_invalid_extract_method (self ):
482
487
buf = BytesIO (b'' )
483
488
self .assertRaises (ValueError , list , extract .extract ('spam' , buf ))
484
489
490
+ def test_bad_extract_function (self ):
491
+ self .assertRaises (
492
+ ValueError , list ,
493
+ extract .extract ('tests.messages.test_extract:extract_bad' , '' ))
494
+
485
495
def test_different_signatures (self ):
486
496
buf = BytesIO (b"""
487
497
foo = _('foo', 'bar')
0 commit comments