
    :mjm                         d Z ddlZddlmZ ddlZ ee      j                         j                  d   Zedz  dz  Z	 ej                  d      d	efd
       ZdefdZdefdZdefdZd Zy)u  
test_finish_task_stash_lifecycle_2569.py
MT-T2: RC-3 검증 (finish-task.sh stash audit)
  - _STASH_AUDIT_BEFORE / _STASH_AUDIT_AFTER 박제 라인 존재
  - stash 누적 5개 초과 시 WARN 출력 로직 존재
  - cleanup-audit.jsonl 출력 경로 명시
  - bash -n 문법 검증
    N)Path   scriptszfinish-task.shmodule)scopereturnc                  r    t         j                         sJ dt                 t         j                  d      S )Nu   finish-task.sh 없음: zutf-8)encoding)FINISH_TASK_SHexists	read_text     9tests/regression/test_finish_task_stash_lifecycle_2569.pyfinish_task_contentr      s6      "N&=n=M$NN"##W#55r   r   c                 0    d| v sJ d       d| v sJ d       y)u_   finish-task.sh에 _STASH_AUDIT_BEFORE 및 _STASH_AUDIT_AFTER 박제 라인이 있어야 한다._STASH_AUDIT_BEFOREui   _STASH_AUDIT_BEFORE 변수가 finish-task.sh에 없습니다. RC-3 stash audit 구현을 확인하세요._STASH_AUDIT_AFTERuh   _STASH_AUDIT_AFTER 변수가 finish-task.sh에 없습니다. RC-3 stash audit 구현을 확인하세요.Nr   r   s    r   &test_finish_task_has_stash_audit_blockr      s:     $77 	67  #66 	66r   c                 ,    d| v }d| v }|s
|sJ d       yy)uV   finish-task.sh에 stash 누적 5개 초과 시 WARN 출력 로직이 있어야 한다.u   stash 누적 감지z-gt 5u   finish-task.sh에 stash 누적 5개 초과 경고 로직이 없습니다. 'stash 누적 감지' 텍스트 또는 '-gt 5' 조건 중 하나가 필요합니다.Nr   )r   has_warn_texthas_gt_5s      r   ,test_finish_task_warns_on_stash_accumulationr   (   s4    )-@@M--HH 	_$H=r   c                     d| v sJ d       y)uU   finish-task.sh에 cleanup-audit.jsonl 출력 경로가 명시되어 있어야 한다.zcleanup-audit.jsonlui   finish-task.sh에 'cleanup-audit.jsonl' 경로가 없습니다. RC-3 audit log 구현을 확인하세요.Nr   r   s    r   #test_finish_task_audit_writes_jsonlr   6   s     $77 	47r   c                      t        j                  ddt        t              gdd      } | j                  dk(  sJ d| j
                          y)u?   bash -n으로 finish-task.sh 문법 오류가 없어야 한다.bashz-nT)capture_outputtextr   u   finish-task.sh 문법 오류:
N)
subprocessrunstrr   
returncodestderr)results    r   "test_finish_task_bash_syntax_validr'   @   sP    ^^	s>*+F
 ! 
)&--9!r   )__doc__r!   pathlibr   pytest__file__resolveparents	WORKSPACEr   fixturer#   r   r   r   r   r'   r   r   r   <module>r0      s      N""$,,Q/	Y&)99 h6S 6  6	 		c 	S 	r   