"""Regression tests for KIN-DOCS-009 — Удалить дублирующий тест-метод в TestNoLegacyOutputFormatSection. Acceptance criteria: 1. TestNoLegacyOutputFormatSection содержит ровно один метод проверки отсутствия '## Output format' 2. Единственный метод называется test_no_prompt_contains_old_output_format_header 3. Удалённый дубль test_grep_output_format_is_empty отсутствует в классе """ import inspect import pytest import tests.test_kin_docs_002_regression as target_module from tests.test_kin_docs_002_regression import TestNoLegacyOutputFormatSection def _get_test_methods(cls): """Возвращает список имён методов, начинающихся с 'test_'.""" return [ name for name, _ in inspect.getmembers(cls, predicate=inspect.isfunction) if name.startswith("test_") ] class TestKinDocs009Regression: """Верифицирует удаление дублирующего метода из TestNoLegacyOutputFormatSection.""" def test_class_has_exactly_one_test_method(self): """TestNoLegacyOutputFormatSection содержит ровно один test_-метод.""" methods = _get_test_methods(TestNoLegacyOutputFormatSection) assert len(methods) == 1, ( f"Ожидался 1 метод, найдено {len(methods)}: {methods}" ) def test_canonical_method_exists(self): """Метод test_no_prompt_contains_old_output_format_header существует в классе.""" assert hasattr(TestNoLegacyOutputFormatSection, "test_no_prompt_contains_old_output_format_header"), ( "Канонический метод test_no_prompt_contains_old_output_format_header отсутствует в классе" ) def test_duplicate_method_is_removed(self): """Удалённый дубль test_grep_output_format_is_empty отсутствует в классе.""" assert not hasattr(TestNoLegacyOutputFormatSection, "test_grep_output_format_is_empty"), ( "Дублирующий метод test_grep_output_format_is_empty всё ещё присутствует в классе" ) def test_no_other_output_format_checking_methods(self): """В классе нет скрытых методов, проверяющих '## Output format' по иному имени.""" methods = _get_test_methods(TestNoLegacyOutputFormatSection) # Единственный разрешённый метод allowed = {"test_no_prompt_contains_old_output_format_header"} unexpected = set(methods) - allowed assert not unexpected, ( f"Найдены неожиданные методы в TestNoLegacyOutputFormatSection: {unexpected}" )