
    ia                         d Z ddlZddlmZ ddlZej
                  j                  d e ee      j                         j                  j                                ej                  d      d        Z G d d      Zy)	uA   dispatch.py의 agent-meeting 체크 함수 테스트 (task-2082).    N)PathT)autousec                 f    ddl }|j                  |d|        | dz  dz  j                  dd       | S )u   WORKSPACE를 tmp_path로 모킹r   N	WORKSPACEmemorymeetingsT)parentsexist_ok)dispatchsetattrmkdir)tmp_pathmonkeypatchr   s      R/home/jay/workspace/.worktrees/task-2116-dev1/tests/test_dispatch_meeting_check.pymock_workspacer      s;     +x8:%,,TD,IO    c                   :    e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
y	)
TestCheckAgentMeetingu   _check_agent_meeting 테스트c                 D    ddl m}  |ddd      }|J d|v sJ d|v sJ y)	uJ   시나리오 1: --level critical + Lv.4 + 미팅 파일 없음 → WARNINGr   _check_agent_meeting	task-9999u0   # task-9999: Lv.4 테스트
## 레벨
- criticalcriticalNu*   Agent 미팅 결과 파일이 없습니다z--skip-meetingr   r   selfr   r   results       r   (test_lv4_no_meeting_file_returns_warningz>TestCheckAgentMeeting.test_lv4_no_meeting_file_returns_warning   s=    1%k3gist!!!;vEEE6)))r   c                 0    ddl m}  |dddd      }|J y)	u?   시나리오 2: --skip-meeting 사용 시 WARNING 없이 통과r   r   r      Lv.4 작업r   T)skip_meetingNr   r   s       r   test_skip_meeting_returns_nonez4TestCheckAgentMeeting.test_skip_meeting_returns_none    s     1%k=*[_`~~r   c                 h    ddl m} |dz  dz  dz  }|j                  dd        |d	d
d      }|J y)uJ   시나리오 3: 미팅 파일 있고 만장일치 포함 → 정상 통과r   r   r   r   agent-meeting-task-9999.mdu,   # 미팅 결과
결론: 만장일치 합의
utf-8encodingr      # Lv.4 테스트r   Nr   r   
write_textr   r   r   meeting_filer   s        r   'test_meeting_file_with_unanimous_passesz=TestCheckAgentMeeting.test_meeting_file_with_unanimous_passes&   sH    1%0:=@\\ P[bc%k3EzR~~r   c                 ,    ddl m}  |ddd      }|J y)u3   시나리오 4: Lv.1-2 dispatch에는 영향 없음r   r   r   r    normalNr   r   s       r   test_lv1_dispatch_no_checkz0TestCheckAgentMeeting.test_lv1_dispatch_no_check.   s    1%k=(K~~r   c                 t    ddl m} |dz  dz  dz  }|j                  dd        |d	d
d      }|J d|v sJ y)uQ   시나리오 5: 미팅 파일 있지만 만장일치 키워드 없음 → WARNINGr   r   r   r   r$   u)   # 미팅 결과
결론: 다수결 합의
r%   r&   r   r(   r   Nu0   만장일치 합의가 확인되지 않습니다r)   r+   s        r   3test_meeting_file_without_unanimous_returns_warningzITestCheckAgentMeeting.test_meeting_file_without_unanimous_returns_warning4   sX    1%0:=@\\ MX_`%k3EzR!!!AVKKKr   c                 h    ddl m} |dz  dz  dz  }|j                  dd        |d	d
d      }|J y)uB   시나리오 6: 미팅 파일에 '만장일치 실패' → WARNINGr   r   r   r   r$   u,   # 미팅 결과
결론: 만장일치 실패
r%   r&   r   r(   r   Nr)   r+   s        r   9test_meeting_file_with_negative_unanimous_returns_warningzOTestCheckAgentMeeting.test_meeting_file_with_negative_unanimous_returns_warning=   sJ    1%0:=@\\ P[bc%k3EzR!!!r   c                 ,    ddl m}  |ddd      }|J y)uY   시나리오 7: level=critical이지만 task_desc에 Lv.4 패턴 없음 → 체크 안함r   r   r   u   # Lv.3 작업r   Nr   r   s       r   test_no_lv4_pattern_no_checkz2TestCheckAgentMeeting.test_no_lv4_pattern_no_checkE   s    1%k?JO~~r   N)__name__
__module____qualname____doc__r   r"   r-   r0   r2   r4   r6    r   r   r   r      s)    (*L"r   r   )r:   syspathlibr   pytestpathinsertstr__file__resolveparentfixturer   r   r;   r   r   <module>rF      sl    G 
   3tH~--/66==> ?  4 4r   