Пункт 12 ревью 2026-09-28 17:35 (docs/changes/026): tests/test_app.py (936 строк) разнесён на test_security, test_devices, test_operations, test_backups, test_events, test_ids_migrations, test_architecture; общие хелперы — tests/helpers.py. Тела тестов не менялись (AST совпадает). security.reset_all_failures() — фикстура сбрасывает счётчики попыток по всем ключам, тесты не зависят от порядка. Тесты: 36 из 36 полным прогоном, каждый модуль отдельно и в обратном порядке; тест-линтер после переноса проверен мутацией. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2.1 KiB
2.1 KiB
Итоги: 026 — тесты по модулям (п. 12 ревью)
Источник — ревью docs/reviews/2026-09-28-1735-codebase-review.md, п. 12.
Сделано
tests/test_app.py(936 строк, 36 тестов) разнесён по модулям без изменения тел тестов:test_security.py(10),test_devices.py(7),test_operations.py(5),test_backups.py(5),test_events.py(5),test_ids_migrations.py(3),test_architecture.py(1). Общиеros_client,_request—tests/helpers.py; каждый модуль импортирует только нужное (pyflakes чисто).- Изоляция:
security.reset_all_failures()(очистка всех счётчиков неудачных попыток под блокировкой); фикстураenvвызывает её вместо двух точечных сбросов — тесты с разными IP не влияют друг на друга при любом порядке. Приложение функцию не вызывает. - README: дерево
tests/в «Архитектуре», запуск одного модуля в «Тестах», строка 026.
Проверено
- AST всех 36 тестовых функций (с декораторами) совпадает с
tests/test_app.pyиз HEAD; имена тестов до и после совпадают. pytest: 36 из 36 полным прогоном; каждый модуль отдельно — зелёный; модули в обратном порядке — 36 из 36.- Тест-линтер после переноса находит
app/: мутация (прямойget_deviceвrefresh_device) → падение с точным местом; файл восстановлен. - Стенд не пересобирался (тесты не входят в образ).
Оговорки
- Ссылки на
tests/test_app.pyв прежних отчётах ревью (docs/reviews/*) оставлены как есть — это исторические документы.