mirror of
https://gitlab.archlinux.org/archlinux/aurweb.git
synced 2025-02-03 10:43:03 +01:00
feat: Support timezone and language query params
Support setting the timezone as well as the language via query params: The timezone parameter previously only worked on certain pages. While we're at it, let's also add the language as a param. Refactor code for timezone and language functions. Remove unused AURTZ cookie. Signed-off-by: moson <moson@archlinux.org>
This commit is contained in:
parent
933654fcbb
commit
5d302ae00c
5 changed files with 89 additions and 33 deletions
|
@ -1,5 +1,5 @@
|
|||
""" Test our l10n module. """
|
||||
from aurweb import filters, l10n
|
||||
from aurweb import config, filters, l10n
|
||||
from aurweb.testing.requests import Request
|
||||
|
||||
|
||||
|
@ -10,13 +10,55 @@ def test_translator():
|
|||
|
||||
|
||||
def test_get_request_language():
|
||||
"""First, tests default_lang, then tests a modified AURLANG cookie."""
|
||||
"""Test getting the language setting from a request."""
|
||||
# Default language
|
||||
default_lang = config.get("options", "default_lang")
|
||||
request = Request()
|
||||
assert l10n.get_request_language(request) == "en"
|
||||
assert l10n.get_request_language(request) == default_lang
|
||||
|
||||
# Language setting from cookie: de
|
||||
request.cookies["AURLANG"] = "de"
|
||||
assert l10n.get_request_language(request) == "de"
|
||||
|
||||
# Language setting from cookie: nonsense
|
||||
# Should fallback to default lang
|
||||
request.cookies["AURLANG"] = "nonsense"
|
||||
assert l10n.get_request_language(request) == default_lang
|
||||
|
||||
# Language setting from query param: de
|
||||
request.cookies = {}
|
||||
request.query_params = {"language": "de"}
|
||||
assert l10n.get_request_language(request) == "de"
|
||||
|
||||
# Language setting from query param: nonsense
|
||||
# Should fallback to default lang
|
||||
request.query_params = {"language": "nonsense"}
|
||||
assert l10n.get_request_language(request) == default_lang
|
||||
|
||||
# Language setting from query param: de and cookie
|
||||
# Query param should have precedence
|
||||
request.query_params = {"language": "de"}
|
||||
request.cookies["AURLANG"] = "fr"
|
||||
assert l10n.get_request_language(request) == "de"
|
||||
|
||||
# Language setting from authenticated user
|
||||
request.cookies = {}
|
||||
request.query_params = {}
|
||||
request.user.authenticated = True
|
||||
request.user.LangPreference = "de"
|
||||
assert l10n.get_request_language(request) == "de"
|
||||
|
||||
# Language setting from authenticated user with query param
|
||||
# Query param should have precedence
|
||||
request.query_params = {"language": "fr"}
|
||||
assert l10n.get_request_language(request) == "fr"
|
||||
|
||||
# Language setting from authenticated user with cookie
|
||||
# DB setting should have precedence
|
||||
request.query_params = {}
|
||||
request.cookies["AURLANG"] = "fr"
|
||||
assert l10n.get_request_language(request) == "de"
|
||||
|
||||
|
||||
def test_get_raw_translator_for_request():
|
||||
"""Make sure that get_raw_translator_for_request is giving us
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue