mirror of
https://github.com/pewdiepie-archdaemon/odysseus.git
synced 2026-10-12 18:02:20 +02:00
Squash Odysseus development history
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
import asyncio
|
||||
|
||||
import pytest
|
||||
|
||||
from routes import skills_routes as routes
|
||||
|
||||
|
||||
@pytest.mark.parametrize("frame", [
|
||||
'event: error\ndata: {"error":"upstream unavailable","status":503}\n\n',
|
||||
'data: {"type":"error","message":"connection failed"}\n\n',
|
||||
])
|
||||
def test_audit_stream_errors_are_not_skill_evidence(monkeypatch, frame):
|
||||
async def stream(*args, **kwargs):
|
||||
yield frame
|
||||
|
||||
monkeypatch.setattr("src.agent_loop.stream_agent_loop", stream)
|
||||
with pytest.raises(routes.SkillAuditUnavailable):
|
||||
asyncio.run(routes._run_skill_audit_arm([], "url", "model", {}, "alice"))
|
||||
|
||||
|
||||
def test_unavailable_model_stops_batch_without_recording_verdict(monkeypatch):
|
||||
visited = []
|
||||
|
||||
class Skills:
|
||||
def load(self, owner=None):
|
||||
return [{"name": "first"}, {"name": "second"}]
|
||||
|
||||
def set_audit(self, *args, **kwargs):
|
||||
pytest.fail("An infrastructure failure must not update the skill verdict")
|
||||
|
||||
async def audit(manager, skill, *args, **kwargs):
|
||||
visited.append(skill["name"])
|
||||
raise routes.SkillAuditUnavailable("offline")
|
||||
|
||||
monkeypatch.setattr(routes, "_audit_one_skill", audit)
|
||||
job = {"status": "running", "log": [], "results": [], "done": 0}
|
||||
monkeypatch.setattr(routes, "_skill_audit_jobs", {("alice",): job})
|
||||
asyncio.run(routes._run_audit_all_job(("alice",), Skills(), ["first", "second"],
|
||||
"url", "model", {}, None, "alice"))
|
||||
assert visited == ["first"]
|
||||
assert job["status"] == "error"
|
||||
assert job["unavailable"] == "offline"
|
||||
assert job["done"] == 0
|
||||
assert job["results"] == []
|
||||
Reference in New Issue
Block a user