File size: 2,868 Bytes
4879fc7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
import json

from fakes import seed_agent, seed_result


def seed_results(hub):
    seed_agent(hub, "agent-1")
    seed_agent(hub, "agent-2")
    a = seed_result(hub, "20260601-100000-000", "agent-1", 100.0)
    b = seed_result(hub, "20260601-110000-000", "agent-2", 120.0)
    c = seed_result(hub, "20260602-090000-000", "agent-1", 80.0, status="negative")
    hub.seed("results/verification_status.json", json.dumps({a: "valid", b: "invalid"}))
    return a, b, c


def test_list_backward_compatible_shape(env):
    a, b, c = seed_results(env.hub)
    data = env.client.get("/v1/results").json()
    assert data["count"] == 3 and data["matched"] == 3
    assert data["items"] == [c, b, a]


def test_status_and_verification_filters(env):
    a, b, c = seed_results(env.hub)
    assert env.client.get("/v1/results?status=negative").json()["items"] == [c]
    assert env.client.get("/v1/results?verification=valid").json()["items"] == [a]
    # c has no index entry → reads as pending
    assert env.client.get("/v1/results?verification=pending").json()["items"] == [c]
    assert env.client.get("/v1/results?verification=valid,invalid").json()["matched"] == 2


def test_bad_verification_param_is_400(env):
    r = env.client.get("/v1/results?verification=bogus")
    assert r.status_code == 400
    assert r.json()["error"]["code"] == "INVALID_QUERY"


def test_expand_inlines_verification(env):
    a, b, _c = seed_results(env.hub)
    items = env.client.get("/v1/results?expand=true&order=asc").json()["items"]
    by_name = {i["filename"]: i for i in items}
    assert by_name[a]["verification"] == "valid"
    assert by_name[b]["verification"] == "invalid"
    assert by_name[a]["frontmatter"]["score"] == 100.0


def test_single_get_carries_verification_and_404s(env):
    a, _b, _c = seed_results(env.hub)
    r = env.client.get(f"/v1/results/{a}")
    assert r.status_code == 200
    assert r.json()["verification"] == "valid"
    assert env.client.get("/v1/results/nope.md").status_code == 404


def test_post_result_visible_immediately(env):
    seed_agent(env.hub, "agent-1")
    env.hub.seed(
        "results/run1.md",
        "---\nscore: 142.7\nmethod: vllm-fp8\nstatus: agent-run\ndescription: fast\n---\nnotes\n",
        bucket="test-org/test-agent-1",
    )
    r = env.client.post(
        "/v1/results",
        json={"source": "hf://buckets/test-org/test-agent-1/results/run1.md"},
    )
    assert r.status_code == 201
    filename = r.json()["filename"]
    data = env.client.get("/v1/results?expand=true&limit=1").json()
    assert data["items"][0]["filename"] == filename
    assert data["items"][0]["verification"] == "pending"
    # the verification index tracked the promotion
    index = json.loads(
        env.hub.buckets[env.settings.central_bucket]["results/verification_status.json"]
    )
    assert index[filename] == "pending"