solution_challenge_backend / backend /tests /test_phase2_session.py
github-actions
Deploy to Hugging Face
c794b6b
Raw
History Blame Contribute Delete
1.84 kB
"""Phase 2 — Priority 2: session reset vs login behavior."""
import os
import sys
os.environ.setdefault("CEPHEUS_CLOUD", "1")
os.environ.setdefault("CEPHEUS_API_KEY", "test-key")
BACKEND_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
if BACKEND_DIR not in sys.path:
sys.path.insert(0, BACKEND_DIR)
import pytest
from fastapi.testclient import TestClient
import main # noqa: E402
API_HEADERS = {"X-API-Key": "test-key"}
@pytest.fixture
def client():
return TestClient(main.app)
def test_new_session_clears_tracking_not_login(client, monkeypatch):
"""Explicit session reset clears data; routine API calls do not."""
monkeypatch.setattr(main, "detections_history", [{"name": "MK", "camId": "cam-01"}])
main.vision_engine.face_results["cam-01"] = [{"name": "MK"}]
if hasattr(main.vision_engine, "browser_feeds"):
main.vision_engine.browser_feeds["cam-01"] = {"status": "ACTIVE"}
r = client.post(
"/tracking/session/reset",
headers=API_HEADERS,
json={"broadcast": False, "full_reset": True, "clear_agent_steps": True},
)
assert r.status_code == 200
assert main.detections_history == []
assert main.vision_engine.face_results.get("cam-01", []) == []
def test_global_reset_broadcast_requires_admin(client):
r = client.post(
"/tracking/session/reset",
headers=API_HEADERS,
json={"broadcast": True},
)
assert r.status_code == 403
def test_operator_can_reset_own_session_without_broadcast(client, monkeypatch):
monkeypatch.setattr(main, "detections_history", [{"name": "X"}])
r = client.post(
"/tracking/session/reset",
headers=API_HEADERS,
json={"broadcast": False, "full_reset": True},
)
assert r.status_code == 200
assert main.detections_history == []