test: lock release snippet source guard inventory

This commit is contained in:
2026-05-01 02:16:12 -04:00
parent 95d1aa30bd
commit 1b4780dc38
@@ -121,9 +121,17 @@ TRAINING_M41_RELEASE_INDEX_GUARD_TEST_INVENTORY = (
"test_training_m57_release_index_required_snippet_inventory_source_shape_diagnostics_are_locked",
"test_training_m58_release_index_required_snippet_inventory_source_shape_accepts_literal_fixtures",
"test_training_m59_release_index_required_snippet_inventory_source_shape_preserves_literal_order",
"test_training_m60_release_index_source_shape_fixture_guard_inventory_self_lock_is_current",
"test_training_m53_release_index_doc_category_coverage_is_exact",
"test_training_case_product_doc_reflects_current_m40_maturity",
)
TRAINING_M41_RELEASE_INDEX_SOURCE_SHAPE_FIXTURE_GUARD_METHODS = (
"test_training_m55_release_index_required_snippet_inventory_source_shape_is_locked",
"test_training_m56_release_index_required_snippet_inventory_source_shape_rejects_dynamic_fixtures",
"test_training_m57_release_index_required_snippet_inventory_source_shape_diagnostics_are_locked",
"test_training_m58_release_index_required_snippet_inventory_source_shape_accepts_literal_fixtures",
"test_training_m59_release_index_required_snippet_inventory_source_shape_preserves_literal_order",
)
TRAINING_M41_RELEASE_INDEX_REQUIRED_SNIPPET_INVENTORY = (
(
"current_m1_m40_marker",
@@ -574,6 +582,9 @@ class DocumentationConsistencyTests(unittest.TestCase):
"required_snippet_inventory_source_shape_literal_order": (
"test_training_m59_release_index_required_snippet_inventory_source_shape_preserves_literal_order"
),
"required_snippet_inventory_source_shape_fixture_self_lock": (
"test_training_m60_release_index_source_shape_fixture_guard_inventory_self_lock_is_current"
),
"per_doc_helper_exact_category_coverage": (
"test_training_m53_release_index_doc_category_coverage_is_exact"
),
@@ -729,6 +740,7 @@ class DocumentationConsistencyTests(unittest.TestCase):
"test_training_m57_release_index_required_snippet_inventory_source_shape_diagnostics_are_locked",
"test_training_m58_release_index_required_snippet_inventory_source_shape_accepts_literal_fixtures",
"test_training_m59_release_index_required_snippet_inventory_source_shape_preserves_literal_order",
"test_training_m60_release_index_source_shape_fixture_guard_inventory_self_lock_is_current",
"test_training_m53_release_index_doc_category_coverage_is_exact",
"test_training_case_product_doc_reflects_current_m40_maturity",
)
@@ -757,6 +769,56 @@ class DocumentationConsistencyTests(unittest.TestCase):
self.assertEqual(loader.errors, [])
self.assertEqual(suite.countTestCases(), 1)
def test_training_m60_release_index_source_shape_fixture_guard_inventory_self_lock_is_current(
self,
) -> None:
expected_source_shape_fixture_guards = (
"test_training_m55_release_index_required_snippet_inventory_source_shape_is_locked",
"test_training_m56_release_index_required_snippet_inventory_source_shape_rejects_dynamic_fixtures",
"test_training_m57_release_index_required_snippet_inventory_source_shape_diagnostics_are_locked",
"test_training_m58_release_index_required_snippet_inventory_source_shape_accepts_literal_fixtures",
"test_training_m59_release_index_required_snippet_inventory_source_shape_preserves_literal_order",
)
test_case_name = f"{type(self).__module__}.{type(self).__qualname__}"
self_lock_name = (
"test_training_m60_release_index_source_shape_fixture_guard_inventory_self_lock_is_current"
)
discovered_method_names = _test_method_names_from_file(
Path(__file__),
"DocumentationConsistencyTests",
)
source_shape_start = discovered_method_names.index(
expected_source_shape_fixture_guards[0]
)
self.assertEqual(
TRAINING_M41_RELEASE_INDEX_SOURCE_SHAPE_FIXTURE_GUARD_METHODS,
expected_source_shape_fixture_guards,
)
self.assertEqual(
len(TRAINING_M41_RELEASE_INDEX_SOURCE_SHAPE_FIXTURE_GUARD_METHODS),
len(set(TRAINING_M41_RELEASE_INDEX_SOURCE_SHAPE_FIXTURE_GUARD_METHODS)),
)
self.assertEqual(
TRAINING_M41_RELEASE_INDEX_GUARD_TEST_INVENTORY[8:13],
TRAINING_M41_RELEASE_INDEX_SOURCE_SHAPE_FIXTURE_GUARD_METHODS,
)
self.assertEqual(
discovered_method_names[
source_shape_start : source_shape_start
+ len(TRAINING_M41_RELEASE_INDEX_SOURCE_SHAPE_FIXTURE_GUARD_METHODS)
],
TRAINING_M41_RELEASE_INDEX_SOURCE_SHAPE_FIXTURE_GUARD_METHODS,
)
self.assertIn(self_lock_name, TRAINING_M41_RELEASE_INDEX_GUARD_TEST_INVENTORY)
for method_name in TRAINING_M41_RELEASE_INDEX_SOURCE_SHAPE_FIXTURE_GUARD_METHODS:
with self.subTest(method_name=method_name):
loader = unittest.TestLoader()
suite = loader.loadTestsFromName(f"{test_case_name}.{method_name}")
self.assertEqual(loader.errors, [])
self.assertEqual(suite.countTestCases(), 1)
def test_training_m47_release_index_per_doc_helper_inventory_self_lock_is_current(self) -> None:
helper_name = "_release_index_missing_required_snippets_by_doc"
docs_guard_name = "test_training_readmes_expose_m1_m40_release_index_without_raw_test_modules"