def test_set_locale(self): if len(self.locales) == 1: pytest.skip("Only a single locale found, no point in " "trying to test setting another locale") if com._all_none(*self.current_locale): # Not sure why, but on some travis runs with pytest, # getlocale() returned (None, None). pytest.skip("Current locale is not set.") locale_override = os.environ.get('LOCALE_OVERRIDE', None) if locale_override is None: lang, enc = 'it_CH', 'UTF-8' elif locale_override == 'C': lang, enc = 'en_US', 'ascii' else: lang, enc = locale_override.split('.') enc = codecs.lookup(enc).name new_locale = lang, enc if not tm.can_set_locale(new_locale): with pytest.raises(locale.Error): with tm.set_locale(new_locale): pass else: with tm.set_locale(new_locale) as normalized_locale: new_lang, new_enc = normalized_locale.split('.') new_enc = codecs.lookup(enc).name normalized_locale = new_lang, new_enc assert normalized_locale == new_locale current_locale = locale.getlocale() assert current_locale == self.current_locale
def test_set_locale(self): if len(self.locales) == 1: pytest.skip("Only a single locale found, no point in " "trying to test setting another locale") if com._all_none(*self.current_locale): # Not sure why, but on some travis runs with pytest, # getlocale() returned (None, None). pytest.skip("Current locale is not set.") locale_override = os.environ.get('LOCALE_OVERRIDE', None) if locale_override is None: lang, enc = 'it_CH', 'UTF-8' elif locale_override == 'C': lang, enc = 'en_US', 'ascii' else: lang, enc = locale_override.split('.') enc = codecs.lookup(enc).name new_locale = lang, enc if not tm.can_set_locale(new_locale): with pytest.raises(locale.Error): with tm.set_locale(new_locale): pass else: with tm.set_locale(new_locale) as normalized_locale: new_lang, new_enc = normalized_locale.split('.') new_enc = codecs.lookup(enc).name normalized_locale = new_lang, new_enc assert normalized_locale == new_locale current_locale = locale.getlocale() assert current_locale == self.current_locale
def test_set_locale(): if com._all_none(_current_locale): # Not sure why, but on some Travis runs with pytest, # getlocale() returned (None, None). pytest.skip("Current locale is not set.") locale_override = os.environ.get("LOCALE_OVERRIDE", None) if locale_override is None: lang, enc = "it_CH", "UTF-8" elif locale_override == "C": lang, enc = "en_US", "ascii" else: lang, enc = locale_override.split(".") enc = codecs.lookup(enc).name new_locale = lang, enc if not tm.can_set_locale(new_locale): msg = "unsupported locale setting" with pytest.raises(locale.Error, match=msg): with tm.set_locale(new_locale): pass else: with tm.set_locale(new_locale) as normalized_locale: new_lang, new_enc = normalized_locale.split(".") new_enc = codecs.lookup(enc).name normalized_locale = new_lang, new_enc assert normalized_locale == new_locale # Once we exit the "with" statement, locale should be back to what it was. current_locale = locale.getlocale() assert current_locale == _current_locale
def test_encode_non_c_locale(self): lc_category = locale.LC_NUMERIC # We just need one of these locales to work. for new_locale in ("it_IT.UTF-8", "Italian_Italy"): if tm.can_set_locale(new_locale, lc_category): with tm.set_locale(new_locale, lc_category): assert ujson.loads(ujson.dumps(4.78e60)) == 4.78e60 assert ujson.loads("4.78", precise_float=True) == 4.78 break
def test_encode_non_c_locale(self): lc_category = locale.LC_NUMERIC # We just need one of these locales to work. for new_locale in ("it_IT.UTF-8", "Italian_Italy"): if tm.can_set_locale(new_locale, lc_category): with tm.set_locale(new_locale, lc_category): assert ujson.loads(ujson.dumps(4.78e60)) == 4.78e60 assert ujson.loads("4.78", precise_float=True) == 4.78 break
def test_can_set_locale_invalid_get(self, monkeypatch): # In some cases, an invalid locale can be set, # but a subsequent getlocale() raises a ValueError # See GH 22129 def mockgetlocale(): raise ValueError() with monkeypatch.context() as m: m.setattr(locale, 'getlocale', mockgetlocale) assert tm.can_set_locale('') is False
def test_can_set_locale_invalid_get(self, monkeypatch): # In some cases, an invalid locale can be set, # but a subsequent getlocale() raises a ValueError # See GH 22129 def mockgetlocale(): raise ValueError() with monkeypatch.context() as m: m.setattr(locale, 'getlocale', mockgetlocale) assert tm.can_set_locale('') is False
def test_can_set_locale_invalid_get(monkeypatch): # see gh-22129 # # In some cases, an invalid locale can be set, # but a subsequent getlocale() raises a ValueError. def mock_get_locale(): raise ValueError() with monkeypatch.context() as m: m.setattr(locale, "getlocale", mock_get_locale) assert not tm.can_set_locale("")
def test_can_set_locale_invalid_set(self): # Setting an invalid locale should return False assert tm.can_set_locale('non-existent_locale') is False
def test_can_set_locale_valid_set(self): # Setting the default locale should return True assert tm.can_set_locale('') is True
def test_can_set_locale_invalid_set(self): # Setting an invalid locale should return False assert tm.can_set_locale('non-existent_locale') is False
def test_can_set_locale_valid_set(self): # Setting the default locale should return True assert tm.can_set_locale('') is True
def test_can_set_locale_invalid_set(): # Cannot set an invalid locale. assert not tm.can_set_locale("non-existent_locale")
def test_can_set_locale_valid_set(): # Can set the default locale. assert tm.can_set_locale("")