osint-dashboard/tests/test_bg_jobs.py

56 lines
1.4 KiB
Python
Raw Normal View History

"""ffmpeg snapshots stay off the request path (asyncio.create_task)."""
from __future__ import annotations
import asyncio
import bg_jobs
def test_bg_jobs_has_no_pps_cap():
assert not any(name.endswith("_PPS_CAP") for name in dir(bg_jobs))
def test_camera_preview_has_no_public_feed_probe():
import camera_preview
assert not hasattr(camera_preview, "probe_public_feed")
assert not hasattr(camera_preview, "_http_feed_url")
def test_ingest_routes_exclude_active_discovery():
from main import app
ingest = [
getattr(r, "path", "")
for r in app.routes
if getattr(r, "path", "").startswith("/api/ingest/")
]
assert "/api/ingest/fires" in ingest
assert all("scan" not in path for path in ingest)
def test_schedule_ffmpeg_snapshot_is_a_task_not_inline(monkeypatch):
calls = {"n": 0}
async def fake_grab(url, timeout=8.0):
calls["n"] += 1
await asyncio.sleep(5)
return b"\xff\xd8fakejpeg"
monkeypatch.setattr(bg_jobs, "_ffmpeg_grab", fake_grab)
bg_jobs._ffmpeg_tasks.clear()
bg_jobs._ffmpeg_cache.clear()
async def run():
task = bg_jobs.schedule_ffmpeg_snapshot("rtsp://10.0.0.1/")
assert isinstance(task, asyncio.Task)
assert not task.done()
task.cancel()
try:
await task
except (asyncio.CancelledError, Exception):
pass
asyncio.run(run())