
    $i
              	          d Z ddlZddlmc mZ ddlZddlZddl	Z
g dZej                  j                  ej                  j                  ej                  j                  ej                  j                  e                        Zej"                  j%                  de      d        Zej"                  j%                  de      ej"                  j%                  dg d      d               Zy)	uA   task-2487+1 회귀 테스트: verifier 계층 SSOT 위임 통합.    N)	z)teams/dev1/qc/verifiers/browser_verify.pyz)teams/dev2/qc/verifiers/browser_verify.pyz)teams/dev3/qc/verifiers/browser_verify.pyz)teams/dev4/qc/verifiers/browser_verify.pyz)teams/dev5/qc/verifiers/browser_verify.pyz)teams/dev6/qc/verifiers/browser_verify.pyz)teams/dev7/qc/verifiers/browser_verify.pyz)teams/dev8/qc/verifiers/browser_verify.pyz(teams/shared/verifiers/browser_verify.pyvpathc                    t         j                  j                  t        |       }t         j                  }|j                  } ||      }|st        j                  d|        dz   dt        j                         v st        j                  t               rt        j                  t               ndt        j                  |      t        j                  |      dt        j                         v st        j                  |      rt        j                  |      ndt        j                  |      dz  }t        t        j                  |            dx}x}}t        |dd	      5 }|j                         }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  }
t        j                  |  d      dz   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  }
t        j                  |  d      dz   d|
iz  }t        t        j                  |            dx}}	y# 1 sw Y   xY w)uF   verifier 9개 파일에서 자체 TASK_ID_PATTERN regex 제거 확인.zmissing verifier: zd
>assert %(py7)s
{%(py7)s = %(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.path
}.isfile
}(%(py5)s)
}osfull)py0py2py4py5py7Nrzutf-8)encodingzTASK_ID_PATTERN = re.compilenot inz%(py1)s not in %(py3)scontentpy1py3u;   : 자체 TASK_ID_PATTERN 잔존 (회장 명시 1번 위반)
>assert %(py5)sr
   is_valid_task_id_with_legacy)in)z%(py1)s in %(py3)su)   : SSOT compat 함수 import/호출 부재)r   pathjoinWORKSPACE_ROOTisfile
@pytest_ar_format_assertmsg@py_builtinslocals_should_repr_global_name	_safereprAssertionError_format_explanationopenread_call_reprcompare)r   r   @py_assert1@py_assert3@py_assert6@py_format8fr   @py_assert0@py_assert2@py_format4@py_format6s               A/home/jay/workspace/tests/regression/test_verifier_ssot_2487+1.py&test_verifier_no_local_task_id_patternr1      s.    77<<.D77=7>>=>$===#5eW!=======2===2===7===>======$===$=========	dC'	* a&&() )8  )    *      29    29    'LM     * )W4  )W    *      .5    .5    ':;     s   #K99Ltid)ztask-2485+1ztask-2487+1ztask-9.1ztask-648.1.dev1.donec                    t         j                  j                  t        |      }t        j
                  j                  d|j                  dd       |      }g }d}||u}|}|r|j                  }	d}
|	|
u}|}|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  }|j                  |       |rt        j                  dfd	
f      dt        j                         v st        j                  |      rt        j                  |      ndt        j                  |	      t        j                  |
      dz  }dd|iz  }|j                  |       t        j                   |d      i z  }t        j"                  d|       dz   d|iz  }t%        t        j&                  |            dx}x}x}x}x}	x}}
t        j
                  j)                  |      }|j                  j+                  |       |j-                  |t/        |             }t1        |t2              r	|j5                  dg       }t1        |t6              rdj                  d |D              n
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  }t        j"                  | d| d|       dz   d|iz  }t%        t        j&                  |            dx}}yy) u   모든 verifier가 compat task_id를 reject하지 않는지 확인.

    실제 verify() 호출 결과는 task 파일/스크린샷 부재로 SKIP/FAIL 가능하나,
    핵심은 task_id 형식 자체로 거부되지 않는 것.
    bv_/_N)is not)z%(py2)s is not %(py5)sspec)r   r
   z%(py7)sr   )z5%(py11)s
{%(py11)s = %(py9)s.loader
} is not %(py14)s)py9py11py14z%(py16)spy16r   zfailed to load spec: z
>assert %(py19)spy19)workspace_rootdetails c              3   2   K   | ]  }t        |        y w)N)str).0ds     r0   	<genexpr>z8test_verifier_accepts_compat_task_ids.<locals>.<genexpr>?   s     7!s1v7s   u   잘못된 task_id 형식r   r   details_strr   z | u*   : task_id 형식 거부 회귀 발생 — r   r
   )r   r   r   r   	importlibutilspec_from_file_locationreplaceloaderr   r&   r   r   r    r!   append_format_boolopr   r"   r#   module_from_specexec_moduleverifyrB   
isinstancedictgetlist)tmp_pathr   r2   r   r8   r'   @py_assert4r(   r,   @py_assert10@py_assert13@py_assert12r/   r*   @py_format15@py_format17@py_format18@py_format20moduleresultr?   rF   r-   r.   s                           r0   %test_verifier_accepts_compat_task_idsr`   &   sg    77<<.D>>11Cc38O7P2QSWXDWtW4tWW4W4 7WWWW4tWWWWWW4WWW4WWWtWWWWWWW4WWWWWWWWWWWWWWW4WWWWWWWWWW;PQUPV9WWWWWWWWW^^,,T2FKKF# ]]3s8}]=F &$**Y+;Egt;Tchh7w77Z]^eZf) 	
)< 	
 	
) 	
 	
 		 * 	
 	
	6	
 	
  2= 	
 	
 		 2= 	
 	
  gSGyQ	
 	
 	
 	
 	
      )__doc__builtinsr   _pytest.assertion.rewrite	assertionrewriter   r   pytestimportlib.utilrG   VERIFIER_PATHSr   dirnameabspath__file__r   markparametrizer1   r`    ra   r0   <module>rp      s    G   	  
 QYAZ1[!\] .1 2 .1 ! 
 2
ra   