mirror of
https://gitlab.archlinux.org/archlinux/aurweb.git
synced 2025-02-03 10:43:03 +01:00
Introduces `aurweb.defaults` and `aurweb.filters`. `aurweb.filters` is a location developers can put their additional Jinja2 filters and/or functions. We should slowly move all of our filters over here, where it makes sense. `aurweb.defaults` is a new module which hosts some default constants and utility functions, starting with offsets (O) and per page values (PP). As far as the new GET /requests is concerned, we match up here to PHP's implementation, with some minor improvements: Improvements: * PP on this page is now configurable: 50 (default), 100, or 250. * Example: `https://localhost:8444/requests?PP=250` Modifications: * The pagination is a bit different, but serves the exact same purpose. * "Last" no longer goes to an empty page. * Closes: https://gitlab.archlinux.org/archlinux/aurweb/-/issues/14 Signed-off-by: Kevin Morris <kevr@0cost.org>
42 lines
1.1 KiB
Python
42 lines
1.1 KiB
Python
from datetime import datetime
|
|
from zoneinfo import ZoneInfo
|
|
|
|
from aurweb import filters, util
|
|
|
|
|
|
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
|
|
assert filters.do_round(2.0) == 2
|