
     j              	         d Z ddlmZ ddlZddlmc mZ ddl	Z	ddl
ZddlZddlmZ ej                   j#                  ej                   j#                  ej                   j#                  ej                   j%                  e                        Zeej                   v rej                   j+                  e       ej                   j-                  de       ddlZ ee      Zd Zd Zej6                  j9                  dg d      d	        Zd
 Zy)u   task-2502 회귀: browser_verify import smoke.

회장 §7-3: shared 및 dev1~dev8 verifier 가 SSOT 를 ImportError 없이 import 가능한지 확인.
PR #47 partial merge 로 발생한 main ImportError 차단 회복 evidence.
    )annotationsN)Pathc                 .   t        j                  d      } d}t        | |      }|st        j                  d      dz   dt        j                         v st        j                  t              rt        j                  t              nddt        j                         v st        j                  |       rt        j                  |       ndt        j                  |      t        j                  |      dz  }t        t        j                  |            dx}}d	}t        | |      }|st        j                  d
      dz   dt        j                         v st        j                  t              rt        j                  t              nddt        j                         v st        j                  |       rt        j                  |       ndt        j                  |      t        j                  |      dz  }t        t        j                  |            dx}}y)u8   SSOT 가 is_valid_task_id_with_legacy 를 export 한다.zutils.task_id_parseris_valid_task_id_with_legacyz=utils.task_id_parser must export is_valid_task_id_with_legacy7
>assert %(py5)s
{%(py5)s = %(py0)s(%(py1)s, %(py3)s)
}hasattrmodpy0py1py3py5N
TASK_ID_REuJ   utils.task_id_parser must export TASK_ID_RE alias (shared verifier 호환))	importlibimport_moduler   
@pytest_ar_format_assertmsg@py_builtinslocals_should_repr_global_name	_safereprAssertionError_format_explanation)r	   @py_assert2@py_assert4@py_format6s       G/home/jay/workspace/tests/regression/test_browser_verify_import_2502.py,test_task_id_parser_exports_legacy_validatorr      s   

!
!"8
9C6 7367 7   	H                       7    8      % 73% %   	U                       %    &         c                    t         dz  dz  dz  dz  } | j                         st        j                  d|         t	        j
                  d      }d}t        ||      }|st        j                  d      d	z   d
t        j                         v st        j                  t              rt        j                  t              nd
dt        j                         v st        j                  |      rt        j                  |      ndt        j                  |      t        j                  |      dz  }t        t        j                  |            dx}}y)uN   teams/shared/verifiers/browser_verify.py 가 ImportError 없이 import 가능.teamsshared	verifierszbrowser_verify.pyu   shared verifier 미존재: %teams.shared.verifiers.browser_verifyverifyz#browser_verify must expose verify()r   r   r	   r
   N)WORKSPACE_ROOTexistspytestskipr   r   r   r   r   r   r   r   r   r   r   )shared_pathr	   r   r   r   s        r   *test_shared_browser_verify_imports_cleanlyr+   #   s     7*X5CFYYK1+?@

!
!"I
JC H73!H!HH#HHHHHHH7HHH7HHHHHH3HHH3HHHHHH!HHHHHHr   module_path)	r$   z&teams.dev1.qc.verifiers.browser_verifyz&teams.dev2.qc.verifiers.browser_verifyz&teams.dev3.qc.verifiers.browser_verifyz&teams.dev4.qc.verifiers.browser_verifyz&teams.dev5.qc.verifiers.browser_verifyz&teams.dev6.qc.verifiers.browser_verifyz&teams.dev7.qc.verifiers.browser_verifyz&teams.dev8.qc.verifiers.browser_verifyc                   t         | j                  dd      z  }|j                  d      }|j                         st	        j
                  d|        t        j                  |       }d}t        ||      }|st        j                  |  d      dz   dt        j                         v st        j                  t              rt        j                  t              ndd	t        j                         v st        j                  |      rt        j                  |      nd	t        j                  |      t        j                  |      d
z  }t        t        j                   |            dx}}|j"                  }t%        |      }|st        j                  |  d      dz   dt        j                         v st        j                  t$              rt        j                  t$              ndd	t        j                         v st        j                  |      rt        j                  |      nd	t        j                  |      t        j                  |      d
z  }t        t        j                   |            dx}}y)u]   회장 §7-3: shared + dev1~dev8 9개 verifier 가 SSOT 를 ImportError 없이 import 가능../z.pyu,   verifier 미존재 (해당 worktree에만): r%   z must expose verify()r   r   r	   r
   Nz.verify must be callablezJ
>assert %(py5)s
{%(py5)s = %(py0)s(%(py3)s
{%(py3)s = %(py1)s.verify
})
}callable)r&   replacewith_suffixr'   r(   r)   r   r   r   r   r   r   r   r   r   r   r   r%   r0   )r,   target_pathtarget_filer	   r   r   r   s          r   *test_team_browser_verifiers_import_cleanlyr5   ,   su    !;#6#6sC#@@K))%0KB;-PQ

!
!+
.C H73!H!HHk]2G#HHHHHHH7HHH7HHHHHH3HHH3HHHHHH!HHHHHHJJI8JIIIK=0H!IIIIIII8III8IIIIIICIIICIIIJIIIIIIIIIr   c                    ddl m}  d} | |      }d}||u }|st        j                  d|fd||f      dt	        j
                         v st        j                  |       rt        j                  |       ndt        j                  |      t        j                  |      t        j                  |      dz  }d	d
|iz  }t        t        j                  |            dx}x}x}}d} | |      }d}||u }|st        j                  d|fd||f      dt	        j
                         v st        j                  |       rt        j                  |       ndt        j                  |      t        j                  |      t        j                  |      dz  }d	d
|iz  }t        t        j                  |            dx}x}x}}d} | |      }d}||u }|st        j                  d|fd||f      dt	        j
                         v st        j                  |       rt        j                  |       ndt        j                  |      t        j                  |      t        j                  |      dz  }d	d
|iz  }t        t        j                  |            dx}x}x}}d} | |      }d}||u }|st        j                  d|fd||f      dt	        j
                         v st        j                  |       rt        j                  |       ndt        j                  |      t        j                  |      t        j                  |      dz  }d	d
|iz  }t        t        j                  |            dx}x}x}}d} | |      }d}||u }|st        j                  d|fd||f      dt	        j
                         v st        j                  |       rt        j                  |       ndt        j                  |      t        j                  |      t        j                  |      dz  }d	d
|iz  }t        t        j                  |            dx}x}x}}y)u3   회장 §7-2 4 케이스 (smoke) — 분리 회귀.r   )r   ztask-2485+1T)is)z0%(py4)s
{%(py4)s = %(py0)s(%(py2)s)
} is %(py7)sr   )r   py2py4py7zassert %(py9)spy9Nztask-2487+1z	task-2494ztask-1234.1z
invalid-idF)
utils.task_id_parserr   r   _call_reprcomparer   r   r   r   r   r   )r   @py_assert1@py_assert3@py_assert6@py_assert5@py_format8@py_format10s          r   6test_legacy_validator_accepts_chairman_seven_two_casesrD   B   s   A(5>'6>$>6$>>>>6$>>>>>>'>>>'>>>>>>6>>>$>>>>>>>(5>'6>$>6$>>>>6$>>>>>>'>>>'>>>>>>6>>>$>>>>>>>(3<'4<<4<<<<4<<<<<<'<<<'<<<<<<4<<<<<<<<<<(5>'6>$>6$>>>>6$>>>>>>'>>>'>>>>>>6>>>$>>>>>>>(4>'5>>5>>>>5>>>>>>'>>>'>>>>>>5>>>>>>>>>>r   )__doc__
__future__r   builtinsr   _pytest.assertion.rewrite	assertionrewriter   r   os_ossys_syspathlibr   pathdirnameabspath__file___WROOTremoveinsertr(   r&   r   r+   markparametrizer5   rD    r   r   <module>rZ      s   
 #        
		#((**388+;+;CHH<L<LX<V+WX	Y	TYYIIV 		  F  fI  
) 
J
J?r   