def test_get_best_language_exact_match(self): """ Should return exact match if it is in settings.LANGUAGE_URL_MAP """ request = self.factory.get("/") prefixer = Prefixer(request) eq_(prefixer.get_best_language("de, es"), "de")
def test_get_best_language_exact_match(self): """ Should return exact match if it is in settings.LANGUAGE_URL_MAP """ request = self.factory.get('/') prefixer = Prefixer(request) assert prefixer.get_best_language('de, es') == 'de'
def test_get_best_language_handles_parse_accept_lang_header_error(self): """ Should return None despite error raised by bug described in https://code.djangoproject.com/ticket/21078 """ request = self.factory.get('/') prefixer = Prefixer(request) eq_(prefixer.get_best_language('en; q=1,'), None)
def test_get_best_language_no_match(self): """ Should return None if there is no exact match or matching prefix """ request = self.factory.get('/') prefixer = Prefixer(request) assert prefixer.get_best_language('de') is None
def test_get_best_language_no_match(self): """ Should return None if there is no exact match or matching prefix """ request = self.factory.get("/") prefixer = Prefixer(request) eq_(prefixer.get_best_language("de"), None)
def test_get_language_valid_lang_param(self): """ Should return lang param value if it is in settings.LANGUAGE_URL_MAP """ request = self.factory.get('/?lang=de') eq_(request.GET.get('lang'), 'de') ok_('de' in settings.LANGUAGE_URL_MAP) prefixer = Prefixer(request) eq_(prefixer.get_language(), 'de')
def test_get_language_default_language_code(self): """ Should return default set by settings.LANGUAGE_CODE if no 'lang' url parameter and no Accept-Language header """ request = self.factory.get("/") self.assertFalse("lang" in request.GET) self.assertFalse(request.headers.get("Accept-Language")) prefixer = Prefixer(request) assert prefixer.get_language() == "en-US"
def test_get_language_invalid_lang_param(self): """ Should return default set by settings.LANGUAGE_CODE if lang param value is not in settings.LANGUAGE_URL_MAP """ request = self.factory.get('/?lang=de') ok_('lang' in request.GET) self.assertFalse('de' in settings.LANGUAGE_URL_MAP) prefixer = Prefixer(request) eq_(prefixer.get_language(), 'en-US')
def test_get_language_default_language_code(self): """ Should return default set by settings.LANGUAGE_CODE if no 'lang' url parameter and no Accept-Language header """ request = self.factory.get("/") self.assertFalse("lang" in request.GET) self.assertFalse(request.META.get("HTTP_ACCEPT_LANGUAGE")) prefixer = Prefixer(request) eq_(prefixer.get_language(), "en-US")
def test_get_language_default_language_code(self): """ Should return default set by settings.LANGUAGE_CODE if no 'lang' url parameter and no Accept-Language header """ request = self.factory.get('/') self.assertFalse('lang' in request.GET) self.assertFalse(request.META.get('HTTP_ACCEPT_LANGUAGE')) prefixer = Prefixer(request) assert prefixer.get_language() == 'en-US'
def test_get_language_no_best(self): """ Should return default set by settings.LANGUAGE_CODE if get_best_language return value is None """ request = self.factory.get("/") request.META["HTTP_ACCEPT_LANGUAGE"] = "de, es" prefixer = Prefixer(request) prefixer.get_best_language = Mock(return_value=None) eq_(prefixer.get_language(), "en-US") prefixer.get_best_language.assert_called_once_with("de, es")
def test_get_language_no_best(self): """ Should return default set by settings.LANGUAGE_CODE if get_best_language return value is None """ request = self.factory.get('/') request.META['HTTP_ACCEPT_LANGUAGE'] = 'de, es' prefixer = Prefixer(request) prefixer.get_best_language = Mock(return_value=None) assert prefixer.get_language() == 'en-US' prefixer.get_best_language.assert_called_once_with('de, es')
def test_get_language_returns_best(self): """ Should pass Accept-Language header value to get_best_language and return result """ request = self.factory.get('/') request.META['HTTP_ACCEPT_LANGUAGE'] = 'de, es' prefixer = Prefixer(request) prefixer.get_best_language = Mock(return_value='de') assert prefixer.get_language() == 'de' prefixer.get_best_language.assert_called_once_with('de, es')
def test_get_language_returns_best(self): """ Should pass Accept-Language header value to get_best_language and return result """ request = self.factory.get("/") request.META["HTTP_ACCEPT_LANGUAGE"] = "de, es" prefixer = Prefixer(request) prefixer.get_best_language = Mock(return_value="de") eq_(prefixer.get_language(), "de") prefixer.get_best_language.assert_called_once_with("de, es")
def test_get_language_returns_best(self): """ Should pass Accept-Language header value to get_best_language and return result """ request = self.factory.get("/") request.META["HTTP_ACCEPT_LANGUAGE"] = "de, es" prefixer = Prefixer(request) prefixer.get_best_language = Mock(return_value="de") assert prefixer.get_language() == "de" prefixer.get_best_language.assert_called_once_with("de, es")
def test_prefixer_with_non_supported_locale(self): """ Should set prefixer.locale to a supported locale that repects CANONICAL_LOCALES when given a URL with a non-supported locale. """ request = self.factory.get('/en-CA/') prefixer = Prefixer(request) assert prefixer.locale == 'en-US'
def activate(self, locale): """Context manager that temporarily activates a locale.""" old_prefix = get_url_prefix() old_locale = translation.get_language() rf = RequestFactory() set_url_prefix(Prefixer(rf.get('/%s/' % (locale, )))) translation.activate(locale) yield set_url_prefix(old_prefix) translation.activate(old_locale)
def test_get_best_language_prefix_match(self): """ Should return a language with a matching prefix from settings.LANGUAGE_URL_MAP + settings.CANONICAL_LOCALES if it exists but no exact match does """ request = self.factory.get('/') prefixer = Prefixer(request) assert prefixer.get_best_language('en') == 'en-US' assert prefixer.get_best_language('en-CA') == 'en-US' assert prefixer.get_best_language('en-GB') == 'en-GB' assert prefixer.get_best_language('en-US') == 'en-US' assert prefixer.get_best_language('es') == 'es-ES' assert prefixer.get_best_language('es-AR') == 'es-AR' assert prefixer.get_best_language('es-CL') == 'es-ES' assert prefixer.get_best_language('es-MX') == 'es-ES'
def test_get_best_language_prefix_match(self): """ Should return a language with a matching prefix from settings.LANGUAGE_URL_MAP + settings.CANONICAL_LOCALES if it exists but no exact match does """ request = self.factory.get("/") prefixer = Prefixer(request) assert prefixer.get_best_language("en") == "en-US" assert prefixer.get_best_language("en-CA") == "en-US" assert prefixer.get_best_language("en-GB") == "en-GB" assert prefixer.get_best_language("en-US") == "en-US" assert prefixer.get_best_language("es") == "es-ES" assert prefixer.get_best_language("es-AR") == "es-AR" assert prefixer.get_best_language("es-CL") == "es-ES" assert prefixer.get_best_language("es-MX") == "es-ES"
def test_get_best_language_prefix_match(self): """ Should return a language with a matching prefix from settings.LANGUAGE_URL_MAP + settings.CANONICAL_LOCALES if it exists but no exact match does """ request = self.factory.get("/") prefixer = Prefixer(request) eq_(prefixer.get_best_language("en"), "en-US") eq_(prefixer.get_best_language("en-CA"), "en-US") eq_(prefixer.get_best_language("en-GB"), "en-US") eq_(prefixer.get_best_language("en-US"), "en-US") eq_(prefixer.get_best_language("es"), "es-ES") eq_(prefixer.get_best_language("es-AR"), "es-AR") eq_(prefixer.get_best_language("es-CL"), "es-ES") eq_(prefixer.get_best_language("es-MX"), "es-ES")