test: consolidate PROPERTY_MAPPING suites around a public behavior matrix (#799) - #870
Merged
TomKaltofen merged 1 commit intoJul 21, 2026
Conversation
…trix (#799) Phase 7 cleanup. Add a behavior-matrix doc mapping each PROPERTY_MAPPING axis to its owning public-boundary test, retire the transitional private seam-absence pins into the one file that owns them, and drop private-helper tests already covered at a public or core boundary. - Add PROPERTY_MAPPING_TEST_MATRIX.md: axis -> owning test, the deliberately kept private-helper contracts, and the deferred fixture-parametrization work. - Move the _get_validation_function / _validate_type_validators seam-absence pins from test_property_mapping_unified_model into test_retire_transitional_seams; keep the field-default assertion on the public fields test. - Drop the container-invariance test that pins the plugin element_validator lambda directly; its three public sibling tests and core sequence-unpacking own that contract. - Drop the two enforced-validators facade tests that re-assert "reason is None for a valid or absent value"; that contract is core-owned in test_name_path_validates_option_values. - Remove the now-unused stale-name constants left in unified_model. Test refactor only; no production change. tox green (7147 passed, 170 skipped).
TomKaltofen
deleted the
refactor/os-006-consolidate-property-mapping-tests
branch
July 21, 2026 14:32
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Phase 7 cleanup for the PROPERTY_MAPPING hardening epic (os-006, was #799). Consolidates the PROPERTY_MAPPING test suite around an explicit public-behavior matrix and retires duplicate private-helper coverage, with no production change and no loss of unique regression protection.
Changes
PROPERTY_MAPPING_TEST_MATRIX.md): maps each behavior axis (match path, option source, presence, required/conditional, value shape, value space, callback outcome, diagnostics, defaults lifecycle, construction) to its owning public-boundary test. Records the private-helper tests deliberately kept as intentional contracts, the retired seams, and the deferred fixture-parametrization work with its rationale._get_validation_functiongone and_validate_type_validators->_validate_match_guardsrename pins out oftest_property_mapping_unified_model.pyintotest_retire_transitional_seams.py, next to the os-005 seam-absence pins they belong with. The public field-default assertion is preserved on the fields test.test_property_mapping_container_invariance.pyno longer pins the pluginelement_validatorlambda directly; its three public sibling tests and coretest_property_mapping_sequence_unpacking.pyown that per-element contract.test_property_mapping_enforced_validators.py; that contract is core-owned intest_name_path_validates_option_values.py.Coverage preservation
Net change over the 15 PROPERTY_MAPPING test files: 529 -> 514 collected node ids. Every removed or moved test traces to a surviving public or core boundary that asserts the same behavior; the two seam-absence pins are relocated, not deleted. No new module-level FeatureGroup subclasses, so no added registry-leak surface.
Validation
toxgreen: 7147 passed, 170 skipped (skip count unchanged), ruff format + check, pip-licenses,mypy --strict, and bandit all pass.Test refactor only.