From ac67268a28f02dcdc2fb765c6bd6d76555e0056a Mon Sep 17 00:00:00 2001 From: Kevin Morris Date: Fri, 18 Jun 2021 16:49:41 -0700 Subject: [PATCH] add util.timezone_to_datetime -> `dt` Jinja2 filter Signed-off-by: Kevin Morris --- aurweb/templates.py | 3 +++ aurweb/util.py | 4 ++++ test/test_util.py | 9 +++++++++ 3 files changed, 16 insertions(+) create mode 100644 test/test_util.py diff --git a/aurweb/templates.py b/aurweb/templates.py index 7474da1c..8c6f3294 100644 --- a/aurweb/templates.py +++ b/aurweb/templates.py @@ -23,6 +23,9 @@ env = jinja2.Environment(loader=loader, autoescape=True, # Add tr translation filter. env.filters["tr"] = l10n.tr +# Utility filters. +env.filters["dt"] = util.timestamp_to_datetime + # Add captcha filters. env.filters["captcha_salt"] = captcha.captcha_salt_filter env.filters["captcha_cmdline"] = captcha.captcha_cmdline_filter diff --git a/aurweb/util.py b/aurweb/util.py index ad8ac6b7..ce18853b 100644 --- a/aurweb/util.py +++ b/aurweb/util.py @@ -97,6 +97,10 @@ def account_url(context, user): return f"{base}/account/{user.Username}" +def timestamp_to_datetime(timestamp: int): + return datetime.utcfromtimestamp(int(timestamp)) + + def jsonify(obj): """ Perform a conversion on obj if it's needed. """ if isinstance(obj, datetime): diff --git a/test/test_util.py b/test/test_util.py new file mode 100644 index 00000000..cd7b7a57 --- /dev/null +++ b/test/test_util.py @@ -0,0 +1,9 @@ +from datetime import datetime + +from aurweb import util + + +def test_timestamp_to_datetime(): + ts = datetime.utcnow().timestamp() + dt = datetime.utcfromtimestamp(int(ts)) + assert util.timestamp_to_datetime(ts) == dt