kin/tests/test_kin_docs_009_regression.py
2026-03-19 18:43:43 +02:00

56 lines
2.9 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"""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}"
)