Skip to content

Commit d1a3475

Browse files
author
Nicolas Steinmetz
committed
fix: python 3.9 & 3.10 compatibility
1 parent 037b662 commit d1a3475

File tree

4 files changed

+20
-19
lines changed

4 files changed

+20
-19
lines changed

arq/utils.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
import logging
33
import os
44
from collections.abc import AsyncGenerator, Sequence
5-
from datetime import UTC, datetime, timedelta
5+
from datetime import datetime, timedelta, timezone
66
from functools import lru_cache
77
from time import time
88
from typing import TYPE_CHECKING, Any, Optional, overload
@@ -53,7 +53,7 @@ def ms_to_datetime(unix_ms: int) -> datetime:
5353
"""
5454
convert milliseconds to datetime, use the timezone in os.environ
5555
"""
56-
dt = datetime.fromtimestamp(unix_ms / 1000, tz=UTC)
56+
dt = datetime.fromtimestamp(unix_ms / 1000, tz=timezone.utc)
5757
tz = get_tz()
5858
if tz:
5959
dt = dt.astimezone(tz)

tests/test_jobs.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import asyncio
22
import pickle
3-
from datetime import UTC
3+
from datetime import timezone
44

55
import pytest
66
from dirty_equals import IsNow, IsStr
@@ -83,11 +83,11 @@ async def foobar(ctx, *args, **kwargs):
8383
function='foobar',
8484
args=(1, 2),
8585
kwargs={'c': 3},
86-
enqueue_time=IsNow(tz=UTC),
86+
enqueue_time=IsNow(tz=timezone.utc),
8787
success=True,
8888
result=42,
89-
start_time=IsNow(tz=UTC),
90-
finish_time=IsNow(tz=UTC),
89+
start_time=IsNow(tz=timezone.utc),
90+
finish_time=IsNow(tz=timezone.utc),
9191
score=None,
9292
queue_name=expected_queue_name,
9393
job_id=IsStr(),
@@ -99,11 +99,11 @@ async def foobar(ctx, *args, **kwargs):
9999
args=(1, 2),
100100
kwargs={'c': 3},
101101
job_try=1,
102-
enqueue_time=IsNow(tz=UTC),
102+
enqueue_time=IsNow(tz=timezone.utc),
103103
success=True,
104104
result=42,
105-
start_time=IsNow(tz=UTC),
106-
finish_time=IsNow(tz=UTC),
105+
start_time=IsNow(tz=timezone.utc),
106+
finish_time=IsNow(tz=timezone.utc),
107107
score=None,
108108
queue_name=expected_queue_name,
109109
job_id=j.job_id,

tests/test_main.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import functools
44
import logging
55
from collections import Counter
6-
from datetime import UTC, datetime
6+
from datetime import datetime, timezone
77
from random import shuffle
88
from time import time
99

@@ -134,7 +134,7 @@ async def test_job_info(arq_redis: ArqRedis):
134134
t_before = time()
135135
j = await arq_redis.enqueue_job('foobar', 123, a=456)
136136
info = await j.info()
137-
assert info.enqueue_time == IsNow(tz=UTC)
137+
assert info.enqueue_time == IsNow(tz=timezone.utc)
138138
assert info.job_try is None
139139
assert info.function == 'foobar'
140140
assert info.args == (123,)
@@ -150,7 +150,7 @@ async def test_repeat_job(arq_redis: ArqRedis):
150150

151151

152152
async def test_defer_until(arq_redis: ArqRedis):
153-
j1 = await arq_redis.enqueue_job('foobar', _job_id='job_id', _defer_until=datetime(2032, 1, 1, tzinfo=UTC))
153+
j1 = await arq_redis.enqueue_job('foobar', _job_id='job_id', _defer_until=datetime(2032, 1, 1, tzinfo=timezone.utc))
154154
assert isinstance(j1, Job)
155155
score = await arq_redis.zscore(default_queue_name, 'job_id')
156156
assert score == 1_956_528_000_000
@@ -254,7 +254,7 @@ async def test_get_jobs(arq_redis: ArqRedis):
254254
'args': (),
255255
'kwargs': {'a': 1, 'b': 2, 'c': 3},
256256
'job_try': None,
257-
'enqueue_time': IsNow(tz=UTC),
257+
'enqueue_time': IsNow(tz=timezone.utc),
258258
'score': IsInt(),
259259
'job_id': '1',
260260
},
@@ -263,7 +263,7 @@ async def test_get_jobs(arq_redis: ArqRedis):
263263
'args': (4,),
264264
'kwargs': {'b': 5, 'c': 6},
265265
'job_try': None,
266-
'enqueue_time': IsNow(tz=UTC),
266+
'enqueue_time': IsNow(tz=timezone.utc),
267267
'score': IsInt(),
268268
'job_id': '2',
269269
},
@@ -272,7 +272,7 @@ async def test_get_jobs(arq_redis: ArqRedis):
272272
'args': (7,),
273273
'kwargs': {'b': 8},
274274
'job_try': None,
275-
'enqueue_time': IsNow(tz=UTC),
275+
'enqueue_time': IsNow(tz=timezone.utc),
276276
'score': IsInt(),
277277
'job_id': '3',
278278
},

tests/test_worker.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,11 @@
44
import re
55
import signal
66
import sys
7-
from datetime import UTC, datetime, timedelta
8-
from unittest.mock import MagicMock, patch
7+
from datetime import datetime, timedelta, timezone
8+
from unittest.mock import MagicMock
99

1010
import msgpack
1111
import pytest
12-
import redis.exceptions
1312

1413
from arq.connections import ArqRedis, RedisSettings
1514
from arq.constants import abort_jobs_ss, default_queue_name, expires_extra_ms, health_check_key_suffix, job_key_prefix
@@ -919,7 +918,9 @@ async def longfunc(ctx):
919918

920919
caplog.set_level(logging.INFO)
921920

922-
job = await arq_redis.enqueue_job('longfunc', _job_id='testing', _defer_until=datetime.now(UTC) + timedelta(days=1))
921+
job = await arq_redis.enqueue_job(
922+
'longfunc', _job_id='testing', _defer_until=datetime.now(timezone.utc) + timedelta(days=1)
923+
)
923924

924925
worker: Worker = worker(functions=[func(longfunc, name='longfunc')], allow_abort_jobs=True, poll_delay=0.1)
925926
assert worker.jobs_complete == 0

0 commit comments

Comments
 (0)