test(validation): cover @vocab suppressing the coverage finding - #137
Conversation
Release previewNo version bump from the current commits (stays at Changelog preview (truncated)Preview via python-semantic-release and conventional commits. |
📊 Benchmark ResultsClick to see benchmark comparisonThreshold: 1.3x (30% slower triggers a regression warning) Note: Benchmarks are informational only and won't fail the build. 💡 Tip: Download the |
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
24951b8 to
0aa708f
Compare
📊 Benchmark ResultsClick to see benchmark comparisonThreshold: 1.3x (30% slower triggers a regression warning) Note: Benchmarks are informational only and won't fail the build. 💡 Tip: Download the |
- add broken/vocab_covers_the_remainder.schema.json, missing_context_term with @vocab added and nothing else changed - assert context.coverage stays OK and that @vocab is what maps the orphan - correct two comments claiming context.coverage cites no rule; it cites OOLD-SCH-21d7 - list the new fixture in the broken-fixtures table, noting it is a control
0aa708f to
3ef72c6
Compare
📊 Benchmark ResultsClick to see benchmark comparisonThreshold: 1.3x (30% slower triggers a regression warning) Note: Benchmarks are informational only and won't fail the build. 💡 Tip: Download the |
Closes the one demand in #120 that had no test behind it, and corrects two comments the
context.coveragesplit left stale.Changes
tests/data/oold/broken/vocab_covers_the_remainder.schema.json- new fixture. Byte-identical tomissing_context_term.schema.jsonapart from$id,title, and one added@vocab, so the two are each other's control.test_vocab_suppresses_the_coverage_finding- assertscontext.coveragestaysOK, and thatcontext.predicatesreportsmapped: 2, which is what proves@vocabmappedorphanrather than the check simply standing down.check_registry.py- the comment above thecontext.coverageCheckInfoopened "Deliberately cites no rule" three lines aboverule="OOLD-SCH-21d7".test_pipeline.py- the same claim in the docstring oftest_missing_context_term_warns_and_names_the_orphan_property.docs/maintaining-meta-schemas.md- the broken-fixtures table claims to map every file inbroken/to the check it trips, so the new fixture is listed. It is noted as a control, since it proves a check stays silent rather than fires, which the section's opening sentence did not previously allow for.Why it matters
#120 (comment) required that the finding "must not fire at all when
@vocabis declared". That was confirmed by an ad-hoc probe before the split ofcontext.predicatesinto two checks, and never protected afterwards: no fixture in the corpus declared a@vocabat all, and the only@vocabin the suite asserted that the message text mentions it, which is a different claim. The permitted case was the one behaviour in that issue resting on nothing.No production behaviour changes. The only non-test edit is a comment.
Verification
Rebased onto
mainat v0.18.3 and re-verified there, since the first run measured against amainthat has since moved by five commits:mainmake check: cleanuv run oold validate tests/data/oold --offline: PASS, 380 ok, 21 warnings, unchangedThe rebase conflicted in
test_pipeline.py, where #142 addedtest_a_schema_with_no_context_warns_instead_of_failing_the_round_tripat the same place. Both tests are kept: one covers an absent@context, the other a declared@vocab, and they assert opposite outcomes on the same check. Thecheck_registry.pycomment fix applied unchanged, so the stale "Deliberately cites no rule" sentence is still the one onmain.Parity
Green:
6 passedagainst fresh clones of both references.An earlier revision of this description claimed parity was broken on
main. That was wrong and is retracted. Three parity tests did fail here, but the cause was a local~/.cache/oold/meta/remote-mainthat was 15 days old and still declaredx-oold-reverse-default-properties, removed upstream in OO-LD/oold-schema#152.oold meta fetch --forceturned all three green with no change to this repository.mainwas never broken and CI was never at risk, since a fresh runner has no cache.That the stale cache is silent is a real defect and is now #138. It is not this PR's to fix.
Refs #120. Does not close it: the severity question raised in #120 (comment) is still open.
One adjacent gap, flagged not fixed
That same table is also missing
no_context, added tobroken/by #142. One row, and not this pull request's to write.