
    e9i                         d Z ddlZddlmc mZ ddlZej                  j                  dd       ddl
mZmZ d Zd Zd Zd Zd	 Zd
 Zd Zd Zd Zy)uC   task-92.1 검증: _build_work_philosophy_section() 추가 테스트    Nz/home/jay/workspace)build_prompt_build_work_philosophy_sectionc                  x   t               } t        | t              }|sd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t        j                         v st        j                  t              rt        j                  t              ndt        j                  |      dz  }t        t        j                  |            d}t        |       }d}||kD  }|st        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  }dd|iz  }t        t        j                  |            dx}x}}y)uT   _build_work_philosophy_section() 함수가 존재하고 문자열을 반환하는지z5assert %(py4)s
{%(py4)s = %(py0)s(%(py1)s, %(py2)s)
}
isinstanceresultstr)py0py1py2py4Nr   )>)z/%(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} > %(py6)slen)r	   r
   py3py6zassert %(py8)spy8)r   r   r   @py_builtinslocals
@pytest_ar_should_repr_global_name	_safereprAssertionError_format_explanationr   _call_reprcompare)r   @py_assert3@py_format5@py_assert2@py_assert5@py_assert4@py_format7@py_format9s           0/home/jay/workspace/teams/dev1/test_task_92_1.py#test_work_philosophy_section_existsr"      s   +-Ffc"""""""":""":""""""f"""f""""""c"""c""""""""""v;;?;33vv;    c                     t               } 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}}y)u-   5가지 원칙(A~E)이 모두 포함되는지u   계획 우선 원칙inz%(py1)s in %(py3)sr   r
   r   assert %(py5)spy5Nu   결정론적 실행u   피드백 사이클u   문서화 의무u   감사추적	r   r   r   r   r   r   r   r   r   r   @py_assert0r   @py_format4@py_format6s        r!   ,test_work_philosophy_contains_all_principlesr0      s   +-F!+!V++++!V+++!++++++V+++V+++++++ * F**** F*** ******F***F******* * F**** F*** ******F***F*******''''''''''''''''''''''''#>V####>V###>######V###V#######r#   c                  b   t               } 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}}y)	u   섹션 제목이 올바른지#   ## 작업 철학 (아누 가이드)r%   r'   r   r(   r)   r*   Nr+   r,   s        r!   "test_work_philosophy_section_titler3      sf    +-F0:0F::::0F:::0::::::F:::F:::::::r#   c                  h   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}}y)uA   dev1-team 프롬프트에 작업 철학 섹션이 포함되는지	dev1-teamztest-1   테스트 작업r2   r%   r'   promptr(   r)   r*   N	r   r   r   r   r   r   r   r   r   r7   r-   r   r.   r/   s        r!   $test_dev1_prompt_contains_philosophyr:      m    +x1CDF0:0F::::0F:::0::::::F:::F:::::::r#   c                  h   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}}y)uA   dev2-team 프롬프트에 작업 철학 섹션이 포함되는지	dev2-teamztest-2r6   r2   r%   r'   r7   r(   r)   r*   Nr8   r9   s        r!   $test_dev2_prompt_contains_philosophyr>   %   r;   r#   c                  h   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}}y)uG   dev3-team (GLM) 프롬프트에 작업 철학 섹션이 포함되는지	dev3-teamztest-3r6   r2   r%   r'   r7   r(   r)   r*   Nr8   r9   s        r!   $test_dev3_prompt_contains_philosophyrA   +   r;   r#   c                  J   dD ]  \  } }t        | |d      }|j                  d      }|j                  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  }t        j                  |  d
      dz   d|iz  }t        t        j                  |            d}  y)u?   작업 철학 섹션이 워크플로우 섹션 앞에 오는지))r5   ztest-4)r=   ztest-5)r@   ztest-6r6   r2      ## 워크플로우)<)z%(py0)s < %(py2)sphilosophy_idxworkflow_idx)r	   r   u4   : 작업 철학이 워크플로우 앞에 와야 함z
>assert %(py4)sr   N)r   indexr   r   r   r   r   r   _format_assertmsgr   r   )team_idtask_idr7   rE   rF   @py_assert1@py_format3r   s           r!   test_philosophy_before_workflowrM   1   s    g ogw0BC&KL||$89,nnn~nnnnnn~nnn~nnnnnnnnnnnnn	9m.nnnnnnn	or#   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}}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}}y)u-   기존 섹션들이 손상되지 않았는지r5   ztest-7r6   u&   ## 팀원 코워크 (Task tool 사용)r%   r'   prompt1r(   r)   r*   NrC   u   ## 작업 규칙u!   ## 보고서 작성 전 셀프 QCr@   ztest-8u   ## 중요 규칙prompt3u   ## 작업 지시r8   )rO   r-   r   r.   r/   rP   s         r!   test_existing_sections_intactrQ   :   s    ;2DEG3>3w>>>>3w>>>3>>>>>>w>>>w>>>>>>>*7****7*********7***7*******((((((((((((((((((((((((.9.'9999.'999.999999'999'9999999 ;2DEG((((((((((((((((((((((((((((((((((((((((((((((((*7****7*********7***7*******r#   c                  F   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}}y)uS   코워크 섹션이 변경되지 않았는지 (불칸, 이리스 등 포함 확인)r5   ztest-9r6   u   불칸r%   r'   r7   r(   r)   r*   Nu	   이리스u	   아테나u   아르고스r8   r9   s        r!   test_cowork_section_unchangedrS   J   su   +x1CDF8v8v8vv ;&    ;&   ;      &   &        ;&    ;&   ;      &   &       #>V####>V###>######V###V#######r#   )__doc__builtinsr   _pytest.assertion.rewrite	assertionrewriter   syspathinsertprompts.team_promptsr   r   r"   r0   r3   r:   r>   rA   rM   rQ   rS    r#   r!   <module>r^      sS    I   
 ( ) M$;;;;o+ $r#   