
    i^              	           d Z ddlZddlZdZej                  j                  edd      Zddededz  dedz  d	efd
Z	d Z
d Zd Zd Zd Zd Zd Zd Zy)u   
test_finish_task_g3_gate.py — finish-task.sh L306~L363 G3 gate 레벨 판정 로직 테스트
작성자: 아르고스 (QA 테스터)
태스크: task-2081
    Nz/home/jay/workspacescriptszfinish-task.shtask_idtimers_datatask_file_contentreturnc                 d  	 d	|rV|j                  d|      }|j                  | i       }|j                  dd      xs dj                         j                         		s|rt        j                  d|t        j
                        }|rl|j                  d      j                         j                         }d|v rd	n8d|v rd	n1t        j                  d|      rd		nt        j                  d
|      rd	d}t        	fd|D              }|s!	rt        t        j                  d	            }|rdS dS )u=   finish-task.sh L307-346의 레벨 판정 Python 로직 재현 tasks
work_levelu   ## 레벨\s*\n(.*?)(?=\n## |\Z)   criticalsecurityzlv\.?4|level\s*4lv4zlv\.?3|level\s*3lv3)r   r   r   r   zlv.3zlv.4c              3   &   K   | ]  }|v  
 y w)N ).0kwlevels     O/home/jay/workspace/.worktrees/task-2116-dev1/tests/test_finish_task_g3_gate.py	<genexpr>z%resolve_task_level.<locals>.<genexpr>,   s     4u4s   zlevel\s*[34]lv3plusbelow)	getstriplowerresearchDOTALLgroupanybool)
r   r   r   r
   tmsectionlv3_keywordsis_lv3r   s
            @r   resolve_task_levelr(      s   E 5IIgr"|R(.B557==? &II8:KRYYWggaj&&(..0GW$"w&".8.8 JL4|44Febii789+G+    c                  <    ddddiii} t        d|       }|dk(  sJ y)u5   task-timers.json에 work_level='critical' → lv3plusr
   	task-2081r   r   r   r   Nr(   r   results     r   )test_level_detection_from_timers_criticalr0   7   <     	j
K  EFYr)   c                  <    ddddiii} t        d|       }|dk(  sJ y)u1   task-timers.json에 work_level='normal' → belowr
   r+   r   normalr,   r   Nr-   r.   s     r   'test_level_detection_from_timers_normalr4   D   s<     	h
K  EFWr)   c                  <    ddddiii} t        d|       }|dk(  sJ y)u!   work_level='security' → lv3plusr
   z	task-9999r   r   r,   r   Nr-   r.   s     r   )test_level_detection_from_timers_securityr6   Q   r1   r)   c                  B    ddddiii} d}t        d| |      }|dk(  sJ y)	u@   work_level='' + task 파일에 ## 레벨\n- critical → lv3plusr
   r+   r   r	   uW   # task-2081

## 개요
작업 내용

## 레벨
- critical

## 작업 목록
- 항목1
)r   r   r   Nr-   )r   r   r/   s      r   'test_level_detection_fallback_task_filer8   ^   sL     	b
K |+F
 Yr)   c                  <    ddddiii} t        d|       }|dk(  sJ y)u   work_level='lv1' → belowr
   r+   r   lv1r,   r   Nr-   r.   s     r   test_level_detection_lv1_belowr;   p   <     	e
K  EFWr)   c                  <    ddddiii} t        d|       }|dk(  sJ y)u   work_level='lv2' → belowr
   r+   r   lv2r,   r   Nr-   r.   s     r   test_level_detection_lv2_belowr?   }   r<   r)   c                      t         j                  j                  t              sJ dt                t	        t        dd      5 } | j                         }ddd       dv sJ d       y# 1 sw Y   xY w)u?   finish-task.sh에 'G3-GATE' 문자열이 존재하는지 확인   finish-task.sh 파일 없음: rutf-8encodingNzG3-GATEu5   finish-task.sh에 'G3-GATE' 문자열이 없습니다ospathisfileFINISH_TASK_PATHopenreadfcontents     r   *test_g3_gate_section_exists_in_finish_taskrP      sk    77>>*+`/MN^M_-``+	g	6 !&&(X!XX    A))A2c                      t         j                  j                  t              sJ dt                t	        t        dd      5 } | j                         }ddd       dv sJ d       y# 1 sw Y   xY w)uO   finish-task.sh에 'g3_independent_verifier.py' 호출이 존재하는지 확인rA   rB   rC   rD   Nzg3_independent_verifier.pyuE   finish-task.sh에 'g3_independent_verifier.py' 호출이 없습니다rF   rM   s     r   test_g3_gate_calls_verifierrS      sq    77>>*+`/MN^M_-``+	g	6 !&&('72 POP2 rQ   )NN)__doc__rG   r   WORKSPACE_ROOTrH   joinrJ   strdictr(   r0   r4   r6   r8   r;   r?   rP   rS   r   r)   r   <module>rY      s    
 	&77<<	;KL , ,$+ ,Y\_cYc ,or ,J


$

YPr)   