@@ -265,7 +265,7 @@ def test_plural_form_property(self):
265265
266266
267267def test_default_locale (monkeypatch ):
268- for name in ['LANGUAGE' , 'LC_ALL' , 'LC_CTYPE' , 'LC_MESSAGES' ]:
268+ for name in ['LANGUAGE' , 'LANG' , ' LC_ALL' , 'LC_CTYPE' , 'LC_MESSAGES' ]:
269269 monkeypatch .setenv (name , '' )
270270 monkeypatch .setenv ('LANG' , 'fr_FR.UTF-8' )
271271 assert default_locale ('LC_MESSAGES' ) == 'fr_FR'
@@ -277,6 +277,23 @@ def test_default_locale(monkeypatch):
277277 assert default_locale () == 'en_US_POSIX'
278278
279279
280+ def test_default_locale_multiple_args (monkeypatch ):
281+ for name in ['LANGUAGE' , 'LANG' , 'LC_ALL' , 'LC_CTYPE' , 'LC_MESSAGES' , 'LC_MONETARY' , 'LC_NUMERIC' ]:
282+ monkeypatch .setenv (name , '' )
283+ assert default_locale (["" , 0 , None ]) is None
284+ monkeypatch .setenv ('LANG' , 'en_US' )
285+ assert default_locale (('LC_MONETARY' , 'LC_NUMERIC' )) == 'en_US' # No LC_MONETARY or LC_NUMERIC set
286+ monkeypatch .setenv ('LC_NUMERIC' , 'fr_FR.UTF-8' )
287+ assert default_locale (('LC_MONETARY' , 'LC_NUMERIC' )) == 'fr_FR' # LC_NUMERIC set
288+ monkeypatch .setenv ('LC_MONETARY' , 'fi_FI.UTF-8' )
289+ assert default_locale (('LC_MONETARY' , 'LC_NUMERIC' )) == 'fi_FI' # LC_MONETARY set, it takes precedence
290+
291+
292+ def test_default_locale_bad_arg ():
293+ with pytest .raises (TypeError ):
294+ default_locale (42 )
295+
296+
280297def test_negotiate_locale ():
281298 assert (core .negotiate_locale (['de_DE' , 'en_US' ], ['de_DE' , 'de_AT' ]) ==
282299 'de_DE' )
0 commit comments