zamzung / tests /test_retraining_agent.py
VectorMind CI
deploy: ba672bd from MK23IS092/msrit_clockwork
4523f98
import asyncio
from agents.retraining_agent import RetrainingAgent
def test_trigger_retraining_updates_status_and_version_event():
agent = RetrainingAgent()
published = []
async def fake_publish(topic, payload):
published.append((topic, payload))
agent.publish = fake_publish # type: ignore[method-assign]
asyncio.run(
agent.trigger_retraining(candidate_metrics={"accuracy": 0.82, "f1": 0.79, "latency_ms": 140})
)
assert agent.status == "monitoring"
assert agent.last_retraining is not None
assert published
assert published[0][0] == "model.promoted"
assert "new_version" in published[0][1]
def test_trigger_retraining_rejects_candidate_when_quality_gates_fail():
agent = RetrainingAgent()
published = []
async def fake_publish(topic, payload):
published.append((topic, payload))
agent.publish = fake_publish # type: ignore[method-assign]
asyncio.run(
agent.trigger_retraining(candidate_metrics={"accuracy": 0.72, "f1": 0.70, "latency_ms": 260})
)
assert agent.status == "monitoring"
assert agent.last_retraining is not None
assert published
assert published[0][0] == "model.retraining_failed"
assert published[0][1]["reasons"]