diff --git a/tests/test_kin_docs_002_regression.py b/tests/test_kin_docs_002_regression.py index 3fbd135..7a06bdd 100644 --- a/tests/test_kin_docs_002_regression.py +++ b/tests/test_kin_docs_002_regression.py @@ -60,6 +60,18 @@ class TestNoLegacyOutputFormatSection: f"Файлы с устаревшей секцией '## Output format': {files_with_old_header}" ) + def test_grep_output_format_is_empty(self): + """Эквивалент: grep -rl '## Output format' agents/prompts/ — пустой вывод.""" + matches = [ + str(f) + for f in _prompt_files() + if "## Output format" in f.read_text(encoding="utf-8") + ] + assert matches == [], ( + "grep -rl '## Output format' agents/prompts/ должен давать пустой вывод, " + f"но нашёл: {matches}" + ) + # --------------------------------------------------------------------------- # AC-3: Every prompt contains '## Return Format' diff --git a/tests/test_kin_docs_009_regression.py b/tests/test_kin_docs_009_regression.py deleted file mode 100644 index aff6a33..0000000 --- a/tests/test_kin_docs_009_regression.py +++ /dev/null @@ -1,56 +0,0 @@ -"""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}" - )