1
1
import math
2
2
import os
3
3
import time
4
- from datetime import datetime , timedelta
4
+ from datetime import UTC , datetime , timedelta
5
5
from datetime import timezone as dt_timezone
6
6
from itertools import count
7
7
from time import monotonic
@@ -333,7 +333,7 @@ def test_entry_is_due__no_use_tz(self):
333
333
assert self .app .timezone .key == 'Europe/Berlin'
334
334
335
335
# simulate last_run_at from DB - not TZ aware but localtime
336
- right_now = datetime .utcnow ( )
336
+ right_now = datetime .now ( UTC )
337
337
338
338
m = self .create_model_crontab (
339
339
crontab (minute = '*/10' ),
@@ -364,7 +364,7 @@ def test_entry_and_model_last_run_at_with_utc_no_use_tz(self, monkeypatch):
364
364
time .tzset ()
365
365
assert self .app .timezone .key == 'Europe/Berlin'
366
366
# simulate last_run_at from DB - not TZ aware but localtime
367
- right_now = datetime .utcnow ( )
367
+ right_now = datetime .now ( UTC )
368
368
# make sure to use fixed date time
369
369
monkeypatch .setattr (self .Entry , '_default_now' , lambda o : right_now )
370
370
m = self .create_model_crontab (
@@ -398,7 +398,7 @@ def test_entry_and_model_last_run_at_when_model_changed(self, monkeypatch):
398
398
time .tzset ()
399
399
assert self .app .timezone .key == 'Europe/Berlin'
400
400
# simulate last_run_at from DB - not TZ aware but localtime
401
- right_now = datetime .utcnow ( )
401
+ right_now = datetime .now ( UTC )
402
402
# make sure to use fixed date time
403
403
monkeypatch .setattr (self .Entry , '_default_now' , lambda o : right_now )
404
404
m = self .create_model_crontab (
@@ -451,7 +451,7 @@ def test_entry_is_due__celery_timezone_doesnt_match_time_zone(self):
451
451
452
452
# simulate last_run_at all none, doing the same thing that
453
453
# _default_now() would do
454
- right_now = datetime .utcnow ( )
454
+ right_now = datetime .now ( UTC )
455
455
456
456
m = self .create_model_crontab (
457
457
crontab (minute = '*/10' ),
@@ -1678,31 +1678,6 @@ def setup_method(self):
1678
1678
def teardown_method (self ):
1679
1679
patch .stopall ()
1680
1680
1681
- @patch ("django_celery_beat.schedulers.aware_now" )
1682
- def test_server_timezone_handling_with_zoneinfo (self , mock_aware_now ):
1683
- """Test handling when server timezone
1684
- is already a ZoneInfo instance."""
1685
-
1686
- # Create a mock scheduler with only the methods we need to test
1687
- class MockScheduler :
1688
- _get_timezone_offset = (
1689
- schedulers .DatabaseScheduler ._get_timezone_offset
1690
- )
1691
-
1692
- s = MockScheduler ()
1693
-
1694
- tokyo_tz = ZoneInfo ("Asia/Tokyo" )
1695
- mock_now = datetime (2023 , 1 , 1 , 12 , 0 , 0 , tzinfo = tokyo_tz )
1696
- mock_aware_now .return_value = mock_now
1697
-
1698
- # Test with a different timezone
1699
- new_york_tz = "America/New_York"
1700
- offset = s ._get_timezone_offset (new_york_tz ) # Pass self explicitly
1701
-
1702
- # Tokyo is UTC+9, New York is UTC-5, so difference should be 14 hours
1703
- assert offset == 14
1704
- assert mock_aware_now .called
1705
-
1706
1681
@patch ("django_celery_beat.schedulers.aware_now" )
1707
1682
def test_timezone_offset_with_zoneinfo_object_param (self , mock_aware_now ):
1708
1683
"""Test handling when timezone_name parameter is a ZoneInfo object."""
@@ -1724,3 +1699,4 @@ class MockScheduler:
1724
1699
1725
1700
# Tokyo is UTC+9, New York is UTC-5, so difference should be 14 hours
1726
1701
assert offset == 14
1702
+ assert mock_aware_now .called
0 commit comments