
    Rio'                     8   d Z ddlZddlZddlmZ ej
                  j                  d e ee      j                  j                               ddl
mZmZmZmZ d Zd Zd Zd Zd	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z e!dk(  r e         e         e         e         e         e         e         e         e         e         e         e         e         e         e         e         e         e          e"d       yy)u   
team_prompts 모듈 테스트
    N)Path)CHAT_ID	TEAM_INFOWORKSPACE_ROOTbuild_promptc                     dt         v sJ dt         v sJ dt         v sJ t         d   d   dk(  sJ t         d   d   dk(  sJ t         d   d   dk(  sJ dt         v sJ dt         v sJ dt         v sJ d	t         v sJ d
t         v sJ t         d   d   dk(  sJ t         d   d   dk(  sJ t         d   d   dk(  sJ t         d	   d   dk(  sJ t         d
   d   dk(  sJ t        d       y)u   팀 정보 데이터 검증	dev1-team	dev2-teamz	dev3-teamtypedirect	dev4-team	dev5-team	dev6-team	dev7-team	dev8-teammcpz[PASS] test_team_infoN)r   print     J/home/jay/workspace/.worktrees/task-2117-dev1/prompts/test_team_prompts.pytest_team_infor      s;   )###)###)###[!&)X555[!&)X555[!&)X555)###)###)###)###)###[!&)X555[!&)X555[!&)X555[!&)X555[!&)U222	
!"r   c                      ddl m}  t        j                  j	                  d      xs | j                         j                  d      }t        |k(  sJ t        d       y)u    CHAT_ID 검증 — config 기반r   )ConfigManagerCOKACDIR_CHAT_IDchat_idz[PASS] test_chat_idN)	config.loaderr   osenvirongetget_instanceget_constantr   r   )r   expecteds     r   test_chat_idr#   &   sI    +zz~~01i]5O5O5Q5^5^_h5iHh	
 r   c                      t        ddd      } d| v sJ d| v sJ d| v sJ d| v sJ d| v sJ d| v sJ d	| v sJ d
| v sJ d| v sJ d| vsJ t        d       y)u&   dev1-team (direct) 프롬프트 검증r	   task-1.1u   로그인 페이지 개발u   헤르메스u   개발1팀장u   작업 상세는zmemory/tasks/task-1.1.mdu   팀원 구성u   불칸DIRECT-WORKFLOW.mdztask_id: task-1.1openclawz[PASS] test_direct_prompt_dev1Nr   r   prompts    r   test_direct_prompt_dev1r+   .   s    +z3OPFV###f$$$'''%///f$$$v6)))&((( V###	
*+r   c                      t        ddd      } d| v sJ d| v sJ d| v sJ d| v sJ d| v sJ d| v sJ d	| vsJ t        d
       y)u&   dev2-team (direct) 프롬프트 검증r
   ztask-2.1u   API 서버 구축u   오딘u   개발2팀장u   토르r&   ztask_id: task-2.1r'   z[PASS] test_direct_prompt_dev2Nr(   r)   s    r   test_direct_prompt_dev2r-   C   s|    +z3FGFvf$$$v6)))&(((V###	
*+r   c                      t        ddd      } d| v sJ d| v sJ d| v sJ d| v sJ d| v sJ d| v sJ d	| v sJ d
| v sJ d| v sJ d| v sJ d| v sJ d| vsJ d| v sJ t        d       y)uC   dev8-team (mcp) 프롬프트 검증 - MCP tool 기반 팀원 위임r   ztask-8.1u    데이터 파이프라인 구축u   라(Ra)glm_backendglm_frontendglm_uxui
glm_testerztask_id: task-8.1zteam_id: dev8-teamWORKSPACE_ROOT:CHAT_ID:ANU_KEY:r'   zmemory/tasks/task-8.1.mdz[PASS] test_mcp_prompt_dev8Nr(   r)   s    r   test_mcp_prompt_dev8r6   T   s    +z3UVF  F"""V###6!!! &(((6)))&&& V### &///	
'(r   c                  X    t        ddd      } d| v sJ d| v sJ d| v sJ t        d       y)u&   dev4-team (direct) 프롬프트 검증r   ztask-4.1u   힌두팀 코딩 작업u   비슈누 (Vishnu)z[PASS] test_direct_prompt_dev4Nr(   r)   s    r   test_direct_prompt_dev4r8   r   sD    +z3LMF6)))&   	
*+r   c                  X    t        ddd      } d| v sJ d| v sJ d| v sJ t        d       y)u&   dev5-team (direct) 프롬프트 검증r   task-5.1u#   메소포타미아팀 코딩 작업u   마르둑 (Marduk)z[PASS] test_direct_prompt_dev5Nr(   r)   s    r   test_direct_prompt_dev5r;   {   sD    +z3XYF6)))&   	
*+r   c                  X    t        ddd      } d| v sJ d| v sJ d| v sJ t        d       y)u&   dev6-team (direct) 프롬프트 검증r   task-6.1u   슬라브팀 코딩 작업u   페룬 (Perun)z[PASS] test_direct_prompt_dev6Nr(   r)   s    r   test_direct_prompt_dev6r>      sD    +z3OPFv%%%&   	
*+r   c                  X    t        ddd      } d| v sJ d| v sJ d| v sJ t        d       y)u&   dev7-team (direct) 프롬프트 검증r   task-7.1u   마야팀 코딩 작업u   이참나 (Itzamna)z[PASS] test_direct_prompt_dev7Nr(   r)   s    r   test_direct_prompt_dev7rA      sD    +z3LMF F***&   	
*+r   c                  t    t        dddd      } d| v sJ d| v sJ d| v sJ d	| v sJ d
| vsJ t        d       y)u9   critical 레벨 추가 검증 섹션 - QC-RULES.md 참조r	   r%   u   중요 릴리즈 작업criticallevel	   마아트u   독립 검증QC-RULES.mdu   검증 레벨: critical   로키z[PASS] test_critical_levelNr(   r)   s    r   test_critical_levelrI      sc    +z3LT^_F&   f$$$F"""$...6!!!	
&'r   c                  t    t        dddd      } d| v sJ d| v sJ d| v sJ d	| v sJ d
| v sJ t        d       y)u9   security 레벨 추가 검증 섹션 - QC-RULES.md 참조r	   r%   u   보안 민감 작업securityrD   rF   rH   u   보안 감사rG   u   검증 레벨: securityz[PASS] test_security_levelNr(   r)   s    r   test_security_levelrL      sc    +z3IQ[\F&   vf$$$F"""$...	
&'r   c                      	 t        ddd       J d       # t        $ r} dt        |       v sJ Y d} ~ nd} ~ ww xY wt        d       y)u   잘못된 팀 ID 에러 처리z
dev99-teamz	task-99.1u
   없는 팀u$   ValueError가 발생해야 합니다u   알 수 없는 팀 IDNz[PASS] test_invalid_team)r   
ValueErrorstrr   )es    r   test_invalid_teamrQ      sI    1\;=<<<u 1&#a&0001	
$%s    	838c                  Z    t        dddd      } d| v sJ d| v sJ d| v sJ t        d       y)	u-   dispatch.py 호출 방식 호환성 테스트r   r:   u   테스트 작업normalzmemory/tasks/task-5.1.mdr&   z"[PASS] test_dispatch_compatibilityNr(   r)   s    r   test_dispatch_compatibilityrT      sH     +z3ExPF%///6)))	
./r   c            	          dddd} t        d| d   | d   | j                  dd	            }d|v sJ d
|v sJ d|v sJ t        d       y)u1   orchestrator.py 호출 방식 호환성 테스트r=   u   오케스트레이터 테스트rC   )iddescrE   r   rV   rW   rE   rS   zmemory/tasks/task-6.1.mdrF   z&[PASS] test_orchestrator_compatibilityN)r   r   r   )taskr*   s     r   test_orchestrator_compatibilityrY      si     &GR\]D+tDz4<'S[A\]F%///&   	
23r   c                  `    t        dddd      } t        dddd      }| |k(  sJ t        d       y)uR   dispatch.py와 orchestrator.py가 동일한 프롬프트를 생성하는지 확인r   r@   u   동일성 테스트rS   z[PASS] test_prompt_consistencyNr(   )prompt1prompt2s     r   test_prompt_consistencyr]      s=     ;
4I8TG;
4I8TGg	
*+r   c                      t         j                  j                  t        dd      } t         j                  j	                  |       s
J d|         t        d       y)u'   DIRECT-WORKFLOW.md 파일 존재 확인promptsr&   u+   DIRECT-WORKFLOW.md 파일이 없습니다: z'[PASS] test_direct_workflow_file_existsN)r   pathjoinr   existsr   )workflow_paths    r    test_direct_workflow_file_existsrd      sG    GGLL<PQM77>>-(g,WXeWf*gg(	
34r   c                      t        ddd      } t        ddd      }t        |       dk  sJ dt        |        d       t        |      dk  sJ d	t        |       d       t        d
       y)uI   dev1/dev2 프롬프트가 1,500자 이하인지 확인 (경량화 검증)r	   ztask-size-1u   크기 테스트 작업r
   ztask-size-2i  u&   dev1 프롬프트가 1,500자 초과: u   자u&   dev2 프롬프트가 1,500자 초과: z![PASS] test_prompt_size_reductionN)r   lenr   )prompt_dev1prompt_dev2s     r   test_prompt_size_reductionri      s}    {M;TUK{M;TUK{t#c'McR]N^M__b%cc#{t#c'McR]N^M__b%cc#	
-.r   c                      t        ddd      } t        ddd      }| ddf|ddffD ]I  \  }}}d| |v s
J d|        d| |v s
J d	|        d
|v sJ d       d|v sJ d       d|v rDJ d        t        d       y)uk   필수 변수(task_id, team_id, WORKSPACE_ROOT, CHAT_ID, ANU_KEY)가 프롬프트에 포함되는지 확인r	   z	task-ph-1u   플레이스홀더 테스트r
   z	task-ph-2z	task_id: u   task_id 누락: z	team_id: u   team_id 누락: r3   u   WORKSPACE_ROOT 누락r4   u   CHAT_ID 누락r5   u   ANU_KEY 누락z![PASS] test_placeholder_variablesNr(   )rg   rh   r*   task_idteam_ids        r   test_placeholder_variablesrm      s    {K9WXK{K9WXK 
k;/	k;/% 6  7)$.L2B7)0LL.7)$.L2B7)0LL. F*C,CC*V#5%55#V#5%55#6 

-.r   __main__u!   
=== 모든 테스트 통과! ===)#__doc__r   syspathlibr   r`   insertrO   __file__parentprompts.team_promptsr   r   r   r   r   r#   r+   r-   r6   r8   r;   r>   rA   rI   rL   rQ   rT   rY   r]   rd   ri   rm   __name__r   r   r   r   <module>rw      s   
 
  3tH~,,334 5 Q Q#0!,*,")<,,,,
(	(&0	4,5//$ zN!#%$&  	
./' r   