fix(tests): the write-path telemetry test asserted the defect, not the split (#3497)
CI & Build / Python lint (push) Successful in 5s
CI & Build / Plugin hooks (push) Successful in 10s
CI & Build / integration (push) Successful in 28s
CI & Build / TypeScript typecheck (push) Successful in 34s
CI & Build / Python tests (push) Successful in 1m8s
CI & Build / Build & push image (push) Successful in 28s
CI & Build / Python lint (push) Successful in 5s
CI & Build / Plugin hooks (push) Successful in 10s
CI & Build / integration (push) Successful in 28s
CI & Build / TypeScript typecheck (push) Successful in 34s
CI & Build / Python tests (push) Successful in 1m8s
CI & Build / Build & push image (push) Successful in 28s
`assert_called_once` held only because the rule arm skipped its retrieval_logs row when it found nothing. With the arm logging every call, the test now asserts what it was always about — exactly one `write_path` row, no `auto_inject`, and the rule arm keeping its own separate source. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011cPyzNnegXHr5iRMzzy5KJ
This commit is contained in:
@@ -360,10 +360,18 @@ async def test_telemetry_uses_its_own_source():
|
|||||||
patch.object(pc, "record_retrieval", rec), \
|
patch.object(pc, "record_retrieval", rec), \
|
||||||
patch.object(pc, "owner_names_for", AsyncMock(return_value={})):
|
patch.object(pc, "owner_names_for", AsyncMock(return_value={})):
|
||||||
await pc.build_write_path_hint(1, "src/x.py", code=REAL_CODE, project_id=4)
|
await pc.build_write_path_hint(1, "src/x.py", code=REAL_CODE, project_id=4)
|
||||||
rec.assert_called_once()
|
sources = [c.kwargs["source"] for c in rec.call_args_list]
|
||||||
assert rec.call_args.kwargs["source"] == "write_path"
|
assert sources.count("write_path") == 1, sources
|
||||||
assert rec.call_args.kwargs["source"] != "auto_inject"
|
assert "auto_inject" not in sources
|
||||||
assert rec.call_args.kwargs["project_id"] == 4
|
|
||||||
|
note_arm = next(c for c in rec.call_args_list if c.kwargs["source"] == "write_path")
|
||||||
|
assert note_arm.kwargs["project_id"] == 4
|
||||||
|
|
||||||
|
# The rule arm rides along on the same hint and logs its own call even when
|
||||||
|
# it finds nothing (#3497). This assertion used to be `assert_called_once`,
|
||||||
|
# which passed only because that row was never written — the test encoded
|
||||||
|
# the defect. The second row is the point of having two sources.
|
||||||
|
assert "write_path_rule" in sources, sources
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.asyncio
|
@pytest.mark.asyncio
|
||||||
|
|||||||
Reference in New Issue
Block a user