chore(deps): re-pin llm-ingestion-okf to v0.3.1 + migrate tests to stable error codes
Pin dae0bd1a -> v0.3.1 (=692f2df) on the public Forgejo mirror; uv.lock pins the exact commit behind the tag. - Drop the mypy override: the library ships py.typed from v0.2.0, so strict mode now follows its real types instead of follow_untyped_imports. - Migrate 8 library-error assertions from pytest.raises(match=...) to exc.value.code — message text is explicitly unstable from v0.3.0, the codes are the stability contract. - Fix a real breakage the bump surfaced: IngestResult gained a required `stamp` field (d3a3bcc), which the delegation fake did not construct. - The read-only SQL test loses resolution under the code contract (`sql_failed` is generic), so it now proves read-onlyness by effect — the write never lands — instead of by message wording. - Correct the guard plan: G1's persist-gate anchor (ingest.py:372-387) died with the 2026-07-16 adoption. Door A is ungated by the library's own README, so gating stays our responsibility at the call site. Verified: 426 tests green, golden output byte-exact unchanged, full gate clean (ruff + format + mypy strict). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RmNAgbRXUgvoSKxVK4Bevv
This commit is contained in:
parent
698e8f21dd
commit
a7e8ffecb8
6 changed files with 41 additions and 23 deletions
|
|
@ -53,7 +53,9 @@ class TestDelegation:
|
|||
) -> llm_ingestion_okf.IngestResult:
|
||||
calls["args"] = (manifest_path, bundle_dir, ingested_at)
|
||||
calls["kwargs"] = kwargs
|
||||
return llm_ingestion_okf.IngestResult(written=(tmp_path / "ingest-e.md",))
|
||||
return llm_ingestion_okf.IngestResult(
|
||||
written=(tmp_path / "ingest-e.md",), stamp="e@0123456789abcdef"
|
||||
)
|
||||
|
||||
monkeypatch.setattr(ingest, "materialize_bundle", fake)
|
||||
out = ingest.materialize(tmp_path / "manifest.json", tmp_path / "bundle", INGESTED_AT)
|
||||
|
|
@ -153,6 +155,7 @@ class TestLibraryGuarantees:
|
|||
manifest_path = tmp_path / "manifest.json"
|
||||
manifest_path.write_text(json.dumps(manifest), encoding="utf-8")
|
||||
bundle = tmp_path / "bundle"
|
||||
with pytest.raises(ingest.SourceError, match="returned no columns"):
|
||||
with pytest.raises(ingest.SourceError) as exc:
|
||||
ingest.materialize(manifest_path, bundle, INGESTED_AT)
|
||||
assert exc.value.code == "sql_no_columns"
|
||||
assert not bundle.exists()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue