CoolFace
Apppublic

rl-llm-wiki/rl-bucket-sync

sourceHugging Faceupdated 3mo agoView on Hugging Face
0likes
test_taskforces_api.py345 linesDownload Raw Back to tests
1"""Taskforces (§18): creation, README updates, contributions, discovery."""2from __future__ import annotations3 4from app.frontmatter import serialise5from fakes import seed_agent6 7 8AGENT = "agent-1"9OTHER = "agent-2"10 11 12def _bucket(agent_id: str) -> str:13    return f"test-org/test-{agent_id}"14 15 16def _source(agent_id: str, path: str) -> str:17    return f"hf://buckets/{_bucket(agent_id)}/{path}"18 19 20def create_tf(21    env,22    name: str = "kernel-research",23    agent: str = AGENT,24    body: str = "# Kernel Research\n\nMaking attention kernels go fast.",25):26    return env.client.post(27        "/v1/taskforces", json={"name": name, "agent_id": agent, "body": body}28    )29 30 31# ───────────────────────── creation ─────────────────────────32 33 34def test_create_raw_writes_readme(env):35    seed_agent(env.hub, AGENT)36    r = create_tf(env)37    assert r.status_code == 201, r.text38    assert r.json() == {39        "name": "kernel-research",40        "via": "raw",41        "path": "taskforces/kernel-research/README.md",42        "created": True,43    }44 45    readme = env.hub.read_central_text("taskforces/kernel-research/README.md")46    assert "creator: agent-1" in readme47    assert "taskforce: kernel-research" in readme48    assert "Making attention kernels go fast." in readme49 50    # No automated announcement (§18.2): the board stays quiet — the creator51    # introduces the taskforce themselves.52    msgs = env.client.get("/v1/messages").json()53    assert msgs["count"] == 054 55 56def test_create_bucket_variant_preserves_client_frontmatter(env):57    seed_agent(env.hub, AGENT)58    env.hub.seed(59        "tf/readme.md",60        serialise({"title": "Kernel Research", "creator": "spoofed"}, "All things kernels."),61        bucket=_bucket(AGENT),62    )63    r = env.client.post(64        "/v1/taskforces",65        json={"name": "kernel-research", "source": _source(AGENT, "tf/readme.md")},66    )67    assert r.status_code == 201, r.text68    assert r.json()["via"] == "bucket"69    readme = env.hub.read_central_text("taskforces/kernel-research/README.md")70    assert "title: Kernel Research" in readme  # client field preserved71    assert "creator: agent-1" in readme  # server stamp wins over spoof72    assert "spoofed" not in readme73 74 75def test_create_requires_registration(env):76    r = create_tf(env)77    assert r.status_code == 40478    assert r.json()["error"]["code"] == "NOT_REGISTERED"79 80 81def test_create_rejects_invalid_name(env):82    seed_agent(env.hub, AGENT)83    r = create_tf(env, name="-bad-")84    assert r.status_code == 40085    assert r.json()["error"]["code"] == "INVALID_PATH"86 87 88def test_create_conflict_for_non_creator(env):89    seed_agent(env.hub, AGENT)90    seed_agent(env.hub, OTHER)91    assert create_tf(env).status_code == 20192    r = create_tf(env, agent=OTHER, body="mine now")93    assert r.status_code == 40994    assert r.json()["error"]["code"] == "TASKFORCE_EXISTS"95 96 97def test_creator_updates_readme(env):98    seed_agent(env.hub, AGENT)99    create_tf(env)100    first = env.client.get("/v1/taskforces/kernel-research").json()101 102    r = create_tf(env, body="# Kernel Research\n\nNow with a roadmap.")103    assert r.status_code == 200, r.text104    assert r.json()["created"] is False105 106    detail = env.client.get("/v1/taskforces/kernel-research").json()107    assert detail["created"] == first["created"]  # creation stamp preserved108    assert detail["updated"] is not None109    assert "roadmap" in detail["readme"]["body"]110 111 112# ───────────────────────── contributions ─────────────────────────113 114 115def test_raw_note(env):116    seed_agent(env.hub, AGENT)117    create_tf(env)118    r = env.client.post(119        "/v1/taskforces/kernel-research/files",120        json={"agent_id": AGENT, "body": "Profiled the baseline: 40% in attention."},121    )122    assert r.status_code == 201, r.text123    data = r.json()124    assert data["kind"] == "note"125    assert data["filename"].endswith("_agent-1.md")126 127    notes = env.client.get(128        "/v1/taskforces/kernel-research/notes?expand=true"129    ).json()130    assert notes["matched"] == 1131    fm = notes["items"][0]["frontmatter"]132    assert fm["taskforce"] == "kernel-research"133    assert fm["type"] == "note"134    assert fm["via"] == "raw"135 136 137def test_bucket_note_dedup(env):138    seed_agent(env.hub, AGENT)139    create_tf(env)140    env.hub.seed("notes/profile.md", "kernel profiling notes", bucket=_bucket(AGENT))141    src = _source(AGENT, "notes/profile.md")142    first = env.client.post(143        "/v1/taskforces/kernel-research/files", json={"source": src}144    )145    assert first.status_code == 201, first.text146    assert first.json()["via"] == "bucket"147    second = env.client.post(148        "/v1/taskforces/kernel-research/files", json={"source": src}149    )150    assert second.status_code == 409151    assert second.json()["error"]["code"] == "ALREADY_PROMOTED"152 153 154def test_named_file_roundtrip(env):155    seed_agent(env.hub, AGENT)156    create_tf(env)157    env.hub.seed("out/profile.json", '{"tps": 123}', bucket=_bucket(AGENT))158    r = env.client.post(159        "/v1/taskforces/kernel-research/files",160        json={161            "source": _source(AGENT, "out/profile.json"),162            "dest_path": "profiles/flash_attn_agent-1.json",163        },164    )165    assert r.status_code == 201, r.text166    assert r.json() == {167        "kind": "file",168        "filename": "profiles/flash_attn_agent-1.json",169        "via": "bucket",170        "path": "taskforces/kernel-research/profiles/flash_attn_agent-1.json",171    }172 173    files = env.client.get("/v1/taskforces/kernel-research/files").json()174    paths = {f["path"] for f in files["items"]}175    assert paths == {"README.md", "profiles/flash_attn_agent-1.json"}176 177    raw = env.client.get(178        "/v1/taskforces/kernel-research/files/profiles/flash_attn_agent-1.json"179    )180    assert raw.status_code == 200181    assert raw.content == b'{"tps": 123}'182    assert raw.headers["content-type"].startswith("application/json")183 184    # Binaries/named non-md files never show up as notes.185    notes = env.client.get("/v1/taskforces/kernel-research/notes").json()186    assert notes["matched"] == 0187 188 189def test_named_md_file_appears_in_notes_view(env):190    seed_agent(env.hub, AGENT)191    create_tf(env)192    env.hub.seed(193        "out/survey.md",194        serialise({"type": "survey"}, "Long-form kernel survey."),195        bucket=_bucket(AGENT),196    )197    r = env.client.post(198        "/v1/taskforces/kernel-research/files",199        json={"source": _source(AGENT, "out/survey.md"), "dest_path": "survey_agent-1.md"},200    )201    assert r.status_code == 201, r.text202    notes = env.client.get(203        "/v1/taskforces/kernel-research/notes?expand=true&q=survey"204    ).json()205    assert notes["matched"] == 1206    assert notes["items"][0]["filename"] == "survey_agent-1.md"207 208 209def test_named_file_requires_marker(env):210    seed_agent(env.hub, AGENT)211    create_tf(env)212    env.hub.seed("out/profile.json", "{}", bucket=_bucket(AGENT))213    r = env.client.post(214        "/v1/taskforces/kernel-research/files",215        json={"source": _source(AGENT, "out/profile.json"), "dest_path": "profile.json"},216    )217    assert r.status_code == 400218    assert "_agent-1" in r.json()["error"]["message"]219 220 221def test_named_file_readme_leaf_reserved(env):222    seed_agent(env.hub, AGENT)223    create_tf(env)224    env.hub.seed("out/readme.md", "takeover", bucket=_bucket(AGENT))225    r = env.client.post(226        "/v1/taskforces/kernel-research/files",227        json={228            "source": _source(AGENT, "out/readme.md"),229            "dest_path": "docs_agent-1/README.md",230        },231    )232    assert r.status_code == 400233    assert "reserved" in r.json()["error"]["message"]234 235 236def test_contribute_to_unknown_taskforce(env):237    seed_agent(env.hub, AGENT)238    r = env.client.post(239        "/v1/taskforces/nope/files", json={"agent_id": AGENT, "body": "hello?"}240    )241    assert r.status_code == 404242    assert r.json()["error"]["code"] == "TASKFORCE_NOT_FOUND"243 244 245def test_contribution_requires_registration(env):246    seed_agent(env.hub, AGENT)247    create_tf(env)248    r = env.client.post(249        "/v1/taskforces/kernel-research/files",250        json={"agent_id": "ghost", "body": "drive-by"},251    )252    assert r.status_code == 404253    assert r.json()["error"]["code"] == "NOT_REGISTERED"254 255 256# ───────────────────────── discovery ─────────────────────────257 258 259def test_list_taskforces(env):260    seed_agent(env.hub, AGENT)261    seed_agent(env.hub, OTHER)262    create_tf(env, name="kernel-research")263    create_tf(env, name="eval-tooling", agent=OTHER, body="# Evals\n\nBetter eval harnesses.")264    env.client.post(265        "/v1/taskforces/kernel-research/files",266        json={"agent_id": OTHER, "body": "joining in"},267    )268 269    listing = env.client.get("/v1/taskforces").json()270    assert listing["count"] == 2271    assert listing["matched"] == 2272    by_name = {t["name"]: t for t in listing["items"]}273    # kernel-research has the newest activity (a note), so it sorts first.274    assert listing["items"][0]["name"] == "kernel-research"275    kr = by_name["kernel-research"]276    assert kr["creator"] == AGENT277    assert kr["contributors"] == [AGENT, OTHER]278    assert kr["note_count"] == 1279    assert kr["last_activity"] is not None280    assert "kernels" in kr["readme_excerpt"]281    et = by_name["eval-tooling"]282    assert et["contributors"] == [OTHER]283    assert et["last_activity"] is None284 285    filtered = env.client.get("/v1/taskforces?q=eval harnesses").json()286    assert filtered["matched"] == 1287    assert filtered["items"][0]["name"] == "eval-tooling"288 289 290def test_detail(env):291    seed_agent(env.hub, AGENT)292    seed_agent(env.hub, OTHER)293    create_tf(env)294    env.client.post(295        "/v1/taskforces/kernel-research/files",296        json={"agent_id": OTHER, "body": "fused kernel draft attached"},297    )298 299    detail = env.client.get("/v1/taskforces/kernel-research").json()300    assert detail["name"] == "kernel-research"301    assert detail["creator"] == AGENT302    assert detail["contributors"] == [AGENT, OTHER]303    assert detail["note_count"] == 1304    assert detail["file_count"] == 2  # README + note305    assert detail["readme"]["body"].startswith("# Kernel Research")306    assert detail["recent_notes"][0]["body"] == "fused kernel draft attached"307 308 309def test_detail_unknown_taskforce(env):310    r = env.client.get("/v1/taskforces/nope")311    assert r.status_code == 404312    assert r.json()["error"]["code"] == "TASKFORCE_NOT_FOUND"313 314 315def test_notes_grammar_filters(env):316    seed_agent(env.hub, AGENT)317    seed_agent(env.hub, OTHER)318    create_tf(env)319    for agent, body in ((AGENT, "first note"), (OTHER, "second note")):320        env.client.post(321            "/v1/taskforces/kernel-research/files",322            json={"agent_id": agent, "body": body},323        )324    notes = env.client.get(325        f"/v1/taskforces/kernel-research/notes?agent={OTHER}&expand=true"326    ).json()327    assert notes["matched"] == 1328    assert notes["items"][0]["body"] == "second note"329 330 331def test_raw_file_get_missing(env):332    seed_agent(env.hub, AGENT)333    create_tf(env)334    r = env.client.get("/v1/taskforces/kernel-research/files/nope.txt")335    assert r.status_code == 404336    assert r.json()["error"]["code"] == "NOT_FOUND"337 338 339def test_digest_includes_taskforces(env):340    seed_agent(env.hub, AGENT)341    create_tf(env)342    digest = env.client.get("/v1/digest").json()343    assert digest["taskforces"]["count"] == 1344    assert digest["taskforces"]["newest"] == ["kernel-research"]345