mirror of
https://gitlab.archlinux.org/archlinux/aurweb.git
synced 2025-02-03 10:43:03 +01:00
housekeep: define filters in their own modules
This patch cleans up aurweb.templates and removes direct module-level initialization of the environment. Signed-off-by: Kevin Morris <kevr@0cost.org>
This commit is contained in:
parent
fca175ed84
commit
211ca5e49c
16 changed files with 159 additions and 159 deletions
36
test/test_filters.py
Normal file
36
test/test_filters.py
Normal file
|
@ -0,0 +1,36 @@
|
|||
from datetime import datetime
|
||||
from zoneinfo import ZoneInfo
|
||||
|
||||
from aurweb import filters
|
||||
|
||||
|
||||
def test_timestamp_to_datetime():
|
||||
ts = datetime.utcnow().timestamp()
|
||||
dt = datetime.utcfromtimestamp(int(ts))
|
||||
assert filters.timestamp_to_datetime(ts) == dt
|
||||
|
||||
|
||||
def test_as_timezone():
|
||||
ts = datetime.utcnow().timestamp()
|
||||
dt = filters.timestamp_to_datetime(ts)
|
||||
assert filters.as_timezone(dt, "UTC") == dt.astimezone(tz=ZoneInfo("UTC"))
|
||||
|
||||
|
||||
def test_number_format():
|
||||
assert filters.number_format(0.222, 2) == "0.22"
|
||||
assert filters.number_format(0.226, 2) == "0.23"
|
||||
|
||||
|
||||
def test_extend_query():
|
||||
""" Test extension of a query via extend_query. """
|
||||
query = {"a": "b"}
|
||||
extended = filters.extend_query(query, ("a", "c"), ("b", "d"))
|
||||
assert extended.get("a") == "c"
|
||||
assert extended.get("b") == "d"
|
||||
|
||||
|
||||
def test_to_qs():
|
||||
""" Test conversion from a query dictionary to a query string. """
|
||||
query = {"a": "b", "c": [1, 2, 3]}
|
||||
qs = filters.to_qs(query)
|
||||
assert qs == "a=b&c=1&c=2&c=3"
|
|
@ -1,5 +1,5 @@
|
|||
""" Test our l10n module. """
|
||||
from aurweb import l10n
|
||||
from aurweb import filters, l10n
|
||||
from aurweb.testing.requests import Request
|
||||
|
||||
|
||||
|
@ -43,8 +43,10 @@ def test_tn_filter():
|
|||
request.cookies["AURLANG"] = "en"
|
||||
context = {"language": "en", "request": request}
|
||||
|
||||
translated = l10n.tn(context, 1, "%d package found.", "%d packages found.")
|
||||
translated = filters.tn(context, 1, "%d package found.",
|
||||
"%d packages found.")
|
||||
assert translated == "%d package found."
|
||||
|
||||
translated = l10n.tn(context, 2, "%d package found.", "%d packages found.")
|
||||
translated = filters.tn(context, 2, "%d package found.",
|
||||
"%d packages found.")
|
||||
assert translated == "%d packages found."
|
||||
|
|
|
@ -8,6 +8,8 @@ import pytest
|
|||
import aurweb.filters # noqa: F401
|
||||
|
||||
from aurweb import config, db, templates
|
||||
from aurweb.filters import as_timezone, number_format
|
||||
from aurweb.filters import timestamp_to_datetime as to_dt
|
||||
from aurweb.models import Package, PackageBase, User
|
||||
from aurweb.models.account_type import USER_ID
|
||||
from aurweb.models.license import License
|
||||
|
@ -17,8 +19,6 @@ from aurweb.models.relation_type import PROVIDES_ID, REPLACES_ID
|
|||
from aurweb.templates import base_template, make_context, register_filter, register_function
|
||||
from aurweb.testing.html import parse_root
|
||||
from aurweb.testing.requests import Request
|
||||
from aurweb.util import as_timezone, number_format
|
||||
from aurweb.util import timestamp_to_datetime as to_dt
|
||||
|
||||
GIT_CLONE_URI_ANON = "anon_%s"
|
||||
GIT_CLONE_URI_PRIV = "priv_%s"
|
||||
|
@ -79,15 +79,6 @@ def create_license(pkg: Package, license_name: str) -> PackageLicense:
|
|||
return pkglic
|
||||
|
||||
|
||||
def test_register_filter_exists_key_error():
|
||||
""" Most instances of register_filter are tested through module
|
||||
imports or template renders, so we only test failures here. """
|
||||
with pytest.raises(KeyError):
|
||||
@register_filter("func")
|
||||
def some_func():
|
||||
pass
|
||||
|
||||
|
||||
def test_register_function_exists_key_error():
|
||||
""" Most instances of register_filter are tested through module
|
||||
imports or template renders, so we only test failures here. """
|
||||
|
|
|
@ -10,7 +10,7 @@ import pytest
|
|||
|
||||
from fastapi.testclient import TestClient
|
||||
|
||||
from aurweb import config, db, util
|
||||
from aurweb import config, db, filters
|
||||
from aurweb.models.account_type import DEVELOPER_ID, AccountType
|
||||
from aurweb.models.tu_vote import TUVote
|
||||
from aurweb.models.tu_voteinfo import TUVoteInfo
|
||||
|
@ -130,7 +130,7 @@ def test_tu_index_guest(client):
|
|||
response = request.get("/tu", allow_redirects=False, headers=headers)
|
||||
assert response.status_code == int(HTTPStatus.SEE_OTHER)
|
||||
|
||||
params = util.urlencode({"next": "/tu"})
|
||||
params = filters.urlencode({"next": "/tu"})
|
||||
assert response.headers.get("location") == f"/login?{params}"
|
||||
|
||||
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
import json
|
||||
|
||||
from datetime import datetime
|
||||
from http import HTTPStatus
|
||||
from zoneinfo import ZoneInfo
|
||||
|
||||
import fastapi
|
||||
import pytest
|
||||
|
@ -13,38 +11,6 @@ from aurweb import filters, util
|
|||
from aurweb.testing.requests import Request
|
||||
|
||||
|
||||
def test_timestamp_to_datetime():
|
||||
ts = datetime.utcnow().timestamp()
|
||||
dt = datetime.utcfromtimestamp(int(ts))
|
||||
assert util.timestamp_to_datetime(ts) == dt
|
||||
|
||||
|
||||
def test_as_timezone():
|
||||
ts = datetime.utcnow().timestamp()
|
||||
dt = util.timestamp_to_datetime(ts)
|
||||
assert util.as_timezone(dt, "UTC") == dt.astimezone(tz=ZoneInfo("UTC"))
|
||||
|
||||
|
||||
def test_number_format():
|
||||
assert util.number_format(0.222, 2) == "0.22"
|
||||
assert util.number_format(0.226, 2) == "0.23"
|
||||
|
||||
|
||||
def test_extend_query():
|
||||
""" Test extension of a query via extend_query. """
|
||||
query = {"a": "b"}
|
||||
extended = util.extend_query(query, ("a", "c"), ("b", "d"))
|
||||
assert extended.get("a") == "c"
|
||||
assert extended.get("b") == "d"
|
||||
|
||||
|
||||
def test_to_qs():
|
||||
""" Test conversion from a query dictionary to a query string. """
|
||||
query = {"a": "b", "c": [1, 2, 3]}
|
||||
qs = util.to_qs(query)
|
||||
assert qs == "a=b&c=1&c=2&c=3"
|
||||
|
||||
|
||||
def test_round():
|
||||
assert filters.do_round(1.3) == 1
|
||||
assert filters.do_round(1.5) == 2
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue