---
task_id: task-1919
type: context
scope: task
created: 2026-04-17
updated: 2026-04-17
status: completed
---

# 맥락 노트: task-1919

**task**: task-1919

---

## 결정 근거

### 근본 원인 분석
- 모든 실패는 **테스트 간 모듈 상태 오염** (Test Isolation Failure)
- 개별 테스트 파일 실행 시 전부 통과, 전체 스위트에서만 실패
- 3가지 오염 원인 식별:
  1. dispatch 모듈 재로딩 → 함수 __globals__ 불일치
  2. test_group_chat.py의 requests stub → requests.exceptions 접근 불가
  3. test_qc_gate.py의 verifiers MagicMock → test_runner.verify()가 mock 반환

### 수정 전략: conftest 보호 + 개별 방어
- conftest.py에 dispatch 모듈 복원 fixture 추가
- conftest.py에 requests 조기 로드 추가 (stub 방지)
- conftest.py에 verifier 모듈 MagicMock 복원 fixture 추가
- test_task_1919.py에 방어적 verifier 복원 코드 추가
- test_qc_integration.py에 full_suite_check skip 추가 (timeout 방지)

### 3 Step Why
**1st**: 테스트 간 상태 오염으로 CI/CD 실패 → 수정 필수
**2nd**: conftest 전역 보호 + 개별 방어가 가장 비침투적이고 견고함
**3rd**: 오염 원인 파일 직접 수정은 해당 테스트 설계 의도 훼손 위험 / pytest-xdist는 인프라 변경 필요

## 참조 자료

- 오염 원인 1: `tests/test_qc_gate.py:42-44` (verifiers MagicMock)
- 오염 원인 2: `tests/test_group_chat.py:39-56` (requests stub)
- 오염 원인 3: 여러 테스트의 dispatch 모듈 재로딩

## 주의사항

- conftest.py의 `import requests as _requests_preload`는 린터가 미사용으로 제거할 수 있음 → `# noqa: F401` 주석 필수
- verifier 복원 fixture는 test_qc_gate.py 실행 순서에 의존 → 순서 무관하도록 MagicMock 타입 체크로 방어
