Spaces:
Sleeping
Sleeping
| 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"] | |