aurweb/test/test_time.py
moson 5d302ae00c
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>
2023-10-21 10:41:44 +02:00

36 lines
1 KiB
Python

import aurweb.config
from aurweb.testing.requests import Request
from aurweb.time import get_request_timezone, tz_offset
def test_tz_offset_utc():
offset = tz_offset("UTC")
assert offset == "+00:00"
def test_tz_offset_mst():
offset = tz_offset("MST")
assert offset == "-07:00"
def test_request_timezone():
request = Request()
# Default timezone
dtz = aurweb.config.get("options", "default_timezone")
assert get_request_timezone(request) == dtz
# Timezone from query params
request.query_params = {"timezone": "Europe/Berlin"}
assert get_request_timezone(request) == "Europe/Berlin"
# Timezone from authenticated user.
request.query_params = {}
request.user.authenticated = True
request.user.Timezone = "America/Los_Angeles"
assert get_request_timezone(request) == "America/Los_Angeles"
# Timezone from authenticated user with query param
# Query param should have precedence
request.query_params = {"timezone": "Europe/Berlin"}
assert get_request_timezone(request) == "Europe/Berlin"