From 2b078267f88793e01c928432ea8cb774bd4b50f4 Mon Sep 17 00:00:00 2001 From: misanram Date: Thu, 2 Apr 2026 18:17:34 +0100 Subject: [PATCH] =?UTF-8?q?fix:=20Corregido=20el=20c=C3=A1lculo=20del=20ti?= =?UTF-8?q?empo=20pra=20el=20comando=20/status?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dev-requirements.txt | 1 + test/test_utils.py | 34 ++++++++++++++++++---------------- utils.py | 20 +++++++------------- 3 files changed, 26 insertions(+), 29 deletions(-) diff --git a/dev-requirements.txt b/dev-requirements.txt index a52c693..5670a2e 100644 --- a/dev-requirements.txt +++ b/dev-requirements.txt @@ -1,3 +1,4 @@ ruff rope pytest +freezegun diff --git a/test/test_utils.py b/test/test_utils.py index 027ab54..54d7450 100644 --- a/test/test_utils.py +++ b/test/test_utils.py @@ -4,55 +4,57 @@ import datetime import pytest +from freezegun import freeze_time + import utils +@freeze_time("2019-05-16 13:35:16") def test_since_second(): ref = datetime.datetime(2019, 5, 16, 13, 35, 15) - now = datetime.datetime(2019, 5, 16, 13, 35, 16) - assert utils.since(now, ref) == '1 second' + assert utils.since(ref) == "1 second" +@freeze_time("2019-05-16 13:35:21") def test_since_seconds(): ref = datetime.datetime(2019, 5, 16, 13, 35, 15) - now = datetime.datetime(2019, 5, 16, 13, 35, 21) - assert utils.since(now, ref) == '6 seconds' + assert utils.since(ref) == "6 seconds" +@freeze_time("2019-05-16 13:36:21") def test_since_minute_and_seconds(): ref = datetime.datetime(2019, 5, 16, 13, 35, 15) - now = datetime.datetime(2019, 5, 16, 13, 36, 21) - assert utils.since(now, ref) == '1 minute 6 seconds' + assert utils.since(ref) == "1 minute 6 seconds" +@freeze_time("2019-05-16 13:37:21") def test_since_minutes_and_seconds(): ref = datetime.datetime(2019, 5, 16, 13, 35, 15) - now = datetime.datetime(2019, 5, 16, 13, 37, 21) - assert utils.since(now, ref) == '2 minutes 6 seconds' + assert utils.since(ref) == "2 minutes 6 seconds" +@freeze_time("2019-05-16 14:37:21") def test_since_hour_and_minutes_and_seconds(): ref = datetime.datetime(2019, 5, 16, 13, 35, 15) - now = datetime.datetime(2019, 5, 16, 14, 37, 21) - assert utils.since(now, ref) == '1 hour 2 minutes 6 seconds' + assert utils.since(ref) == "1 hour 2 minutes 6 seconds" +@freeze_time("2019-05-16 15:37:21") def test_since_hours_and_minutes_and_seconds(): ref = datetime.datetime(2019, 5, 16, 13, 35, 15) - now = datetime.datetime(2019, 5, 16, 15, 37, 21) - assert utils.since(now, ref) == '2 hours 2 minutes 6 seconds' + assert utils.since(ref) == "2 hours 2 minutes 6 seconds" +@freeze_time("2019-05-17 15:37:21") def test_since_day_hours_and_minutes_and_seconds(): ref = datetime.datetime(2019, 5, 16, 13, 35, 15) - now = datetime.datetime(2019, 5, 17, 15, 37, 21) - assert utils.since(now, ref) == '1 day 2 hours 2 minutes 6 seconds' + assert utils.since(ref) == "1 day 2 hours 2 minutes 6 seconds" +@freeze_time("2019-05-19 15:37:21") def test_since_days_hours_and_minutes_and_seconds(): ref = datetime.datetime(2019, 5, 16, 13, 35, 15) - now = datetime.datetime(2019, 5, 19, 15, 37, 21) - assert utils.since(now, ref) == '3 days 2 hours 2 minutes 6 seconds' + assert utils.since(ref) == "3 days 2 hours 2 minutes 6 seconds" if __name__ == "__main__": diff --git a/utils.py b/utils.py index 018d788..15b09ed 100644 --- a/utils.py +++ b/utils.py @@ -101,21 +101,15 @@ def pluralise(number: int, singular: str, plural: Optional[str] = None) -> str: return singular if number == 1 else plural -def since(dt=None, reference=datetime.datetime.now()) -> str: +def since(reference) -> str: """Returns a textual description of time passed. - Parameters: - - - dt: datetime is the date to calculate the difference from - reference. If not used, take the value from the current - datetime. - + Parameter: - reference: datetime is the datetime used to get the difference - ir delta. If not defined, default value is since the definition - of the function, this is,since the moment the current run of the - program started. + ir delta. """ - dt = dt or datetime.datetime.now() + + dt = datetime.datetime.now() delta = dt - reference buff = [] days = delta.days @@ -125,10 +119,10 @@ def since(dt=None, reference=datetime.datetime.now()) -> str: if seconds > 3600: hours = seconds // 3600 buff.append(f"{hours} {pluralise(hours, 'hour')}") - seconds = seconds % 3600 + seconds %= 3600 minutes = seconds // 60 if minutes > 0: buff.append(f"{minutes} {pluralise(minutes, 'minute')}") - seconds = seconds % 60 + seconds %= 60 buff.append(f"{seconds} {pluralise(seconds, 'second')}") return " ".join(buff)