8000 Fix InMemoryConnector handling of queueing_lock · Develop-Python/procrastinate@81674ac · GitHub
[go: up one dir, main page]

8000
Skip to content

Commit 81674ac

Browse files
author
Éric Lemoine
committed
Fix InMemoryConnector handling of queueing_lock
1 parent a22244c commit 81674ac

File tree

2 files changed

+21
-1
lines changed

2 files changed

+21
-1
lines changed

procrastinate/testing.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ async def close_async(self) -> None:
9393
def defer_job_one(
9494
self, task_name, lock, queueing_lock, args, scheduled_at, queue
9595
) -> JobRow:
96-
if any(
96+
if queueing_lock is not None and any(
9797
job for job in self.jobs.values() if job["queueing_lock"] == queueing_lock
9898
):
9999
raise exceptions.UniqueViolation(

tests/unit/test_testing.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,26 @@ def test_defer_job_one(connector):
8484
assert connector.jobs[1] == job
8585

8686

87+
def test_defer_job_one_multiple_times(connector):
88+
connector.defer_job_one(
89+
task_name="mytask",
90+
lock=None,
91+
queueing_lock=None,
92+
args={},
93+
scheduled_at=None,
94+
queue="default",
95+
)
96+
connector.defer_job_one(
97+
task_name="mytask",
98+
lock=None,
99+
queueing_lock=None,
100+
args={},
101+
scheduled_at=None,
102+
queue="default",
103+
)
104+
assert len(connector.jobs) == 2
105+
106+
87107
def test_current_locks(connector):
88108
connector.jobs = {
89109
1: {"status": "todo", "lock": "foo"},

0 commit comments

Comments
 (0)
0