
    9bj                         d Z ddlZddlmc mZ ddlZddlm	Z	 ddl
Z
 e	d      Z ee      ej                  vr"ej                  j                  d ee             ddlmZ de	deddfd	Zd
 Zd Zd Zd Zd Zy)u  
test_system_docs_section.py

prompts/team_prompts.py의 _build_system_docs_section() 단위 테스트
(카마소츠/개발7팀 작성, task-2179)

테스트 항목:
- None project_id → 빈 문자열 반환
- {project_id}-system/plan.md 존재 시 system suffix 경로 반환
- {project_id}/plan.md 존재 시 (suffix 없음) 해당 경로 반환
- 존재하지 않는 project_id → 빈 문자열 반환
- {project_id}-system 과 {project_id} 둘 다 존재 시 -system 우선
    N)Pathz/home/jay/workspace)_build_system_docs_sectionbasefolderreturnc                 l    | dz  dz  |z  }|j                  dd       |dz  j                  dd       y	)
u4   base/memory/plans/{folder}/plan.md 를 생성한다.memoryplansT)parentsexist_okplan.mdz# planzutf-8)encodingN)mkdir
write_text)r   r   plan_dirs      O/home/jay/workspace/.worktrees/task-2696-dev7/tests/test_system_docs_section.py
_make_planr       s=    h(61HNN4$N/	%%h%A    c                  f   t        d      } d}| |k(  }|st        j                  d|fd| |f      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}}y)	u>   project_id가 None이면 빈 문자열을 반환해야 한다.N ==z%(py0)s == %(py3)sresultpy0py3assert %(py5)spy5)	r   
@pytest_ar_call_reprcompare@py_builtinslocals_should_repr_global_name	_safereprAssertionError_format_explanation)r   @py_assert2@py_assert1@py_format4@py_format6s        r   test_none_project_idr,   ,   sd    '-F6R<6R66Rr   c                 2   d}t        | | d       |j                  dt        |              ddlm} |j                  |dt        |              t        |      }d}||k7  }|st        j                  d|fd||f      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}}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)u]   {project_id}-system/plan.md 가 있을 때 해당 경로를 포함한 섹션을 반환한다.myproj-systemWORKSPACE_ROOTr   Nr   !=z%(py0)s != %(py3)sr   r   r   r   memory/plans/inz%(py1)s in %(py3)spy1r   r   zcontext-notes.mdzchecklist.mdr   setenvstrprompts.team_promptsteam_promptssetattrr   r    r!   r"   r#   r$   r%   r&   r'   
tmp_pathmonkeypatch
project_idtpr   r(   r)   r*   r+   @py_assert0s
             r   (test_existing_project_with_system_suffixrF   2   s   JxJ<w/0'X7%,c(m<'
3F6R<6R66R:,g.8.&8888.&888.888888&888&8888888999''''''''''''''''''''''''#>V####>V###>######V###V#######r   c                    d}t        | |       |j                  dt        |              ddlm} |j                  |dt        |              t        |      }d}||k7  }|st        j                  d|fd||f      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}}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| 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)uY   {project_id}/plan.md 만 있을 때 (system suffix 없음) 해당 경로를 반환한다.r.   r0   r   Nr   r1   r3   r   r   r   r   r4   r5   r7   r8   r/   )not in)z%(py1)s not in %(py3)sr:   r@   s
             r   +test_existing_project_without_system_suffixrI   D   sj   Jx$'X7%,c(m<'
3F6R<6R66R:,'1'61111'6111'111111611161111111:,g.<.f<<<<.f<<<.<<<<<<f<<<f<<<<<<<r   c                    |j                  dt        |              ddlm} |j	                  |dt        |              t        d      }d}||k(  }|st        j                  d|fd||f      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}}y)uN   plan.md 가 전혀 없는 project_id 는 빈 문자열을 반환해야 한다.r0   r   Nzno-such-projectr   r   r   r   r   r   r   )r;   r<   r=   r>   r?   r   r    r!   r"   r#   r$   r%   r&   r'   )rA   rB   rD   r   r(   r)   r*   r+   s           r   test_nonexistent_projectrK   U   s    'X7%,c(m<'(9:F6R<6R66Rr   c                 l   d}t        | | d       t        | |       |j                  dt        |              ddlm} |j                  |dt        |              t        |      }d}||k7  }|st        j                  d|fd||f      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}}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)uY   {project_id}-system 과 {project_id} 둘 다 존재하면 -system 경로가 우선이다.r.   r/   r0   r   Nr   r1   r3   r   r   r   r   r4   r5   r7   r8   r:   r@   s
             r   test_system_suffix_priorityrM   `   s   JxJ<w/0x$'X7%,c(m<'
3F6R<6R66R:,g.8.&8888.&888.888888&888&8888888r   )__doc__builtinsr"   _pytest.assertion.rewrite	assertionrewriter    syspathlibr   pytest
_WORKSPACEr<   pathinsertr=   r   r   r,   rF   rI   rK   rM    r   r   <module>rZ      s     
   '(
z?#(("HHOOAs:' ;BT B3 B4 B$$="9r   