feat: add video reuse — re-analyze previous uploads without re-uploading
This commit is contained in:
1 parent
a75db4ca49
commit
f779f05190
7 files changed
+453
-62
No files matched your search
@@ -67,3 +67,43 @@ def test_api_job_detail_nonexistent(client):
|
||||
"""GET /api/jobs/nonexistent returns 404."""
|
||||
resp = client.get("/api/jobs/nonexistent")
|
||||
assert resp.status_code == 404
|
||||
|
||||
|
||||
def test_cancel_nonexistent_job(client):
|
||||
"""POST /api/jobs/nonexistent/cancel returns 404."""
|
||||
resp = client.post("/api/jobs/nonexistent/cancel")
|
||||
assert resp.status_code == 404
|
||||
data = resp.get_json()
|
||||
assert data["error"] == "not found"
|
||||
|
||||
|
||||
def test_cancel_completed_job(client):
|
||||
"""POST /api/jobs/<id>/cancel returns 400 for completed job."""
|
||||
from src.job import JobQueue, Job, JobStatus
|
||||
from app import job_queue
|
||||
job = job_queue.add_job(video_path="/tmp/test.mp4", model_configs=[])
|
||||
import time
|
||||
time.sleep(0.3)
|
||||
# Force status to COMPLETED
|
||||
with job_queue._lock:
|
||||
job.status = JobStatus.COMPLETED
|
||||
resp = client.post(f"/api/jobs/{job.job_id}/cancel")
|
||||
assert resp.status_code == 400
|
||||
data = resp.get_json()
|
||||
assert "cannot cancel" in data["error"]
|
||||
|
||||
|
||||
def test_cancel_pending_or_running_job(client):
|
||||
"""POST /api/jobs/<id>/cancel returns 200 for cancellable job."""
|
||||
from src.job import JobQueue, JobStatus
|
||||
from app import job_queue
|
||||
job = job_queue.add_job(video_path="/tmp/test.mp4", model_configs=[])
|
||||
import time
|
||||
time.sleep(0.1)
|
||||
resp = client.post(f"/api/jobs/{job.job_id}/cancel")
|
||||
assert resp.status_code == 200
|
||||
data = resp.get_json()
|
||||
assert data["status"] == "cancelled"
|
||||
# Verify job is now CANCELLED
|
||||
fetched = job_queue.get_job(job.job_id)
|
||||
assert fetched.status == JobStatus.CANCELLED
|
||||
Reference in new issue
Block a user