
    io'                     R   d Z ddlZddlmc m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 }|st        j                  d|fd| t         f      t        j                  |       dt	        j
                         v st        j                  t               rt        j                  t               nddz  }dd|iz  }t        t        j                  |            dx} }d	} | t         v }|st        j                  d|fd| t         f      t        j                  |       dt	        j
                         v st        j                  t               rt        j                  t               nddz  }dd|iz  }t        t        j                  |            dx} }d
} | t         v }|st        j                  d|fd| t         f      t        j                  |       dt	        j
                         v st        j                  t               rt        j                  t               nddz  }dd|iz  }t        t        j                  |            dx} }t         d   d   } d}| |k(  }|slt        j                  d|fd| |f      t        j                  |       t        j                  |      dz  }dd|iz  }t        t        j                  |            dx} x}}t         d	   d   } d}| |k(  }|slt        j                  d|fd| |f      t        j                  |       t        j                  |      dz  }dd|iz  }t        t        j                  |            dx} x}}t         d
   d   } d}| |k(  }|slt        j                  d|fd| |f      t        j                  |       t        j                  |      dz  }dd|iz  }t        t        j                  |            dx} x}}d} | t         v }|st        j                  d|fd| t         f      t        j                  |       dt	        j
                         v st        j                  t               rt        j                  t               nddz  }dd|iz  }t        t        j                  |            dx} }d} | t         v }|st        j                  d|fd| t         f      t        j                  |       dt	        j
                         v st        j                  t               rt        j                  t               nddz  }dd|iz  }t        t        j                  |            dx} }d} | t         v }|st        j                  d|fd| t         f      t        j                  |       dt	        j
                         v st        j                  t               rt        j                  t               nddz  }dd|iz  }t        t        j                  |            dx} }d} | t         v }|st        j                  d|fd| t         f      t        j                  |       dt	        j
                         v st        j                  t               rt        j                  t               nddz  }dd|iz  }t        t        j                  |            dx} }d} | t         v }|st        j                  d|fd| t         f      t        j                  |       dt	        j
                         v st        j                  t               rt        j                  t               nddz  }dd|iz  }t        t        j                  |            dx} }t         d   d   } d}| |k(  }|slt        j                  d|fd| |f      t        j                  |       t        j                  |      dz  }dd|iz  }t        t        j                  |            dx} x}}t         d   d   } d}| |k(  }|slt        j                  d|fd| |f      t        j                  |       t        j                  |      dz  }dd|iz  }t        t        j                  |            dx} x}}t         d   d   } d}| |k(  }|slt        j                  d|fd| |f      t        j                  |       t        j                  |      dz  }dd|iz  }t        t        j                  |            dx} x}}t         d   d   } d}| |k(  }|slt        j                  d|fd| |f      t        j                  |       t        j                  |      dz  }dd|iz  }t        t        j                  |            dx} x}}t         d   d   } d}| |k(  }|slt        j                  d|fd| |f      t        j                  |       t        j                  |      dz  }dd|iz  }t        t        j                  |            dx} x}}t        d       y)u   팀 정보 데이터 검증	dev1-teaminz%(py1)s in %(py3)sr   py1py3assert %(py5)spy5N	dev2-teamz	dev3-teamtypedirect==)z%(py1)s == %(py4)s)r   py4zassert %(py6)spy6	dev4-team	dev5-team	dev6-team	dev7-team	dev8-teammcpz[PASS] test_team_info)
r   
@pytest_ar_call_reprcompare	_saferepr@py_builtinslocals_should_repr_global_nameAssertionError_format_explanationprint)@py_assert0@py_assert2@py_format4@py_format6@py_assert3@py_format5@py_format7s          0/home/jay/workspace/prompts/test_team_prompts.pytest_team_infor0      s   #;)####;)###;######)###)########;)####;)###;######)###)########;)####;)###;######)###)#######[!&)5X5)X5555)X555)555X5555555[!&)5X5)X5555)X555)555X5555555[!&)5X5)X5555)X555)555X5555555#;)####;)###;######)###)########;)####;)###;######)###)########;)####;)###;######)###)########;)####;)###;######)###)########;)####;)###;######)###)#######[!&)5X5)X5555)X555)555X5555555[!&)5X5)X5555)X555)555X5555555[!&)5X5)X5555)X555)555X5555555[!&)5X5)X5555)X555)555X5555555[!&)2U2)U2222)U222)222U2222222	
!"    c                  d   ddl m}  t        j                  j	                  d      xs | j                         j                  d      }t        |k(  }|st        j                  d|fdt        |f      dt        j                         v st        j                  t              rt        j                  t              nddt        j                         v st        j                  |      rt        j                  |      ndd	z  }d
d|iz  }t        t        j                  |            d}t!        d       y)u    CHAT_ID 검증 — config 기반r   )ConfigManagerCOKACDIR_CHAT_IDchat_idr   z%(py0)s == %(py2)sr   expectedpy0py2assert %(py4)sr   Nz[PASS] test_chat_id)config.loaderr3   osenvirongetget_instanceget_constantr   r   r    r"   r#   r$   r!   r%   r&   r'   )r3   r7   @py_assert1@py_format3r-   s        r/   test_chat_idrD   &   s    +zz~~01i]5O5O5Q5^5^_h5iHh7h77hh	
 r1   c                     t        ddd      } d}|| v }|st        j                  d|fd|| f      t        j                  |      dt	        j
                         v st        j                  |       rt        j                  |       nddz  }d	d
|iz  }t        t        j                  |            dx}}d}|| v }|st        j                  d|fd|| f      t        j                  |      dt	        j
                         v st        j                  |       rt        j                  |       nddz  }d	d
|iz  }t        t        j                  |            dx}}d}|| v }|st        j                  d|fd|| f      t        j                  |      dt	        j
                         v st        j                  |       rt        j                  |       nddz  }d	d
|iz  }t        t        j                  |            dx}}d}|| v }|st        j                  d|fd|| f      t        j                  |      dt	        j
                         v st        j                  |       rt        j                  |       nddz  }d	d
|iz  }t        t        j                  |            dx}}d}|| v }|st        j                  d|fd|| f      t        j                  |      dt	        j
                         v st        j                  |       rt        j                  |       nddz  }d	d
|iz  }t        t        j                  |            dx}}d}|| v }|st        j                  d|fd|| f      t        j                  |      dt	        j
                         v st        j                  |       rt        j                  |       nddz  }d	d
|iz  }t        t        j                  |            dx}}d}|| v }|st        j                  d|fd|| f      t        j                  |      dt	        j
                         v st        j                  |       rt        j                  |       nddz  }d	d
|iz  }t        t        j                  |            dx}}d}|| v }|st        j                  d|fd|| f      t        j                  |      dt	        j
                         v st        j                  |       rt        j                  |       nddz  }d	d
|iz  }t        t        j                  |            dx}}d}|| v }|st        j                  d|fd|| f      t        j                  |      dt	        j
                         v st        j                  |       rt        j                  |       nddz  }d	d
|iz  }t        t        j                  |            dx}}d}|| v}|st        j                  d|fd|| f      t        j                  |      dt	        j
                         v st        j                  |       rt        j                  |       nddz  }d	d
|iz  }t        t        j                  |            dx}}t        d       y)u&   dev1-team (direct) 프롬프트 검증r	   task-1.1u   로그인 페이지 개발u   헤르메스r
   r   promptr   r   r   Nu   개발1팀장u   작업 상세는zmemory/tasks/task-1.1.mdu   팀원 구성u   불칸DIRECT-WORKFLOW.mdztask_id: task-1.1openclawnot inz%(py1)s not in %(py3)sz[PASS] test_direct_prompt_dev1
r   r   r    r!   r"   r#   r$   r%   r&   r'   rG   r(   r)   r*   r+   s        r/   test_direct_prompt_dev1rO   .   s   +z3OPF#>V####>V###>######V###V#######$?f$$$$?f$$$?$$$$$$f$$$f$$$$$$$:::''''''''''''''''''''''''%/%////%///%////////////////$?f$$$$?f$$$?$$$$$$f$$$f$$$$$$$8v8v8vv)6))))6)))))))))6)))6)))))))(&((((&(((((((((&(((&((((((( #:V####:V###:######V###V#######	
*+r1   c                  :	   t        ddd      } d}|| v }|st        j                  d|fd|| f      t        j                  |      dt	        j
                         v st        j                  |       rt        j                  |       nddz  }d	d
|iz  }t        t        j                  |            dx}}d}|| v }|st        j                  d|fd|| f      t        j                  |      dt	        j
                         v st        j                  |       rt        j                  |       nddz  }d	d
|iz  }t        t        j                  |            dx}}d}|| v }|st        j                  d|fd|| f      t        j                  |      dt	        j
                         v st        j                  |       rt        j                  |       nddz  }d	d
|iz  }t        t        j                  |            dx}}d}|| v }|st        j                  d|fd|| f      t        j                  |      dt	        j
                         v st        j                  |       rt        j                  |       nddz  }d	d
|iz  }t        t        j                  |            dx}}d}|| v }|st        j                  d|fd|| f      t        j                  |      dt	        j
                         v st        j                  |       rt        j                  |       nddz  }d	d
|iz  }t        t        j                  |            dx}}d}|| v }|st        j                  d|fd|| f      t        j                  |      dt	        j
                         v st        j                  |       rt        j                  |       nddz  }d	d
|iz  }t        t        j                  |            dx}}d}|| v}|st        j                  d|fd|| f      t        j                  |      dt	        j
                         v st        j                  |       rt        j                  |       nddz  }d	d
|iz  }t        t        j                  |            dx}}t        d       y)u&   dev2-team (direct) 프롬프트 검증r   ztask-2.1u   API 서버 구축u   오딘r
   r   rG   r   r   r   Nu   개발2팀장u   토르rH   ztask_id: task-2.1rI   rJ   rL   z[PASS] test_direct_prompt_dev2rM   rN   s        r/   test_direct_prompt_dev2rQ   C   s   +z3FGF8v8v8vv$?f$$$$?f$$$?$$$$$$f$$$f$$$$$$$:::8v8v8vv)6))))6)))))))))6)))6)))))))(&((((&(((((((((&(((&(((((((#:V####:V###:######V###V#######	
*+r1   c                     t        ddd      } d}|| v }|st        j                  d|fd|| f      t        j                  |      dt	        j
                         v st        j                  |       rt        j                  |       nddz  }d	d
|iz  }t        t        j                  |            dx}}d}|| v }|st        j                  d|fd|| f      t        j                  |      dt	        j
                         v st        j                  |       rt        j                  |       nddz  }d	d
|iz  }t        t        j                  |            dx}}d}|| v }|st        j                  d|fd|| f      t        j                  |      dt	        j
                         v st        j                  |       rt        j                  |       nddz  }d	d
|iz  }t        t        j                  |            dx}}d}|| v }|st        j                  d|fd|| f      t        j                  |      dt	        j
                         v st        j                  |       rt        j                  |       nddz  }d	d
|iz  }t        t        j                  |            dx}}d}|| v }|st        j                  d|fd|| f      t        j                  |      dt	        j
                         v st        j                  |       rt        j                  |       nddz  }d	d
|iz  }t        t        j                  |            dx}}d}|| v }|st        j                  d|fd|| f      t        j                  |      dt	        j
                         v st        j                  |       rt        j                  |       nddz  }d	d
|iz  }t        t        j                  |            dx}}d}|| v }|st        j                  d|fd|| f      t        j                  |      dt	        j
                         v st        j                  |       rt        j                  |       nddz  }d	d
|iz  }t        t        j                  |            dx}}d}|| v }|st        j                  d|fd|| f      t        j                  |      dt	        j
                         v st        j                  |       rt        j                  |       nddz  }d	d
|iz  }t        t        j                  |            dx}}d}|| v }|st        j                  d|fd|| f      t        j                  |      dt	        j
                         v st        j                  |       rt        j                  |       nddz  }d	d
|iz  }t        t        j                  |            dx}}d}|| v }|st        j                  d|fd|| f      t        j                  |      dt	        j
                         v st        j                  |       rt        j                  |       nddz  }d	d
|iz  }t        t        j                  |            dx}}d}|| v }|st        j                  d|fd|| f      t        j                  |      dt	        j
                         v st        j                  |       rt        j                  |       nddz  }d	d
|iz  }t        t        j                  |            dx}}d}|| v}|st        j                  d|fd|| f      t        j                  |      dt	        j
                         v st        j                  |       rt        j                  |       nddz  }d	d
|iz  }t        t        j                  |            dx}}d}|| v }|st        j                  d|fd|| f      t        j                  |      dt	        j
                         v st        j                  |       rt        j                  |       nddz  }d	d
|iz  }t        t        j                  |            dx}}t        d       y)uC   dev8-team (mcp) 프롬프트 검증 - MCP tool 기반 팀원 위임r   ztask-8.1u    데이터 파이프라인 구축u   라(Ra)r
   r   rG   r   r   r   Nglm_backendglm_frontendglm_uxui
glm_testerztask_id: task-8.1zteam_id: dev8-teamWORKSPACE_ROOT:CHAT_ID:ANU_KEY:rI   rJ   rL   zmemory/tasks/task-8.1.mdz[PASS] test_mcp_prompt_dev8rM   rN   s        r/   test_mcp_prompt_dev8rZ   T   s   +z3UVF 999::: "=F""""=F"""=""""""F"""F"""""""#>V####>V###>######V###V#######:::!<6!!!!<6!!!<!!!!!!6!!!6!!!!!!! (&((((&(((((((((&(((&((((((()6))))6)))))))))6)))6)))))))&&&&&&&&&&&&&&&&&&&&&&&&:::::: #:V####:V###:######V###V####### &/%////%///%////////////////	
'(r1   c                     t        ddd      } d}|| v }|st        j                  d|fd|| f      t        j                  |      dt	        j
                         v st        j                  |       rt        j                  |       nddz  }d	d
|iz  }t        t        j                  |            dx}}d}|| v }|st        j                  d|fd|| f      t        j                  |      dt	        j
                         v st        j                  |       rt        j                  |       nddz  }d	d
|iz  }t        t        j                  |            dx}}d}|| v }|st        j                  d|fd|| f      t        j                  |      dt	        j
                         v st        j                  |       rt        j                  |       nddz  }d	d
|iz  }t        t        j                  |            dx}}t        d       y)u&   dev4-team (direct) 프롬프트 검증r   ztask-4.1u   힌두팀 코딩 작업u   비슈누 (Vishnu)r
   r   rG   r   r   r   Nz[PASS] test_direct_prompt_dev4rM   rN   s        r/   test_direct_prompt_dev4r\   r   s(   +z3LMF)6))))6)))))))))6)))6)))))))::: ;&    ;&   ;      &   &       	
*+r1   c                     t        ddd      } d}|| v }|st        j                  d|fd|| f      t        j                  |      dt	        j
                         v st        j                  |       rt        j                  |       nddz  }d	d
|iz  }t        t        j                  |            dx}}d}|| v }|st        j                  d|fd|| f      t        j                  |      dt	        j
                         v st        j                  |       rt        j                  |       nddz  }d	d
|iz  }t        t        j                  |            dx}}d}|| v }|st        j                  d|fd|| f      t        j                  |      dt	        j
                         v st        j                  |       rt        j                  |       nddz  }d	d
|iz  }t        t        j                  |            dx}}t        d       y)u&   dev5-team (direct) 프롬프트 검증r   task-5.1u#   메소포타미아팀 코딩 작업u   마르둑 (Marduk)r
   r   rG   r   r   r   Nz[PASS] test_direct_prompt_dev5rM   rN   s        r/   test_direct_prompt_dev5r_   {   s(   +z3XYF)6))))6)))))))))6)))6)))))))::: ;&    ;&   ;      &   &       	
*+r1   c                     t        ddd      } d}|| v }|st        j                  d|fd|| f      t        j                  |      dt	        j
                         v st        j                  |       rt        j                  |       nddz  }d	d
|iz  }t        t        j                  |            dx}}d}|| v }|st        j                  d|fd|| f      t        j                  |      dt	        j
                         v st        j                  |       rt        j                  |       nddz  }d	d
|iz  }t        t        j                  |            dx}}d}|| v }|st        j                  d|fd|| f      t        j                  |      dt	        j
                         v st        j                  |       rt        j                  |       nddz  }d	d
|iz  }t        t        j                  |            dx}}t        d       y)u&   dev6-team (direct) 프롬프트 검증r   task-6.1u   슬라브팀 코딩 작업u   페룬 (Perun)r
   r   rG   r   r   r   Nz[PASS] test_direct_prompt_dev6rM   rN   s        r/   test_direct_prompt_dev6rb      s(   +z3OPF%v%%%%v%%%%%%%%%v%%%v%%%%%%%::: ;&    ;&   ;      &   &       	
*+r1   c                     t        ddd      } d}|| v }|st        j                  d|fd|| f      t        j                  |      dt	        j
                         v st        j                  |       rt        j                  |       nddz  }d	d
|iz  }t        t        j                  |            dx}}d}|| v }|st        j                  d|fd|| f      t        j                  |      dt	        j
                         v st        j                  |       rt        j                  |       nddz  }d	d
|iz  }t        t        j                  |            dx}}d}|| v }|st        j                  d|fd|| f      t        j                  |      dt	        j
                         v st        j                  |       rt        j                  |       nddz  }d	d
|iz  }t        t        j                  |            dx}}t        d       y)u&   dev7-team (direct) 프롬프트 검증r   task-7.1u   마야팀 코딩 작업u   이참나 (Itzamna)r
   r   rG   r   r   r   Nz[PASS] test_direct_prompt_dev7rM   rN   s        r/   test_direct_prompt_dev7re      s(   +z3LMF * F**** F*** ******F***F*******::: ;&    ;&   ;      &   &       	
*+r1   c                     t        dddd      } d}|| v }|st        j                  d|fd|| f      t        j                  |      d	t	        j
                         v st        j                  |       rt        j                  |       nd	d
z  }dd|iz  }t        t        j                  |            dx}}d}|| v }|st        j                  d|fd|| f      t        j                  |      d	t	        j
                         v st        j                  |       rt        j                  |       nd	d
z  }dd|iz  }t        t        j                  |            dx}}d}|| v }|st        j                  d|fd|| f      t        j                  |      d	t	        j
                         v st        j                  |       rt        j                  |       nd	d
z  }dd|iz  }t        t        j                  |            dx}}d}|| v }|st        j                  d|fd|| f      t        j                  |      d	t	        j
                         v st        j                  |       rt        j                  |       nd	d
z  }dd|iz  }t        t        j                  |            dx}}d}|| v}|st        j                  d|fd|| f      t        j                  |      d	t	        j
                         v st        j                  |       rt        j                  |       nd	d
z  }dd|iz  }t        t        j                  |            dx}}t        d       y)u9   critical 레벨 추가 검증 섹션 - QC-RULES.md 참조r	   rF   u   중요 릴리즈 작업criticallevel	   마아트r
   r   rG   r   r   r   Nu   독립 검증QC-RULES.mdu   검증 레벨: critical   로키rJ   rL   z[PASS] test_critical_levelrM   rN   s        r/   test_critical_levelrm      s   +z3LT^_F ;&    ;&   ;      &   &       $?f$$$$?f$$$?$$$$$$f$$$f$$$$$$$"=F""""=F"""=""""""F"""F"""""""$.$....$...$................!86!!!!86!!!8!!!!!!6!!!6!!!!!!!	
&'r1   c                     t        dddd      } d}|| v }|st        j                  d|fd|| f      t        j                  |      d	t	        j
                         v st        j                  |       rt        j                  |       nd	d
z  }dd|iz  }t        t        j                  |            dx}}d}|| v }|st        j                  d|fd|| f      t        j                  |      d	t	        j
                         v st        j                  |       rt        j                  |       nd	d
z  }dd|iz  }t        t        j                  |            dx}}d}|| v }|st        j                  d|fd|| f      t        j                  |      d	t	        j
                         v st        j                  |       rt        j                  |       nd	d
z  }dd|iz  }t        t        j                  |            dx}}d}|| v }|st        j                  d|fd|| f      t        j                  |      d	t	        j
                         v st        j                  |       rt        j                  |       nd	d
z  }dd|iz  }t        t        j                  |            dx}}d}|| v }|st        j                  d|fd|| f      t        j                  |      d	t	        j
                         v st        j                  |       rt        j                  |       nd	d
z  }dd|iz  }t        t        j                  |            dx}}t        d       y)u9   security 레벨 추가 검증 섹션 - QC-RULES.md 참조r	   rF   u   보안 민감 작업securityrh   rj   r
   r   rG   r   r   r   Nrl   u   보안 감사rk   u   검증 레벨: securityz[PASS] test_security_levelrM   rN   s        r/   test_security_levelrp      s   +z3IQ[\F ;&    ;&   ;      &   &       8v8v8vv$?f$$$$?f$$$?$$$$$$f$$$f$$$$$$$"=F""""=F"""=""""""F"""F"""""""$.$....$...$................	
&'r1   c                  ,   	 t        ddd       d} | sNt        j                  d      dz   dt        j                  |       iz  }t	        t        j
                  |            d} t        d       y# t        $ r}d	} t        |      }| |v }|st        j                  d
|fd| |f      t        j                  |       dt        j                         v st        j                  t              rt        j                  t              nddt        j                         v st        j                  |      rt        j                  |      ndt        j                  |      dz  }dd|iz  }t	        t        j
                  |            dx} x}}Y d}~+d}~ww xY w)u   잘못된 팀 ID 에러 처리z
dev99-teamz	task-99.1u
   없는 팀Fu$   ValueError가 발생해야 합니다z
>assert %(py1)sr   Nu   알 수 없는 팀 IDr
   )z0%(py1)s in %(py6)s
{%(py6)s = %(py3)s(%(py4)s)
}stre)r   r   r   r   zassert %(py8)spy8z[PASS] test_invalid_team)r   r   _format_assertmsgr!   r%   r&   
ValueErrorrr   r    r"   r#   r$   r'   )r(   @py_format2rs   @py_assert5r)   r.   @py_format9s          r/   test_invalid_teamrz      s    1\;=<u<<<<<<u<<<<< 

$%  1&0#a&0&&0000&&000&000000#000#000000a000a000&000000001s   A!A/ /
F9DFFc                     t        dddd      } d}|| v }|st        j                  d|fd|| f      t        j                  |      dt	        j
                         v st        j                  |       rt        j                  |       nddz  }d	d
|iz  }t        t        j                  |            dx}}d}|| v }|st        j                  d|fd|| f      t        j                  |      dt	        j
                         v st        j                  |       rt        j                  |       nddz  }d	d
|iz  }t        t        j                  |            dx}}d}|| v }|st        j                  d|fd|| f      t        j                  |      dt	        j
                         v st        j                  |       rt        j                  |       nddz  }d	d
|iz  }t        t        j                  |            dx}}t        d       y)u-   dispatch.py 호출 방식 호환성 테스트r   r^   u   테스트 작업normalr
   r   rG   r   r   r   Nzmemory/tasks/task-5.1.mdrH   z"[PASS] test_dispatch_compatibilityrM   rN   s        r/   test_dispatch_compatibilityr}      s/    +z3ExPF:::%/%////%///%////////////////)6))))6)))))))))6)))6)))))))	
./r1   c            	      L   dddd} t        d| d   | d   | j                  dd	            }d}||v }|st        j                  d
|fd||f      t        j                  |      dt        j                         v st        j                  |      rt        j                  |      nddz  }dd|iz  }t        t        j                  |            dx}}d}||v }|st        j                  d
|fd||f      t        j                  |      dt        j                         v st        j                  |      rt        j                  |      nddz  }dd|iz  }t        t        j                  |            dx}}d}||v }|st        j                  d
|fd||f      t        j                  |      dt        j                         v st        j                  |      rt        j                  |      nddz  }dd|iz  }t        t        j                  |            dx}}t        d       y)u1   orchestrator.py 호출 방식 호환성 테스트ra   u   오케스트레이터 테스트rg   )iddescri   r   r   r   ri   r|   r
   r   rG   r   r   r   Nzmemory/tasks/task-6.1.mdrj   z&[PASS] test_orchestrator_compatibility)r   r?   r   r    r!   r"   r#   r$   r%   r&   r'   )taskrG   r(   r)   r*   r+   s         r/   test_orchestrator_compatibilityr      sM    &GR\]D+tDz4<'S[A\]F:::%/%////%///%//////////////// ;&    ;&   ;      &   &       	
23r1   c                     t        dddd      } t        dddd      }| |k(  }|st        j                  d|fd| |f      dt        j                         v st        j
                  |       rt        j                  |       nddt        j                         v st        j
                  |      rt        j                  |      ndd	z  }d
d|iz  }t        t        j                  |            d}t        d       y)uR   dispatch.py와 orchestrator.py가 동일한 프롬프트를 생성하는지 확인r   rd   u   동일성 테스트r|   r   r6   prompt1prompt2r8   r;   r   Nz[PASS] test_prompt_consistency)
r   r   r    r"   r#   r$   r!   r%   r&   r'   )r   r   rB   rC   r-   s        r/   test_prompt_consistencyr      s     ;
4I8TG;
4I8TGg7g77gg	
*+r1   c                     t         j                  j                  t        dd      } t         j                  }|j                  } ||       }|st        j                  d|        dz   dt        j                         v st        j                  t               rt        j                  t               ndt        j                  |      t        j                  |      dt        j                         v st        j                  |       rt        j                  |       ndt        j                  |      dz  }t        t        j                  |            dx}x}}t        d	       y)
u'   DIRECT-WORKFLOW.md 파일 존재 확인promptsrH   u+   DIRECT-WORKFLOW.md 파일이 없습니다: zd
>assert %(py7)s
{%(py7)s = %(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.path
}.exists
}(%(py5)s)
}r=   workflow_path)r9   r:   r   r   py7Nz'[PASS] test_direct_workflow_file_exists)r=   pathjoinr   existsr   ru   r"   r#   r$   r!   r%   r&   r'   )r   rB   r,   @py_assert6@py_format8s        r/    test_direct_workflow_file_existsr      s    GGLL<PQM77g7>>g>-(g(gg,WXeWf*ggggggg2ggg2ggg7ggg>gggggg-ggg-ggg(gggggg	
34r1   c                     t        ddd      } t        ddd      }t        |       }d}||k  }|st        j                  d|fd||f      d	t	        j
                         v st        j                  t              rt        j                  t              nd	d
t	        j
                         v st        j                  |       rt        j                  |       nd
t        j                  |      t        j                  |      dz  }t        j                  dt        |        d      dz   d|iz  }t        t        j                  |            dx}x}}t        |      }d}||k  }|st        j                  d|fd||f      d	t	        j
                         v st        j                  t              rt        j                  t              nd	dt	        j
                         v st        j                  |      rt        j                  |      ndt        j                  |      t        j                  |      dz  }t        j                  dt        |       d      dz   d|iz  }t        t        j                  |            dx}x}}t        d       y)uI   dev1/dev2 프롬프트가 1,500자 이하인지 확인 (경량화 검증)r	   ztask-size-1u   크기 테스트 작업r   ztask-size-2i  )<=)z0%(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} <= %(py6)slenprompt_dev1)r9   r   r   r   u&   dev1 프롬프트가 1,500자 초과: u   자z
>assert %(py8)srt   Nprompt_dev2u&   dev2 프롬프트가 1,500자 초과: z![PASS] test_prompt_size_reduction)r   r   r   r    r"   r#   r$   r!   ru   r%   r&   r'   )r   r   r)   rx   @py_assert4r.   ry   s          r/   test_prompt_size_reductionr      s   {M;TUK{M;TUK{ctct#ccctcccccc3ccc3cccccc{ccc{cccccctccc'McR]N^M__b%cccccccc{ctct#ccctcccccc3ccc3cccccc{ccc{cccccctccc'McR]N^M__b%cccccccc	
-.r1   c                     t        ddd      } t        ddd      }| ddf|ddffD ]  \  }}}d| }||v }|st        j                  d|fd||f      t        j                  |      d	t	        j
                         v st        j                  |      rt        j                  |      nd	d
z  }t        j                  d|       dz   d|iz  }t        t        j                  |            dx}}d| }||v }|st        j                  d|fd||f      t        j                  |      d	t	        j
                         v st        j                  |      rt        j                  |      nd	d
z  }t        j                  d|       dz   d|iz  }t        t        j                  |            dx}}d}||v }|st        j                  d|fd||f      t        j                  |      d	t	        j
                         v st        j                  |      rt        j                  |      nd	d
z  }t        j                  d      dz   d|iz  }t        t        j                  |            dx}}d}||v }|st        j                  d|fd||f      t        j                  |      d	t	        j
                         v st        j                  |      rt        j                  |      nd	d
z  }t        j                  d      dz   d|iz  }t        t        j                  |            dx}}d}||v }|st        j                  d|fd||f      t        j                  |      d	t	        j
                         v st        j                  |      rt        j                  |      nd	d
z  }t        j                  d      dz   d|iz  }t        t        j                  |            dx}} 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: r
   r   rG   r   u   task_id 누락: z
>assert %(py5)sr   Nz	team_id: u   team_id 누락: rW   u   WORKSPACE_ROOT 누락rX   u   CHAT_ID 누락rY   u   ANU_KEY 누락z![PASS] test_placeholder_variables)r   r   r    r!   r"   r#   r$   ru   r%   r&   r'   )	r   r   rG   task_idteam_idr(   r)   r*   r+   s	            r/   test_placeholder_variablesr      s|   {K9WXK{K9WXK 
k;/	k;/% 6  7)$L$.LLL$LLL$LLLLLLLLLLLLL2B7)0LLLLLLL7)$L$.LLL$LLL$LLLLLLLLLLLLL2B7)0LLLLLLL C F*CCC FCCC CCCCCCFCCCFCCCC,CCCCCCC5zV#555zV555z555555V555V5555%55555555zV#555zV555z555555V555V5555%555555556 

-.r1   __main__u!   
=== 모든 테스트 통과! ===))__doc__builtinsr"   _pytest.assertion.rewrite	assertionrewriter   r=   syspathlibr   r   insertrr   __file__parentprompts.team_promptsr   r   r   r   r0   rD   rO   rQ   rZ   r\   r_   rb   re   rm   rp   rz   r}   r   r   r   r   r   __name__r'    r1   r/   <module>r      s#    	 
  3tH~,,334 5 Q Q#0!,*,")<,,,,
(	(&0	4,5//$ zN!#%$&  	
./' r1   