Fix queue review findings Refs #6
This commit is contained in:
+33
-1
@@ -39,9 +39,41 @@ def test_release_stale_claims_requeues_importing_items(tmp_path):
|
||||
state.upsert_queue_item(source_type="manual", source_id="a", name="A.mkv", state="ready")
|
||||
state.claim_next_queue_item("worker-1")
|
||||
|
||||
released = state.release_stale_claims("worker-1")
|
||||
released = state.release_stale_claims()
|
||||
row = state.get_queue_item(1)
|
||||
|
||||
assert released == 1
|
||||
assert row["state"] == "retrying"
|
||||
assert row["claimed_by"] is None
|
||||
|
||||
|
||||
def test_claim_queue_item_requires_unclaimed_allowed_state(tmp_path):
|
||||
state = State(tmp_path / "state.db")
|
||||
row = state.upsert_queue_item(source_type="manual", source_id="a", name="A.mkv", state="ready")
|
||||
|
||||
claimed = state.claim_queue_item(row["id"], "worker-1", {"ready"})
|
||||
blocked = state.claim_queue_item(row["id"], "worker-2", {"ready", "importing"})
|
||||
|
||||
assert claimed is not None
|
||||
assert claimed["claimed_by"] == "worker-1"
|
||||
assert blocked is None
|
||||
|
||||
|
||||
def test_remove_missing_manual_items_keeps_terminal_rows(tmp_path):
|
||||
state = State(tmp_path / "state.db")
|
||||
state.upsert_queue_item(source_type="manual", source_id="done", name="Done.mkv", state="imported", batch_id=1)
|
||||
state.upsert_queue_item(source_type="manual", source_id="pending", name="Pending.mkv", state="ready", batch_id=1)
|
||||
|
||||
state.remove_missing_manual_items(1, set())
|
||||
|
||||
rows = {row["source_id"]: row for row in state.list_queue_items(active_only=False)}
|
||||
assert "done" in rows
|
||||
assert "pending" not in rows
|
||||
|
||||
|
||||
def test_retry_item_respects_next_retry_at(tmp_path):
|
||||
state = State(tmp_path / "state.db")
|
||||
state.upsert_queue_item(source_type="manual", source_id="a", name="A.mkv", state="ready")
|
||||
state.mark_queue_item_result("manual", "a", "retrying", "boom", increment_attempts=True, next_retry_seconds=60)
|
||||
|
||||
assert state.claim_next_queue_item("worker-1") is None
|
||||
|
||||
Reference in New Issue
Block a user