Files
wiki/tasks/orchestrator/reports/dev-2026-06-04-fix-plane-mocks.md
2026-06-04 22:10:14 +03:00

40 lines
2.4 KiB
Markdown
Raw 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.
# Dev Report: isolate webhook tests from live Plane API (fix CI)
Дата: 2026-06-04
Статус: IN PROGRESS
## Задача
Замокать сетевые Plane-вызовы в 3 тестах tests/test_webhooks.py чтобы они проходили в чистом CI-окружении без доступа к Plane API.
## Анализ
### Тест 1 — test_plane_webhook_creates_task
- plane.py:448-449: `from ..plane_sync import fetch_issue_sequence_id` — локальный импорт → патчить `src.plane_sync.fetch_issue_sequence_id`
- plane.py:534: `from ..plane_sync import add_comment as _add_comment` — локальный импорт → патчить `src.plane_sync.add_comment`
### Тест 2 — test_gitea_push_with_adr_advances_stage
- gitea.py:25: `from ..plane_sync import notify_stage_change as plane_notify_stage` — модульный импорт → патчить `src.webhooks.gitea.plane_notify_stage`
- РАСХОЖДЕНИЕ С ТЗ: тест assert'ит `mock_launcher.launch.assert_called_once()`, но код вызывает `enqueue_job` из db.py, не `launcher.launch`. Нужно дополнительно мокать `src.webhooks.gitea.enqueue_job` и исправить assert.
### Тест 3 — test_gitea_ci_failure_on_development_notifies_qg_failure
- Уже PASSED в чистом окружении! Дополнительных патчей не нужно.
## Сделано
- [ ] Изучить исходники src/webhooks/plane.py, gitea.py, plane_sync.py
- [ ] Создать ветку fix/isolate-webhook-tests-from-plane
- [ ] Применить патчи к tests/test_webhooks.py
- [ ] Проверить в чистом docker-окружении
- [ ] Push + PR
## Изменённые файлы
- `tests/test_webhooks.py` — добавлены @patch для изоляции сетевых вызовов Plane
## Результат
(в процессе)
## Проблемы и решения
- Тест 3 уже проходит (расхождение с ТЗ) — не требует изменений
- Тест 2: ТЗ говорит "только добавить @patch на plane_notify_stage", но этого недостаточно — нужно ещё мокать enqueue_job и исправить assert с launcher.launch
## Следующий шаг
Применить патчи и запустить тесты