
     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mZ ddlZ ee      j!                         j"                  d   Z ee      ej(                  v r!ej(                  j+                   ee             ej(                  j-                  d ee             ddZ ej0                  d      d	        Z ej0                  d      d
        Zej6                  j9                  dg d      d        Zej6                  j9                  dg d      d        Zej6                  j9                  dg d      d        Zej6                  j9                  dg d      d        Z y)u   tests/regression/test_browser_verify_hardening.py — task-2485 회귀.

browser_verify가 task-N+M 형식을 잘못된 task_id로 거부하지 않는지 검증.
shared + dev1 두 모듈 모두 검증.
    )annotationsN)Path   c                   |j                         st        j                  | d       t        j                  j                  | t        |            }g }d }||u}|}|r|j                  }d }||u}	|	}|slt        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  }dd|iz  }t!        t        j"                  |            d x}x}x}x}x}x}	}t        j                  j%                  |      }|t&        j(                  |j*                  <   |j                  j-                  |       |S )Nu    없음)is not)z%(py2)s is not %(py5)sspec)py2py5z%(py7)spy7)z5%(py11)s
{%(py11)s = %(py9)s.loader
} is not %(py14)s)py9py11py14z%(py16)spy16r   zassert %(py19)spy19)existspytestskip	importlibutilspec_from_file_locationstrloader
@pytest_ar_call_reprcompare@py_builtinslocals_should_repr_global_name	_safereprappend_format_boolopAssertionError_format_explanationmodule_from_specsysmodulesnameexec_module)modname	file_pathr   @py_assert1@py_assert4@py_assert3@py_assert0@py_assert10@py_assert13@py_assert12@py_format6@py_format8@py_format15@py_format17@py_format18@py_format20mods                    E/home/jay/workspace/tests/regression/test_browser_verify_hardening.py_load_moduler9      sQ   yk)*>>11'3y>JD7t74t77474 777774t77777747774777t77777774777777777777777477777777777777
..
)
)$
/C CKK		KKC J    module)scopec                 :    t        dt        dz  dz  dz  dz        S )Nbv_shared_t2485teamsshared	verifiersbrowser_verify.pyr9   	WORKSPACE r:   r8   shared_browser_verifyrF   !   s*    Gh&47JJ r:   c                 @    t        dt        dz  dz  dz  dz  dz        S )Nbv_dev1_t2485r?   dev1qcrA   rB   rC   rE   r:   r8   dev1_browser_verifyrK   )   s/    Gf$t+k9<OO r:   tid)ztask-2472+2ztask-2472+1ztask-2467+3c                   | j                  |t        |            }|d   dk(  r|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}} yy)uH   task-N+M 형식이 '잘못된 task_id 형식'으로 거부되지 않음.statusFAILdetails   잘못된 task_id 형식not inz%(py1)s not in %(py3)sdpy1py3    거부됨: 
>assert %(py5)sr
   Nverifyr   r   r   r   r   r   r   _format_assertmsgr!   r"   )	rF   rL   tmp_pathresultrU   r-   @py_assert2@py_format4r1   s	            r8   /test_shared_browser_verify_accepts_retry_suffixrb   1   s     #))#s8}=F h6!	" 	PA-O-Q6OOO-QOOO-OOOOOOQOOOQOOOO3%|A38OOOOOOO	P "r:   c                   | j                  |t        |            }|d   dk(  r|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}} y y )NrN   rO   rP   rQ   rR   rT   rU   rV   rY   rZ   r
   r[   )	rK   rL   r^   r_   rU   r-   r`   ra   r1   s	            r8   -test_dev1_browser_verify_accepts_retry_suffixrd   <   s     ''S];Fh6!	" 	PA-O-Q6OOO-QOOO-OOOOOOQOOOQOOOO3%|A38OOOOOOO	P "r:   )ztask-abcz
task-2472+ztask-2472++1z../etcc                   | j                  |t        |            }|d   }d}||k(  }|slt        j                  d|fd||f      t        j                  |      t        j                  |      dz  }dd|iz  }t        t        j                  |            d x}x}}d |d	   D        }	t        |	      }|sd
dt        j                         v st        j                  t              rt        j                  t              ndt        j                  |	      t        j                  |      dz  }t        t        j                  |            d x}	}y )NrN   rO   ==z%(py1)s == %(py4)srW   py4assert %(py6)spy6c              3  $   K   | ]  }d |v  
 ywrQ   NrE   .0rU   s     r8   	<genexpr>z=test_shared_browser_verify_rejects_invalid.<locals>.<genexpr>H        J1)Q.J   rP   ,assert %(py4)s
{%(py4)s = %(py0)s(%(py2)s)
}anypy0r	   rj   r\   r   r   r   r   r!   r"   ru   r   r   r   )
rF   rL   r^   r_   r-   r,   r`   @py_format5@py_format7r*   s
             r8   *test_shared_browser_verify_rejects_invalidr{   D   s    "))#s8}=F(%v%v%%%%v%%%%%%v%%%%%%%Jy8IJJ3JJJJJJJJJ3JJJ3JJJJJJJJJJJJJJr:   c                   | j                  |t        |            }|d   }d}||k(  }|slt        j                  d|fd||f      t        j                  |      t        j                  |      dz  }dd|iz  }t        t        j                  |            d x}x}}d |d	   D        }	t        |	      }|sd
dt        j                         v st        j                  t              rt        j                  t              ndt        j                  |	      t        j                  |      dz  }t        t        j                  |            d x}	}y )NrN   rO   rf   rh   ri   rk   rl   c              3  $   K   | ]  }d |v  
 ywrn   rE   ro   s     r8   rq   z;test_dev1_browser_verify_rejects_invalid.<locals>.<genexpr>O   rr   rs   rP   rt   ru   rv   rx   )
rK   rL   r^   r_   r-   r,   r`   ry   rz   r*   s
             r8   (test_dev1_browser_verify_rejects_invalidr~   K   s     ''S];F(%v%v%%%%v%%%%%%v%%%%%%%Jy8IJJ3JJJJJJJJJ3JJJ3JJJJJJJJJJJJJJr:   )r(   r   r)   r   )!__doc__
__future__r   builtinsr   _pytest.assertion.rewrite	assertionrewriter   importlib.utilr   r$   pathlibr   r   __file__resolveparentsrD   r   pathremoveinsertr9   fixturerF   rK   markparametrizerb   rd   r{   r~   rE   r:   r8   <module>r      s`  
 #     
  N""$,,Q/	 y>SXXHHOOC	N# 3y> " h   h    MNP OP  MNP OP  TUK VK  TUK VKr:   