From c072c3c0cfbc7f794a060e26b73aa17a332ec19a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89loi=20Rivard?= Date: Fri, 18 Sep 2026 08:47:41 +0200 Subject: [PATCH] fix: utcnow deprecation in tests --- pyproject.toml | 6 ++++++ test/test_faketime.py | 11 +++++++++++ test/test_tz.py | 9 +++++++-- 3 files changed, 24 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 572784e..6d24c6c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,3 +1,9 @@ +[tool.pytest.ini_options] +filterwarnings = [ + # utcnow() is still covered on purpose: it remains supported and used + "ignore:datetime.datetime.utcnow:DeprecationWarning", +] + [tool.ruff.lint] select = [ "D", # pydocstyle diff --git a/test/test_faketime.py b/test/test_faketime.py index a2f2599..3c6d88b 100644 --- a/test/test_faketime.py +++ b/test/test_faketime.py @@ -10,6 +10,8 @@ from libfaketime import fake_time from libfaketime import freeze_time +UTC = datetime.timezone.utc + class TestReexec: @patch("os.execve") @@ -50,15 +52,24 @@ def test_fake_time_is_static(self): def test_fake_time_parses_easy_strings(self): assert datetime.datetime(2000, 1, 1, 10, 0, 5) == datetime.datetime.now() assert datetime.datetime(2000, 1, 1, 10, 0, 5) == datetime.datetime.utcnow() + assert datetime.datetime( + 2000, 1, 1, 10, 0, 5, tzinfo=UTC + ) == datetime.datetime.now(UTC) def test_fake_time_parses_easy_strings_with_timezones(self): with fake_time("2000-01-01 10:00:05", tz_offset=3): assert datetime.datetime(2000, 1, 1, 13, 0, 5) == datetime.datetime.now() assert datetime.datetime(2000, 1, 1, 10, 0, 5) == datetime.datetime.utcnow() + assert datetime.datetime( + 2000, 1, 1, 10, 0, 5, tzinfo=UTC + ) == datetime.datetime.now(UTC) with fake_time("2000-01-01 10:00:05", tz_offset=-3): assert datetime.datetime(2000, 1, 1, 7, 0, 5) == datetime.datetime.now() assert datetime.datetime(2000, 1, 1, 10, 0, 5) == datetime.datetime.utcnow() + assert datetime.datetime( + 2000, 1, 1, 10, 0, 5, tzinfo=UTC + ) == datetime.datetime.now(UTC) @fake_time("march 1st, 2014 at 1:59pm") def test_fake_time_parses_tough_strings(self): diff --git a/test/test_tz.py b/test/test_tz.py index c418d7f..3648dea 100644 --- a/test/test_tz.py +++ b/test/test_tz.py @@ -7,6 +7,8 @@ from libfaketime import fake_time +UTC = datetime.timezone.utc + def test_timezone_is_restored_after_context_manager_usage(): """Check that timezones are restored when faketime context manager are closed. @@ -14,13 +16,13 @@ def test_timezone_is_restored_after_context_manager_usage(): https://github.com/simon-weber/python-libfaketime/issues/43 """ now1 = datetime.datetime.now() - utcnow1 = datetime.datetime.utcnow() + utcnow1 = datetime.datetime.now(UTC) with fake_time(now1): datetime.datetime.now() now2 = datetime.datetime.now() - utcnow2 = datetime.datetime.utcnow() + utcnow2 = datetime.datetime.now(UTC) assert abs((now2 - now1).total_seconds()) < 10 assert abs((utcnow2 - utcnow1).total_seconds()) < 10 @@ -37,6 +39,9 @@ def test_tzinfo_is_normalized(): # The timeshift of Europe/Brussels is UTC+1 in January assert datetime.datetime.now() == datetime.datetime(2017, 1, 2, 15, 2) assert datetime.datetime.utcnow() == datetime.datetime(2017, 1, 2, 14, 2) + assert datetime.datetime.now(UTC) == datetime.datetime( + 2017, 1, 2, 14, 2, tzinfo=UTC + ) def test_block_setting_of_conflicting_tz_info():