phase 4
This commit is contained in:
@@ -3,8 +3,8 @@
|
||||
import numpy as np
|
||||
import pytest
|
||||
|
||||
from detect.models import BoundingBox, Frame, PipelineStats, TextCandidate
|
||||
from detect.stages.vlm_cloud import escalate_cloud, _parse_response
|
||||
from core.detect.models import BoundingBox, Frame, PipelineStats, TextCandidate
|
||||
from core.detect.stages.vlm_cloud import escalate_cloud, _parse_response
|
||||
|
||||
|
||||
def _make_candidate(text: str = "unknown", confidence: float = 0.4) -> TextCandidate:
|
||||
@@ -30,14 +30,14 @@ def test_parse_response_no_confidence():
|
||||
|
||||
def test_escalate_skips_without_api_key(monkeypatch):
|
||||
events = []
|
||||
monkeypatch.setattr("detect.emit.push_detect_event",
|
||||
monkeypatch.setattr("core.detect.emit.push_detect_event",
|
||||
lambda job_id, etype, data: events.append((etype, data)))
|
||||
monkeypatch.delenv("GROQ_API_KEY", raising=False)
|
||||
monkeypatch.delenv("GEMINI_API_KEY", raising=False)
|
||||
monkeypatch.delenv("OPENAI_API_KEY", raising=False)
|
||||
monkeypatch.setenv("CLOUD_LLM_PROVIDER", "groq")
|
||||
# Reset cached provider
|
||||
import detect.providers as prov
|
||||
import core.detect.providers as prov
|
||||
monkeypatch.setattr(prov, "_cached", None)
|
||||
|
||||
candidates = [_make_candidate()]
|
||||
@@ -54,7 +54,7 @@ def test_escalate_skips_without_api_key(monkeypatch):
|
||||
|
||||
def test_escalate_empty_candidates(monkeypatch):
|
||||
events = []
|
||||
monkeypatch.setattr("detect.emit.push_detect_event",
|
||||
monkeypatch.setattr("core.detect.emit.push_detect_event",
|
||||
lambda job_id, etype, data: events.append((etype, data)))
|
||||
|
||||
stats = PipelineStats()
|
||||
@@ -66,18 +66,18 @@ def test_escalate_empty_candidates(monkeypatch):
|
||||
|
||||
def test_escalate_with_mock_api(monkeypatch):
|
||||
events = []
|
||||
monkeypatch.setattr("detect.emit.push_detect_event",
|
||||
monkeypatch.setattr("core.detect.emit.push_detect_event",
|
||||
lambda job_id, etype, data: events.append((etype, data)))
|
||||
monkeypatch.setenv("GROQ_API_KEY", "test-key")
|
||||
monkeypatch.setenv("CLOUD_LLM_PROVIDER", "groq")
|
||||
# Reset cached provider
|
||||
import detect.providers as prov
|
||||
import core.detect.providers as prov
|
||||
monkeypatch.setattr(prov, "_cached", None)
|
||||
|
||||
def mock_call(image_b64, prompt):
|
||||
return {"brand": "Heineken", "confidence": 0.75, "reasoning": "green logo", "tokens": 300}
|
||||
|
||||
monkeypatch.setattr("detect.stages.vlm_cloud._call_cloud_api", mock_call)
|
||||
monkeypatch.setattr("core.detect.stages.vlm_cloud._call_cloud_api", mock_call)
|
||||
|
||||
candidates = [_make_candidate("unknown logo")]
|
||||
stats = PipelineStats()
|
||||
|
||||
Reference in New Issue
Block a user