Skip to content

Commit 2022b76

Browse files
authored
Merge pull request #62 from dabapps/django-5
Add Django 5 and Python 3.12 to test matrix
2 parents 35b74dd + 90f48fe commit 2022b76

File tree

4 files changed

+29
-9
lines changed

4 files changed

+29
-9
lines changed

Diff for: .github/workflows/ci.yml

+11-3
Original file line numberDiff line numberDiff line change
@@ -9,21 +9,29 @@ jobs:
99

1010
strategy:
1111
matrix:
12-
python: ["3.8", "3.9", "3.10", "3.11"]
13-
django: ["3.2", "4.0", "4.1", "4.2"]
12+
python: ["3.8", "3.9", "3.10", "3.11", "3.12"]
13+
django: ["3.2", "4.0", "4.1", "4.2", "5.0"]
1414
exclude:
1515
- python: "3.11"
1616
django: "3.2"
17+
- python: "3.12"
18+
django: "3.2"
1719
- python: "3.11"
1820
django: "4.0"
21+
- python: "3.12"
22+
django: "4.0"
23+
- python: "3.8"
24+
django: "5.0"
25+
- python: "3.9"
26+
django: "5.0"
1927
database_url:
2028
- postgres://runner:password@localhost/project
2129
- mysql://root:[email protected]/project
2230
- 'sqlite:///:memory:'
2331

2432
services:
2533
postgres:
26-
image: postgres:12
34+
image: postgres
2735
ports:
2836
- 5432:5432
2937
env:

Diff for: README.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ Simple database-backed job queue. Jobs are defined in your settings, and are pro
77
Asynchronous tasks are run via a *job queue*. This system is designed to support multi-step job workflows.
88

99
Supported and tested against:
10-
- Django 3.2, 4.0, 4.1, 4.2
11-
- Python 3.8, 3.9, 3.10, 3.11
10+
- Django 3.2, 4.0, 4.1, 4.2, 5.0
11+
- Python 3.8, 3.9, 3.10, 3.11, 3.12
1212

1313
## Getting Started
1414

Diff for: django_dbq/tests.py

+14-4
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,14 @@
1313
from io import StringIO
1414

1515

16+
try:
17+
utc = timezone.utc
18+
except AttributeError:
19+
from datetime import timezone as datetime_timezone
20+
21+
utc = datetime_timezone.utc
22+
23+
1624
def test_task(job=None):
1725
pass # pragma: no cover
1826

@@ -189,7 +197,7 @@ def test_get_next_ready_job(self):
189197
Job.objects.create(name="testjob", state=Job.STATES.READY)
190198
Job.objects.create(name="testjob", state=Job.STATES.PROCESSING)
191199
expected = Job.objects.create(name="testjob", state=Job.STATES.READY)
192-
expected.created = datetime.now() - timedelta(minutes=1)
200+
expected.created = timezone.now() - timedelta(minutes=1)
193201
expected.save()
194202

195203
self.assertEqual(Job.objects.get_ready_or_none("default"), expected)
@@ -231,7 +239,9 @@ def test_gets_jobs_in_priority_and_date_order(self):
231239

232240
def test_ignores_jobs_until_run_after_is_in_the_past(self):
233241
job_1 = Job.objects.create(name="testjob")
234-
job_2 = Job.objects.create(name="testjob", run_after=datetime(2021, 11, 4, 8))
242+
job_2 = Job.objects.create(
243+
name="testjob", run_after=datetime(2021, 11, 4, 8, tzinfo=utc)
244+
)
235245

236246
with freezegun.freeze_time(datetime(2021, 11, 4, 7)):
237247
self.assertEqual(
@@ -256,7 +266,7 @@ def test_get_next_ready_job_created(self):
256266
Job.objects.create(name="testjob", state=Job.STATES.NEW)
257267
Job.objects.create(name="testjob", state=Job.STATES.PROCESSING)
258268
expected = Job.objects.create(name="testjob", state=Job.STATES.NEW)
259-
expected.created = datetime.now() - timedelta(minutes=1)
269+
expected.created = timezone.now() - timedelta(minutes=1)
260270
expected.save()
261271

262272
self.assertEqual(Job.objects.get_ready_or_none("default"), expected)
@@ -336,7 +346,7 @@ def test_failure_hook(self):
336346
@override_settings(JOBS={"testjob": {"tasks": ["a"]}})
337347
class DeleteOldJobsTestCase(TestCase):
338348
def test_delete_old_jobs(self):
339-
two_days_ago = datetime.utcnow() - timedelta(days=2)
349+
two_days_ago = timezone.now() - timedelta(days=2)
340350

341351
j1 = Job.objects.create(name="testjob", state=Job.STATES.COMPLETE)
342352
j1.created = two_days_ago

Diff for: testsettings.py

+2
Original file line numberDiff line numberDiff line change
@@ -19,3 +19,5 @@
1919
"root": {"handlers": ["console"], "level": "INFO",},
2020
"loggers": {"django_dbq": {"level": "CRITICAL", "propagate": True,},},
2121
}
22+
23+
USE_TZ = True

0 commit comments

Comments
 (0)