From 066923b4357a4663c422e834a393a28e28f3bc42 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Thu, 29 Feb 2024 21:26:49 +0100 Subject: [PATCH 1/3] Replace inline date with FROZEN_DATE constant in test_time --- tests/test_time.py | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/tests/test_time.py b/tests/test_time.py index 1a20f8c..0630806 100644 --- a/tests/test_time.py +++ b/tests/test_time.py @@ -24,7 +24,8 @@ ONE_DAY = 24 * ONE_HOUR ONE_YEAR = 365.25 * ONE_DAY -with freeze_time("2020-02-02"): +FROZEN_DATE = "2020-02-02" +with freeze_time(FROZEN_DATE): NOW = dt.datetime.now() NOW_UTC = dt.datetime.now(tz=dt.timezone.utc) NOW_UTC_PLUS_01_00 = dt.datetime.now(tz=dt.timezone(offset=dt.timedelta(hours=1))) @@ -134,7 +135,7 @@ def test_naturaldelta(test_input: float | dt.timedelta, expected: str) -> None: assert humanize.naturaldelta(-test_input) == expected -@freeze_time("2020-02-02") +@freeze_time(FROZEN_DATE) @pytest.mark.parametrize( "test_input, expected", [ @@ -173,7 +174,7 @@ def test_naturaltime(test_input: dt.datetime, expected: str) -> None: assert humanize.naturaltime(test_input) == expected -@freeze_time("2020-02-02") +@freeze_time(FROZEN_DATE) @pytest.mark.parametrize( "test_input, expected", [ @@ -214,7 +215,7 @@ def test_naturaltime_nomonths(test_input: dt.datetime, expected: str) -> None: assert humanize.naturaltime(test_input, months=False) == expected -@freeze_time("2020-02-02") +@freeze_time(FROZEN_DATE) @pytest.mark.parametrize( "test_args, expected", [ @@ -234,7 +235,7 @@ def test_naturalday(test_args: list[typing.Any], expected: str) -> None: assert humanize.naturalday(*test_args) == expected -@freeze_time("2020-02-02") +@freeze_time(FROZEN_DATE) @pytest.mark.parametrize( "test_input, expected", [ @@ -346,7 +347,7 @@ def test_naturaldelta_minimum_unit_explicit( assert humanize.naturaldelta(seconds, minimum_unit=minimum_unit) == expected -@freeze_time("2020-02-02") +@freeze_time(FROZEN_DATE) @pytest.mark.parametrize( "seconds, expected", [ @@ -369,7 +370,7 @@ def test_naturaltime_minimum_unit_default(seconds: float, expected: str) -> None assert humanize.naturaltime(datetime) == expected -@freeze_time("2020-02-02") +@freeze_time(FROZEN_DATE) @pytest.mark.parametrize( "minimum_unit, seconds, expected", [ @@ -415,7 +416,7 @@ def test_naturaltime_minimum_unit_explicit( assert humanize.naturaltime(datetime, minimum_unit=minimum_unit) == expected -@freeze_time("2020-02-02") +@freeze_time(FROZEN_DATE) @pytest.mark.parametrize( "test_input, expected", [ @@ -449,7 +450,7 @@ def test_naturaltime_timezone(test_input: dt.datetime, expected: str) -> None: assert humanize.naturaltime(test_input) == expected -@freeze_time("2020-02-02") +@freeze_time(FROZEN_DATE) @pytest.mark.parametrize( "test_input, expected", [ From 14d9ba9443e26a872c30afcedfae036456cf5010 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Thu, 29 Feb 2024 21:29:38 +0100 Subject: [PATCH 2/3] Move base date in test_time 10 years back to fix Y2k38 issues Change the frozen date in test_time from 2020 to 2010, in order to fix overflow when processing "27 years from now" date on systems with 32-bit time_t. Since the date is arbitrary and frozen anyway, this seems to be the cleanest solution to keep the test suite working portably. Fixes #176 --- tests/test_time.py | 52 +++++++++++++++++++++++----------------------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/tests/test_time.py b/tests/test_time.py index 0630806..56cf7c4 100644 --- a/tests/test_time.py +++ b/tests/test_time.py @@ -24,7 +24,7 @@ ONE_DAY = 24 * ONE_HOUR ONE_YEAR = 365.25 * ONE_DAY -FROZEN_DATE = "2020-02-02" +FROZEN_DATE = "2010-02-02" with freeze_time(FROZEN_DATE): NOW = dt.datetime.now() NOW_UTC = dt.datetime.now(tz=dt.timezone.utc) @@ -248,31 +248,31 @@ def test_naturalday(test_args: list[typing.Any], expected: str) -> None: ("Not a date at all.", "Not a date at all."), (VALUE_ERROR_TEST, str(VALUE_ERROR_TEST)), (OVERFLOW_ERROR_TEST, str(OVERFLOW_ERROR_TEST)), - (dt.date(2019, 2, 2), "Feb 02 2019"), - (dt.date(2019, 3, 2), "Mar 02 2019"), - (dt.date(2019, 4, 2), "Apr 02 2019"), - (dt.date(2019, 5, 2), "May 02 2019"), - (dt.date(2019, 6, 2), "Jun 02 2019"), - (dt.date(2019, 7, 2), "Jul 02 2019"), - (dt.date(2019, 8, 2), "Aug 02 2019"), - (dt.date(2019, 9, 2), "Sep 02 2019"), - (dt.date(2019, 10, 2), "Oct 02"), - (dt.date(2019, 11, 2), "Nov 02"), - (dt.date(2019, 12, 2), "Dec 02"), - (dt.date(2020, 1, 2), "Jan 02"), - (dt.date(2020, 2, 2), "today"), - (dt.date(2020, 3, 2), "Mar 02"), - (dt.date(2020, 4, 2), "Apr 02"), - (dt.date(2020, 5, 2), "May 02"), - (dt.date(2020, 6, 2), "Jun 02"), - (dt.date(2020, 7, 2), "Jul 02"), - (dt.date(2020, 8, 2), "Aug 02 2020"), - (dt.date(2020, 9, 2), "Sep 02 2020"), - (dt.date(2020, 10, 2), "Oct 02 2020"), - (dt.date(2020, 11, 2), "Nov 02 2020"), - (dt.date(2020, 12, 2), "Dec 02 2020"), - (dt.date(2021, 1, 2), "Jan 02 2021"), - (dt.date(2021, 2, 2), "Feb 02 2021"), + (dt.date(2009, 2, 2), "Feb 02 2009"), + (dt.date(2009, 3, 2), "Mar 02 2009"), + (dt.date(2009, 4, 2), "Apr 02 2009"), + (dt.date(2009, 5, 2), "May 02 2009"), + (dt.date(2009, 6, 2), "Jun 02 2009"), + (dt.date(2009, 7, 2), "Jul 02 2009"), + (dt.date(2009, 8, 2), "Aug 02 2009"), + (dt.date(2009, 9, 2), "Sep 02 2009"), + (dt.date(2009, 10, 2), "Oct 02"), + (dt.date(2009, 11, 2), "Nov 02"), + (dt.date(2009, 12, 2), "Dec 02"), + (dt.date(2010, 1, 2), "Jan 02"), + (dt.date(2010, 2, 2), "today"), + (dt.date(2010, 3, 2), "Mar 02"), + (dt.date(2010, 4, 2), "Apr 02"), + (dt.date(2010, 5, 2), "May 02"), + (dt.date(2010, 6, 2), "Jun 02"), + (dt.date(2010, 7, 2), "Jul 02"), + (dt.date(2010, 8, 2), "Aug 02 2010"), + (dt.date(2010, 9, 2), "Sep 02 2010"), + (dt.date(2010, 10, 2), "Oct 02 2010"), + (dt.date(2010, 11, 2), "Nov 02 2010"), + (dt.date(2010, 12, 2), "Dec 02 2010"), + (dt.date(2011, 1, 2), "Jan 02 2011"), + (dt.date(2011, 2, 2), "Feb 02 2011"), ], ) def test_naturaldate(test_input: dt.date, expected: str) -> None: From 2858f21bb7897896eb5ca0a39a95d13c703baabb Mon Sep 17 00:00:00 2001 From: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com> Date: Fri, 1 Mar 2024 08:30:32 +0200 Subject: [PATCH 3/3] Apply suggestions from code review --- tests/test_time.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_time.py b/tests/test_time.py index 56cf7c4..a490d1c 100644 --- a/tests/test_time.py +++ b/tests/test_time.py @@ -23,8 +23,8 @@ ONE_HOUR = 3600 ONE_DAY = 24 * ONE_HOUR ONE_YEAR = 365.25 * ONE_DAY - FROZEN_DATE = "2010-02-02" + with freeze_time(FROZEN_DATE): NOW = dt.datetime.now() NOW_UTC = dt.datetime.now(tz=dt.timezone.utc)