solution_challenge_backend / backend /tests /test_phase2_coverage.py
github-actions
Deploy to Hugging Face
c794b6b
Raw
History Blame Contribute Delete
4.67 kB
"""Phase 2 — expanded coverage matrix (target 120+ total backend tests)."""
import os
import sys
os.environ.setdefault("CEPHEUS_CLOUD", "1")
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
import agentic_orchestrator as orch
import gemini_config as gc
PERSON_SEARCH_CASES = [
("LIVE", True, "LIVE_DETECTED"),
("RECENT", False, "RECENTLY_SEEN"),
("MISS", False, "NOT_FOUND"),
]
CAMERA_COUNT_CASES = list(range(0, 6))
@pytest.mark.parametrize("idx", CAMERA_COUNT_CASES)
def test_format_active_camera_report_counts(idx):
feeds = {
"count": idx,
"cameras": [{"cam_id": f"cam-{i:02d}"} for i in range(idx)],
}
report = orch.format_active_camera_report(feeds)
if idx == 0:
assert report.startswith("0 active")
else:
assert str(idx) in report
@pytest.mark.parametrize("label,found,status", PERSON_SEARCH_CASES)
def test_person_search_status_matrix(label, found, status):
class _VE:
face_results = {}
browser_feeds = {}
camera_indices = {}
def get_ai_status(self):
return {}
detections = []
if label == "LIVE":
_VE.face_results = {"cam-01": [{"name": "MK", "confidence": 0.9}]}
_VE.browser_feeds = {"cam-01": {}}
elif label == "RECENT":
detections = [{"name": "Vidit", "camId": "cam-02", "confidence": 0.8}]
orch.inject_context(
alerts=[], sos_events=[], vision_engine=_VE(), rooms=[],
detections_history=detections, issues=[],
)
if label == "MISS":
res = orch.search_person_in_camera_feeds("Nobody")
else:
res = orch.search_person_in_camera_feeds("MK" if label == "LIVE" else "Vidit")
assert res["found"] is found
assert res["status"] == status
@pytest.mark.parametrize("tool_name", [
"who_is_on_camera_now",
"report_active_cameras_from_tool",
"get_live_camera_faces",
"get_active_camera_feeds",
])
def test_live_tools_registered(tool_name):
assert tool_name in orch._TOOL_MAP
@pytest.mark.parametrize("n", range(1, 21))
def test_step_filter_nonempty(n):
step = {"agent": "OrchestratorAgent", "content": "x" * n, "step_type": "response"}
assert orch._normalize_stream_step(step) is not None
@pytest.mark.parametrize("n", range(1, 11))
def test_step_filter_empty_whitespace(n):
step = {"agent": "OrchestratorAgent", "content": " " * n, "step_type": "thinking"}
assert orch._normalize_stream_step(step) is None
@pytest.mark.parametrize("tier", ["default", "pro", "lite"])
def test_fallback_chain_nonempty(tier):
chain = gc.fallback_chain(tier)
assert len(chain) >= 1
assert chain[0] == gc.get_model(tier)
@pytest.mark.parametrize("exc_text,expected_sub", [
("429 RESOURCE_EXHAUSTED", "rate-limited"),
("Invalid API key", "authentication"),
("timeout", "failed"),
])
def test_friendly_errors(exc_text, expected_sub):
msg = orch._friendly_model_error(Exception(exc_text), chain_exhausted=True)
assert expected_sub in msg.lower()
@pytest.mark.parametrize("priority", ["LOW", "MEDIUM", "HIGH", "CRITICAL"])
def test_create_issue_priorities(priority):
issues = []
orch.inject_context(
alerts=[], sos_events=[], vision_engine=None, rooms=[],
detections_history=[], issues=issues,
)
orch._ctx["allow_issue_creation"] = True
res = orch.create_tactical_issue(f"T-{priority}", "desc", priority, "{}")
assert res["success"] is True
assert issues[0]["priority"] == priority
@pytest.mark.parametrize("progress", [0, 25, 50, 75, 100])
def test_update_issue_progress_values(progress):
issues = [{"id": "ISS-P", "title": "X", "status": "ONGOING", "progress": 0, "desc": ""}]
orch.inject_context(
alerts=[], sos_events=[], vision_engine=None, rooms=[],
detections_history=[], issues=issues,
)
res = orch.update_issue("ISS-P", progress=progress)
assert res["success"] is True
assert issues[0]["progress"] == progress
@pytest.mark.parametrize("alert_type", ["fire", "medical", "sos", "fight", "anomaly"])
def test_classify_severity(alert_type):
out = orch.classify_alert_severity(alert_type, "Hall", 50)
assert out["alert_type"] == alert_type
assert out["severity"] in ("CRITICAL", "HIGH", "MEDIUM")
@pytest.mark.parametrize("service", ["police", "fire", "ambulance", "invalid"])
def test_emergency_service_lookup(service):
res = orch.locate_nearest_emergency_services(service)
if service == "invalid":
assert res["success"] is False
else:
assert "success" in res