test: lock bridge diagnostic guard cluster

This commit is contained in:
2026-05-01 06:52:38 -04:00
parent 8e4b3186d8
commit 71fac2f3ad
@@ -139,6 +139,7 @@ TRAINING_M41_RELEASE_INDEX_GUARD_TEST_INVENTORY = (
"test_training_m76_release_index_source_shape_fixture_guard_methods_constant_exactness_bridge_triplet_diagnostic_fixture_inventory_source_shape_rejects_dynamic_sources",
"test_training_m77_release_index_source_shape_fixture_guard_methods_constant_exactness_bridge_triplet_diagnostic_fixture_inventory_source_shape_edge_diagnostics_are_locked",
"test_training_m78_release_index_source_shape_fixture_guard_methods_constant_exactness_bridge_triplet_diagnostic_fixture_inventory_source_shape_accepts_ordered_literal_sources",
"test_training_m79_release_index_source_shape_fixture_guard_methods_constant_exactness_bridge_triplet_diagnostic_fixture_inventory_guard_cluster_self_lock",
"test_training_m53_release_index_doc_category_coverage_is_exact",
"test_training_case_product_doc_reflects_current_m40_maturity",
)
@@ -663,6 +664,9 @@ class DocumentationConsistencyTests(unittest.TestCase):
"required_snippet_inventory_source_shape_fixture_constant_exactness_bridge_triplet_diagnostic_fixture_inventory_source_shape_positive_order_sources": (
"test_training_m78_release_index_source_shape_fixture_guard_methods_constant_exactness_bridge_triplet_diagnostic_fixture_inventory_source_shape_accepts_ordered_literal_sources"
),
"required_snippet_inventory_source_shape_fixture_constant_exactness_bridge_triplet_diagnostic_fixture_inventory_guard_cluster": (
"test_training_m79_release_index_source_shape_fixture_guard_methods_constant_exactness_bridge_triplet_diagnostic_fixture_inventory_guard_cluster_self_lock"
),
"per_doc_helper_exact_category_coverage": (
"test_training_m53_release_index_doc_category_coverage_is_exact"
),
@@ -836,6 +840,7 @@ class DocumentationConsistencyTests(unittest.TestCase):
"test_training_m76_release_index_source_shape_fixture_guard_methods_constant_exactness_bridge_triplet_diagnostic_fixture_inventory_source_shape_rejects_dynamic_sources",
"test_training_m77_release_index_source_shape_fixture_guard_methods_constant_exactness_bridge_triplet_diagnostic_fixture_inventory_source_shape_edge_diagnostics_are_locked",
"test_training_m78_release_index_source_shape_fixture_guard_methods_constant_exactness_bridge_triplet_diagnostic_fixture_inventory_source_shape_accepts_ordered_literal_sources",
"test_training_m79_release_index_source_shape_fixture_guard_methods_constant_exactness_bridge_triplet_diagnostic_fixture_inventory_guard_cluster_self_lock",
"test_training_m53_release_index_doc_category_coverage_is_exact",
"test_training_case_product_doc_reflects_current_m40_maturity",
)
@@ -2154,6 +2159,100 @@ class DocumentationConsistencyTests(unittest.TestCase):
)
)
def test_training_m79_release_index_source_shape_fixture_guard_methods_constant_exactness_bridge_triplet_diagnostic_fixture_inventory_guard_cluster_self_lock(
self,
) -> None:
guard_name = (
"test_training_m79_release_index_source_shape_fixture_guard_methods_constant_exactness_bridge_triplet_diagnostic_fixture_inventory_guard_cluster_self_lock"
)
diagnostic_fixture_inventory_guard_cluster = (
"test_training_m74_release_index_source_shape_fixture_guard_methods_constant_exactness_bridge_triplet_diagnostic_fixture_inventory_self_lock",
"test_training_m75_release_index_source_shape_fixture_guard_methods_constant_exactness_bridge_triplet_diagnostic_fixture_inventory_source_shape_self_lock",
"test_training_m76_release_index_source_shape_fixture_guard_methods_constant_exactness_bridge_triplet_diagnostic_fixture_inventory_source_shape_rejects_dynamic_sources",
"test_training_m77_release_index_source_shape_fixture_guard_methods_constant_exactness_bridge_triplet_diagnostic_fixture_inventory_source_shape_edge_diagnostics_are_locked",
"test_training_m78_release_index_source_shape_fixture_guard_methods_constant_exactness_bridge_triplet_diagnostic_fixture_inventory_source_shape_accepts_ordered_literal_sources",
)
module_source = Path(__file__).read_text(encoding="utf-8")
module_tree = ast.parse(module_source)
test_case_name = f"{type(self).__module__}.{type(self).__qualname__}"
def local_assignment_value(method_name: str, local_name: str) -> ast.AST:
methods = tuple(
node
for node in ast.walk(module_tree)
if isinstance(node, ast.FunctionDef) and node.name == method_name
)
self.assertEqual(len(methods), 1)
assignments = tuple(
node.value
for node in ast.walk(methods[0])
if (
isinstance(node, ast.Assign)
and len(node.targets) == 1
and isinstance(node.targets[0], ast.Name)
and node.targets[0].id == local_name
)
)
self.assertEqual(len(assignments), 1)
return assignments[0]
role_mapping = ast.literal_eval(
local_assignment_value(
"test_training_m41_release_index_guard_inventory_is_current",
"required_guard_tests_by_role",
)
)
expected_inventory = ast.literal_eval(
local_assignment_value(
"test_training_m52_release_index_guard_inventory_order_and_uniqueness_self_lock",
"expected_inventory",
)
)
self.assertIn(guard_name, TRAINING_M41_RELEASE_INDEX_GUARD_TEST_INVENTORY)
self.assertEqual(len(diagnostic_fixture_inventory_guard_cluster), 5)
for method_name in diagnostic_fixture_inventory_guard_cluster:
with self.subTest(method_name=method_name):
self.assertEqual(
TRAINING_M41_RELEASE_INDEX_GUARD_TEST_INVENTORY.count(
method_name
),
1,
)
loader = unittest.TestLoader()
suite = loader.loadTestsFromName(f"{test_case_name}.{method_name}")
self.assertEqual(loader.errors, [])
self.assertEqual(suite.countTestCases(), 1)
cluster_start = TRAINING_M41_RELEASE_INDEX_GUARD_TEST_INVENTORY.index(
diagnostic_fixture_inventory_guard_cluster[0]
)
self.assertEqual(
TRAINING_M41_RELEASE_INDEX_GUARD_TEST_INVENTORY[
cluster_start : cluster_start
+ len(diagnostic_fixture_inventory_guard_cluster)
],
diagnostic_fixture_inventory_guard_cluster,
)
self.assertEqual(
tuple(
method_name
for method_name in role_mapping.values()
if method_name in diagnostic_fixture_inventory_guard_cluster
),
diagnostic_fixture_inventory_guard_cluster,
)
self.assertEqual(
tuple(
method_name
for method_name in expected_inventory
if method_name in diagnostic_fixture_inventory_guard_cluster
),
diagnostic_fixture_inventory_guard_cluster,
)
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"