
    (<i                         d Z ddlZej                  j                  dd       ddlmZ 	 	 	 	 ddZd Zd Zd Z	d	 Z
d
 Zd Zd Zd Zy)uz   
test_three_docs_check.py - three_docs_check 검증기 테스트

벨레스(Veles) dev6팀 테스터 작성
task-1872_6.4
    Nz /home/jay/workspace/teams/shared)verifyc           	          | dz  dz  dz  |z  }|j                  dd       |dz  j                  d| d| d	| d
d       |dz  j                  d| d| d
d       |dz  j                  d| d| d
d       |S )u,   3문서 디렉토리와 파일 생성 헬퍼memoryplanstasksTparentsexist_okplan.md---
task_id: z 
type: plan
scope: task
status: z
---


utf-8encodingcontext-notes.mdz/
type: context
scope: task
status: active
---

checklist.mdz1
type: checklist
scope: task
status: active
---

)mkdir
write_text)base_dirtask_idplan_status	plan_bodycontext_bodychecklist_bodydocs_dirs          L/home/jay/workspace/.worktrees/task-2057-dev2/tests/test_three_docs_check.py_create_docsr      s     ("W,w6@HNN4$N/ 	%%

 	 
   	  &  ""..

   	  /  **

    	  +  O    c                 ~    d}t        | |dddd       t        |t        |             }|d   d	k(  sJ |d
   dk(  sJ y)ur   Lv.3+ 작업, 3문서 정상 존재 + status=completed + 체크리스트 100% + 플레이스홀더 없음 → PASSz	task-9901	completed   실제 계획 내용입니다.   실제 맥락 내용입니다.u;   - [x] 완료항목1
- [x] 완료항목2
- [x] 완료항목3r   r   r   r   r   	workspacenamethree_docs_checkstatusPASSNr   r   strtmp_pathr   results      r   test_pass_complete_docsr/   Q   sY    G25V Gs8}=F&>////(v%%%r   c                 |    d}t        | |ddd       t        |t        |             }|d   dk(  sJ |d	   d
k(  sJ y)uC   Lv.3+ 작업, 3문서 존재하지만 plan.md status=draft → WARNz	task-9902draftu/   아직 초안 상태의 계획 내용입니다.'   - [x] 완료항목1
- [x] 완료항목2r   r   r   r$   r&   r'   r(   WARNNr*   r,   s      r   test_warn_status_draftr5   c   sV    GCA Gs8}=F&>////(v%%%r   c                 \    d}t        |t        |             }|d   dk(  sJ |d   dk(  sJ y)uB   3문서 디렉토리 없음 → SKIP (디렉토리 없으면 SKIP)z	task-9903r$   r&   r'   r(   SKIPNr   r+   r,   s      r   test_fail_missing_directoryr9   t   s?    G Gs8}=F&>////(v%%%r   c                 \    d}t        |t        |             }|d   dk(  sJ |d   dk(  sJ y)u)   Lv.2 작업, 디렉토리 없음 → SKIPztask-9904-lv2r$   r&   r'   r(   r7   Nr8   r,   s      r   test_skip_no_docs_dirr;      s?    G Gs8}=F&>////(v%%%r   c                 "   d}| dz  dz  dz  |z  }|j                  dd       |dz  j                  dd	
       |dz  j                  dd	
       |dz  j                  dd	
       t        |t        |             }|d   dk(  sJ |d   dk(  sJ y)u*   YAML frontmatter가 깨진 파일 → FAILz	task-9905r   r   r   Tr   r   uy   ---
task_id: task-9905
type: plan
scope: task
status: completed
이 YAML은 닫히지 않습니다

실제 계획 내용
r   r   r   uZ   ---
task_id: task-9905
type: context
scope: task
status: active
---

실제 맥락 내용
r   uZ   ---
task_id: task-9905
type: checklist
scope: task
status: active
---

- [x] 완료항목
r$   r&   r'   r(   FAILN)r   r   r   r+   r-   r   r   r.   s       r   test_fail_broken_yamlr?      s    G("W,w6@HNN4$N/ 	%%	  &  ""..	  /  **	  +  Gs8}=F&>////(v%%%r   c                 ~    d}t        | |dddd       t        |t        |             }|d   d	k(  sJ |d
   dk(  sJ y)u'   checklist 완료율 50% 미만 → WARNz	task-9906r    r!   r"   uF   - [x] 완료항목1
- [ ] 미완료1
- [ ] 미완료2
- [ ] 미완료3r#   r$   r&   r'   r(   r4   Nr*   r,   s      r   test_warn_low_checklistrA      sY    G25b Gs8}=F&>////(v%%%r   c                 |    d}t        | |ddd       t        |t        |             }|d   dk(  sJ |d	   d
k(  sJ y)u9   템플릿 플레이스홀더 그대로인 파일 → WARNz	task-9907r    u-   여기에 [작업 내용]을 입력하세요.r2   r3   r$   r&   r'   r(   r4   Nr*   r,   s      r   test_warn_placeholder_unfilledrC      sV    GAA Gs8}=F&>////(v%%%r   c                 8   d}| dz  dz  dz  |z  }|j                  dd       |dz  j                  d| d	d
       |dz  j                  d| dd
       t        |t        |             }|d   dk(  sJ |d   dk(  sJ d|d   j	                  dg       v sJ y)uK   디렉토리는 있지만 파일 1개 누락 (checklist.md 없음) → FAILz	task-9908r   r   r   Tr   r   r   uD   
type: plan
scope: task
status: completed
---

실제 계획 내용
r   r   r   uD   
type: context
scope: task
status: active
---

실제 맥락 내용
r$   r&   r'   r(   r=   r   detailsmissing_filesN)r   r   r   r+   getr>   s       r   test_fail_missing_filesrH      s    G("W,w6@HNN4$N/ 	%%

 	  &  ""..

 	  /  Gs8}=F&>////(v%%%VI.22?BGGGGr   )r    u   실제 계획 내용u   실제 맥락 내용u   - [x] 완료
- [x] 완료2)__doc__syspathinsertverifiers.three_docs_checkr   r   r/   r5   r9   r;   r?   rA   rC   rH    r   r   <module>rO      sc     5 6 - $'06|&$&"&&3&l&&&$(Hr   