@@ -37,33 +37,34 @@ def test_nested_calls(self):
3737 messages = list (extract .extract_python (buf ,
3838 extract .DEFAULT_KEYWORDS .keys (),
3939 [], {}))
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 )
5253
5354 def test_extract_default_encoding_ascii (self ):
5455 buf = BytesIO (b'_("a")' )
5556 messages = list (extract .extract_python (
5657 buf , list (extract .DEFAULT_KEYWORDS ), [], {},
5758 ))
5859 # Should work great in both py2 and py3
59- self .assertEqual ([(1 , '_' , 'a' , [])], messages )
60+ self .assertEqual ([(1 , '_' , 'a' , [], () )], messages )
6061
6162 def test_extract_default_encoding_utf8 (self ):
6263 buf = BytesIO (u'_("☃")' .encode ('UTF-8' ))
6364 messages = list (extract .extract_python (
6465 buf , list (extract .DEFAULT_KEYWORDS ), [], {},
6566 ))
66- self .assertEqual ([(1 , '_' , u'☃' , [])], messages )
67+ self .assertEqual ([(1 , '_' , u'☃' , [], () )], messages )
6768
6869 def test_nested_comments (self ):
6970 buf = BytesIO (b"""\
@@ -73,7 +74,7 @@ def test_nested_comments(self):
7374""" )
7475 messages = list (extract .extract_python (buf , ('ngettext' ,),
7576 ['TRANSLATORS:' ], {}))
76- self .assertEqual ([(1 , 'ngettext' , (u'pylon' , u'pylons' , None ), [])],
77+ self .assertEqual ([(1 , 'ngettext' , (u'pylon' , u'pylons' , None ), [], () )],
7778 messages )
7879
7980 def test_comments_with_calls_that_spawn_multiple_lines (self ):
@@ -98,21 +99,21 @@ def test_comments_with_calls_that_spawn_multiple_lines(self):
9899
99100 {'strip_comment_tags' : False }))
100101 self .assertEqual ((6 , '_' , 'Locale deleted.' ,
101- [u'NOTE: This Comment SHOULD Be Extracted' ]),
102+ [u'NOTE: This Comment SHOULD Be Extracted' ], () ),
102103 messages [1 ])
103104 self .assertEqual ((10 , 'ngettext' , (u'Foo deleted.' , u'Foos deleted.' ,
104105 None ),
105- [u'NOTE: This Comment SHOULD Be Extracted' ]),
106+ [u'NOTE: This Comment SHOULD Be Extracted' ], () ),
106107 messages [2 ])
107108 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' ], () ),
111112 messages [0 ])
112113 self .assertEqual ((15 , 'ngettext' , (u'Bar deleted.' , u'Bars deleted.' ,
113114 None ),
114115 [u'NOTE: This Comment SHOULD Be Extracted' ,
115- u'NOTE: And This One Too' ]),
116+ u'NOTE: And This One Too' ], () ),
116117 messages [3 ])
117118
118119 def test_declarations (self ):
@@ -129,9 +130,9 @@ class Meta:
129130 messages = list (extract .extract_python (buf ,
130131 extract .DEFAULT_KEYWORDS .keys (),
131132 [], {}))
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' , [], () )],
135136 messages )
136137
137138 def test_multiline (self ):
@@ -143,8 +144,8 @@ def test_multiline(self):
143144 count)
144145""" )
145146 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 ), [], () )],
148149 messages )
149150
150151 def test_npgettext (self ):
@@ -156,8 +157,8 @@ def test_npgettext(self):
156157 count)
157158""" )
158159 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 ), [], () )],
161162 messages )
162163 buf = BytesIO (b"""\
163164 msg = npgettext('Strings', 'pylon', # TRANSLATORS: shouldn't be
@@ -166,7 +167,7 @@ def test_npgettext(self):
166167""" )
167168 messages = list (extract .extract_python (buf , ('npgettext' ,),
168169 ['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 ), [], () )],
170171 messages )
171172
172173 def test_triple_quoted_strings (self ):
@@ -178,9 +179,9 @@ def test_triple_quoted_strings(self):
178179 messages = list (extract .extract_python (buf ,
179180 extract .DEFAULT_KEYWORDS .keys (),
180181 [], {}))
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 ), [], () )],
184185 messages )
185186
186187 def test_multiline_strings (self ):
@@ -196,7 +197,7 @@ def test_multiline_strings(self):
196197 [(1 , '_' ,
197198 u'This module provides internationalization and localization\n '
198199 '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.' , [], () )],
200201 messages )
201202
202203 def test_concatenated_strings (self ):
@@ -456,6 +457,10 @@ def test_nested_messages(self):
456457 self .assertEqual ([], messages [7 ][3 ])
457458
458459
460+ def extract_bad (fileobj , keywords , comment_tags , options ):
461+ yield (None ,)
462+
463+
459464class ExtractTestCase (unittest .TestCase ):
460465
461466 def test_invalid_filter (self ):
@@ -474,14 +479,19 @@ def test_invalid_filter(self):
474479 messages = \
475480 list (extract .extract ('python' , buf , extract .DEFAULT_KEYWORDS , [],
476481 {}))
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 )
480485
481486 def test_invalid_extract_method (self ):
482487 buf = BytesIO (b'' )
483488 self .assertRaises (ValueError , list , extract .extract ('spam' , buf ))
484489
490+ def test_bad_extract_function (self ):
491+ self .assertRaises (
492+ ValueError , list ,
493+ extract .extract ('tests.messages.test_extract:extract_bad' , '' ))
494+
485495 def test_different_signatures (self ):
486496 buf = BytesIO (b"""
487497foo = _('foo', 'bar')
0 commit comments