Тесты по модулям предметных областей
Пункт 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>
This commit is contained in:
1 parent
5367cb5e9c
commit
e1f197ccff
14 files changed
+1133
-995
No files matched your search
@@ -0,0 +1,20 @@
|
||||
# Итоги: 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/*`) оставлены как есть — это исторические документы.
|
||||
Reference in new issue
Block a user