From a1bf8c8c44086f402c35a7c4f269ad9006d0fdd5 Mon Sep 17 00:00:00 2001 From: Kyle Robbertze Date: Fri, 4 Jun 2021 20:01:17 +0200 Subject: [PATCH] allow times without microseconds --- python_apps/api_clients/api_clients/utils.py | 5 ++++- python_apps/api_clients/tests/utils_test.py | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/python_apps/api_clients/api_clients/utils.py b/python_apps/api_clients/api_clients/utils.py index 0c491d36b..8b3fae687 100644 --- a/python_apps/api_clients/api_clients/utils.py +++ b/python_apps/api_clients/api_clients/utils.py @@ -198,5 +198,8 @@ def fromisoformat(time_string): only added in Python 3.7. Until LibreTime drops Python 3.6 support, this wrapper uses the old way of doing it. """ - datetime_obj = datetime.datetime.strptime(time_string, "%H:%M:%S.%f") + try: + datetime_obj = datetime.datetime.strptime(time_string, "%H:%M:%S.%f") + except ValueError: + datetime_obj = datetime.datetime.strptime(time_string, "%H:%M:%S") return datetime_obj.time() diff --git a/python_apps/api_clients/tests/utils_test.py b/python_apps/api_clients/tests/utils_test.py index 638360ebe..ab0845f55 100644 --- a/python_apps/api_clients/tests/utils_test.py +++ b/python_apps/api_clients/tests/utils_test.py @@ -51,6 +51,7 @@ def test_get_protocol_force_https(payload, use_config, values, expected): [ ("00:00:00.500000", datetime.time(microsecond=500000)), ("00:04:30.092540", datetime.time(minute=4, second=30, microsecond=92540)), + ("00:04:30", datetime.time(minute=4, second=30)), ], ) def test_fromisoformat(payload, expected):