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

2.4 KiB
Raw Blame History

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

Следующий шаг

Применить патчи и запустить тесты