# task-572.1 완료 보고서: 테스트 부채 2건 수정

## SCQA

**S**: notify-completion.py의 인터페이스 변경(task-563 원복)으로 `send_direct_telegram`, `wake_anu_via_cron` 함수가 제거되었으나, 2개 테스트 파일이 여전히 이 함수를 참조하여 테스트 실패/수집 에러 발생.

**C**: `tests/test_dispatch.py`에서 1건 FAIL, `tests/test_notify_completion.py`에서 수집 에러로 전체 테스트 스위트가 정상 동작하지 못함. `scripts/tests/test_notify_completion.py`의 COKACDIR_KEY_ANU 이슈는 task-569.1에서 이미 수정 완료 상태.

**Q**: 테스트 파일을 현재 notify-completion.py 인터페이스에 맞게 수정하여 전체 테스트 0 FAIL을 달성할 수 있는가?

**A**: 2개 테스트 파일을 현재 인터페이스에 맞게 수정 완료. 수집 에러 1건 해소, 테스트 실패 1건 해소. 전체 850 passed, 4 failed (기존 범위 밖 실패). pyright 에러 0건 (신규).

## 수정 내역

### 1. tests/test_dispatch.py
- **수정 테스트**: `TestSubprocessTimeout::test_notify_completion_send_failure_no_exit` (라인 804~835)
- **변경**: `send_direct_telegram` mock 제거 → `send_telegram_notification`, `create_done_clear`, `dispatch_next_phase` mock으로 교체
- **경로 변경**: `check_chain_status` 반환값을 `in_chain=True, is_last=False`로 변경 (체인 중간 Phase 경로에서 send 실패 테스트)

### 2. tests/test_notify_completion.py
- **수집 에러 해소**: `wake_anu_via_cron`, `send_direct_telegram` import 제거
- **TestGetAnuKey**: fallback 검증 → `sys.exit(1)` 검증으로 변경 (현재 인터페이스 반영)
- **TestWakeAnuSession**: `send_direct_telegram` mock → `subprocess.run` mock (cokacdir 호출 검증)
- **TestSendTelegramNotification**: `send_direct_telegram` mock → `subprocess.run` mock
- **TestSendDirectTelegram**: 클래스 전체 삭제 (함수 미존재)
- **TestMain**: 전 테스트의 `send_direct_telegram` mock → `wake_anu_session`/`send_telegram_notification` mock
- **TestDispatchExecution**: `send_direct_telegram` mock → `send_telegram_notification` mock
- **TestWakeAnuViaCron**: 클래스 전체 삭제 (함수 미존재)

### 3. scripts/tests/test_notify_completion.py
- **수정 불필요**: task-569.1에서 COKACDIR_KEY_ANU 환경변수 mock 이미 적용 완료. 13 passed 확인.

## 수정/생성 파일 목록
- `/home/jay/workspace/tests/test_dispatch.py` (수정)
- `/home/jay/workspace/tests/test_notify_completion.py` (수정)

## 테스트 결과

- `tests/test_dispatch.py`: **81 passed, 0 failed**
- `tests/test_notify_completion.py`: **25 passed, 0 failed** (수집 에러 해소)
- `scripts/tests/test_notify_completion.py`: **13 passed, 0 failed**
- 전체: **850 passed, 4 failed** (기존 범위 밖 실패)

### ⚠️ 기존 테스트 실패 4건 (본 작업 범위 외)
- `tests/test_group_chat.py::TestLoadPersonas::test_org_loads_expected_count` — 페르소나 수 19→21 변경
- `tests/test_group_chat.py::TestLoadPersonasFromOrg::test_excludes_planned_teams` — 동일
- `tests/test_task522.py::test_simple_http_server_stats` — keepalive 로직 변경
- `tests/test_task522.py::test_index_html_server_stats_listener` — setServerStats 호출 변경

## pyright 결과
- `tests/test_notify_completion.py`: **0 errors, 0 warnings** (신규)
- `tests/test_dispatch.py`: 3 errors (기존 import 해석 문제, 라인 40/47/155 — workspace root path 미등록)

## 발견 이슈

1. `tests/test_notify_completion.py`의 문제 범위가 task 지시보다 광범위 — import뿐 아니라 25개 테스트 전반에서 제거된 함수 참조
2. `scripts/tests/test_notify_completion.py`의 COKACDIR_KEY_ANU 이슈는 task-569.1에서 이미 수정 완료
3. 기존 테스트 실패 4건 (test_group_chat.py 2건, test_task522.py 2건)은 별도 작업 필요

## 셀프 QC 체크리스트
- [x] 1. 다른 파일 영향: 없음 (테스트 파일만 수정, 프로덕션 코드 변경 없음)
- [x] 2. 엣지 케이스: 실패/타임아웃/중복 생성 등 기존 커버리지 유지
- [x] 3. 작업 지시 일치: 테스트 부채 2건 수정 완료
- [x] 4. 에러 처리/보안: 테스트 코드만 변경, 보안 영향 없음
- [x] 5. 테스트 커버리지: notify-completion.py 현재 인터페이스 전체 테스트 커버
