+
    3:j  c                      ^ RI Ht ^ RIt^ RIHu Ht ^ RIt	^ RI
t
^ RIHt ^ RIt]! ]4      P                  4       P                   ^,          t]	P$                  P'                  R]R,          R,          4      t]	P$                  P+                  ]4      t]P.                  t]'       gv   RRR	]P2                  ! 4       9   g   ]P4                  ! ]4      '       d   ]P6                  ! ]4      MR	R
]P6                  ! ]4      /,          t]! ]P<                  ! ]4      4      hRt]]
P>                  ]P@                  &   ]P.                  PC                  ]4       Rt"RRRRR]"/R R llt#RRR]"RR/R R llt$R t%R t&R t'R t(R t)R# )    )annotationsN)Paththeme_safe_mergetoolsztheme_safe_merge.pyz*assert %(py2)s
{%(py2)s = %(py0)s.loader
}py0specpy2draftFbasemainshac               $    V ^8  d   QhRRRRRR/# )   r	   boolr
   strr    )formats   "U/home/user/tmp/united-pets-verifier-portability/tests/verification/test_safe_merge.py__annotate__r      s!      d # S     c                <    R ^RRRV RVRVRRRR	R
RRRRRRRR/.RR/	# )numberstateOPENisDraftbaseRefName
headRefOid	mergeable	MERGEABLEmergeStateStatusCLEANstatusCheckRollupname	Full gateworkflowNamezThemeFactory Verifystatus	COMPLETED
conclusionSUCCESSurlzhttps://example.invalid/pr/7r   )r	   r
   r   s   $$$r   fake_prr*      sY    !5tc[GK1k)	
  	- r   r'   successappzgithub-actionsc               $    V ^8  d   QhRRRRRR/# )r   r'   r   r   r,   r   )r   s   "r   r   r   &   s!      s S S r   c                0    R R^*RRRVRRRV RR	R
RRRV//./# )
check_runsidr"   r#   head_shar%   	completedr'   completed_atz2026-08-23T00:00:00Zdetails_urlz4https://github.com/example/repo/actions/runs/1/job/2r,   slugr   )r'   r   r,   s   $$$r   fake_checksr6   &   sG    "Kk*2QFC=	
 	 r   c                   R  pV P                  \        RV4       V P                  \        RR 4       \        P                  R^4      pVR,          pRqCV8H  qU'       gy   \        P                  ! RV3RW434      R\        P
                  ! V4      R\        P
                  ! V4      /,          pR	R
V/,          p\        \        P                  ! V4      4      hR;p;rTVR,          q3\        8H  qU'       g   \        P                  ! RV3RV\        34      R\        P
                  ! V4      RR\        P                  ! 4       9   g!   \        P                  ! \        4      '       d   \        P
                  ! \        4      MR/,          pRRV/,          p	\        \        P                  ! V	4      4      hR;r5VR,          p^*qCV8H  qU'       gy   \        P                  ! RV3RW434      R\        P
                  ! V4      R\        P
                  ! V4      /,          pR	R
V/,          p\        \        P                  ! V4      4      hR;p;rTR# )c                J    V R ,          . RO8X  d   \        4       # \        4       # ):N   N)ghprview)r*   r6   argss   &r   json_cmdNtest_safe_merge_validates_exact_sha_github_actions_full_gate.<locals>.json_cmd6   s     H(<<wyO+-Or   r?   
local_headc                     \         # NSHAr   r   r   <lambda>Ntest_safe_merge_validates_exact_sha_github_actions_full_gate.<locals>.<lambda>9       #r   example/reporesultPASSpy1py4assert %(py6)spy6Nr1   py3rE   assert %(py5)spy5check_run_id==)z%(py1)s == %(py4)s)z%(py1)s == %(py3)s)setattrsmvalidate
@pytest_ar_call_reprcompare	_safereprAssertionError_format_explanationrE   @py_builtinslocals_should_repr_global_name)
monkeypatchr?   evidence@py_assert0@py_assert3@py_assert2@py_format5@py_format7@py_format4@py_format6s
   &         r   <test_safe_merge_validates_exact_sha_github_actions_full_gaterj   5   sI   PJ1L+6{{>1-HH'''''''''''''''''''''J&3&&&&&3&&&&&&&&&3&&&&3&&&&&&&&N#)r)r)))))#)))#)))r))))))))r   c                (   V P                  \        R R 4       V P                  \        RR 4       \        P                  ! \        P                  RR7      ;_uu_ 4        \        P                  R^4       RRR4       R#   + '       g   i     R# ; i)r?   c                    \        R R7      # )T)r	   r*   r=   s   &r   rF   /test_safe_merge_rejects_draft.<locals>.<lambda>A   s	    W45Hr   rA   c                     \         # rC   rD   r   r   r   rF   rn   B   rH   r   zstill draftmatchrI   NrV   rW   pytestraisesMergeRefused
inspect_prra   s   &r   test_safe_merge_rejects_draftrx   @   sY    J(HIL+6	rm	<	<
na( 
=	<	<	<   B  B	c                (   V P                  \        R R 4       V P                  \        RR 4       \        P                  ! \        P                  RR7      ;_uu_ 4        \        P                  R^4       RRR4       R#   + '       g   i     R# ; i)r?   c                    \        4       # rC   rm   r=   s   &r   rF   =test_safe_merge_rejects_local_head_mismatch.<locals>.<lambda>H   s    WYr   rA   c                     R# )b(bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbr   r   r   r   rF   r|   I   s    (r   zlocal HEAD does not matchrp   rI   Nrr   rw   s   &r   +test_safe_merge_rejects_local_head_mismatchr   G   s\    J(>?L*:;	r.I	J	J
na( 
K	J	J	Jry   c                   V P                  \        R R 4       \        P                  ! \        P                  RR7      ;_uu_ 4        \        P                  R\        4       RRR4       V P                  \        R R 4       \        P                  ! \        P                  RR7      ;_uu_ 4        \        P                  R\        4       RRR4       R#   + '       g   i     L{; i  + '       g   i     R# ; i)r?   c                    \        R R7      # )failure)r'   r6   r=   s   &r   rF   Jtest_safe_merge_rejects_non_success_or_non_actions_check.<locals>.<lambda>O   s	    [I5Vr   zsuccess not foundrp   rI   Nc                    \        R R7      # )z	other-app)r,   r   r=   s   &r   rF   r   R   s	    [[5Qr   )rV   rW   rs   rt   ru   exact_sha_full_gaterE   rw   s   &r   8test_safe_merge_rejects_non_success_or_non_actions_checkr   N   s    J(VW	r.A	B	B
~s3 
CJ(QR	r.A	B	B
~s3 
C	B 
C	B 
C	B	Bs   C0C(C%	(C9	c           	       a
a V P                  \        R R 4       . o ! R R4      o
V P                  \        RRV
V3R ll4       \        P                  R^4      pVR,          pRq2VJ qD'       gy   \        P                  ! RV3RW#34      R	\        P
                  ! V4      R
\        P
                  ! V4      /,          pRRV/,          p\        \        P                  ! V4      4      hR;p;rCRRRRRRRR\        .	.pSV8H  qw'       g   \        P                  ! RV3R SV34      RR\        P                  ! 4       9   g   \        P                  ! S4      '       d   \        P
                  ! S4      MRR\        P
                  ! V4      /,          pRRV/,          p	\        \        P                  ! V	4      4      hR;rtRpS^ ,          q2V9  qD'       gy   \        P                  ! R!V3R"W#34      R	\        P
                  ! V4      R
\        P
                  ! V4      /,          pRRV/,          p\        \        P                  ! V4      4      hR;p;rCRpS^ ,          q2V9  qD'       gy   \        P                  ! R!V3R"W#34      R	\        P
                  ! V4      R
\        P
                  ! V4      /,          pRRV/,          p\        \        P                  ! V4      4      hR;p;rCR# )#rX   c                    R V RVR\         RR/# )repor;   r1   rJ   rK   rD   )r   r;   s   &&r   rF   Htest_safe_merge_uses_match_head_commit_and_never_admin.<locals>.<lambda>X   s    &$bR\^ackms9tr   c                  "    ] tR t^Zt^ tRtRtRtR# )Btest_safe_merge_uses_match_head_commit_and_never_admin.<locals>.CP r   N)__name__
__module____qualname____firstlineno__
returncodestdoutstderr__static_attributes__r   r   r   CPr   Z   s    
r   r   runTc                D   < SP                  V 4      ;'       g    S! 4       # rC   )append)r>   checkr   callss   &&r   rF   r   ^   s    U\\$=O=W=WSUSW=Wr   rI   mergedrL   rM   rN   rO   Nr:   r;   merge7z--repoz--mergez--match-head-commitr   r   rP   rQ   rR   z--adminz--auto)T)is)z%(py1)s is %(py4)srT   )z%(py0)s == %(py3)s)not in)z%(py1)s not in %(py4)s)rV   rW   r   rY   rZ   r[   r\   r]   rE   r^   r_   r`   )ra   rJ   rc   rd   re   rf   rg   @py_assert1rh   ri   r   r   s   &         @@r   6test_safe_merge_uses_match_head_commit_and_never_adminr   W   s   J(tuE  E#XYXXna(F(#t#t###########t########D'3.)Ujlopqq5qqqqqq5qqqqqqq5qqqq5qqqqqqqqqqqq$E!H$H$$$$$9$$$9$$$H$$$$$$$$#58#8#####8###8###8########r   (aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)*
__future__r   builtinsr^   _pytest.assertion.rewrite	assertionrewriterY   importlib.util	importlibsyspathlibr   rs   __file__resolveparentsROOTutilspec_from_file_locationr   module_from_specrW   loaderr   r_   r`   r[   @py_format3r\   r]   modulesr"   exec_modulerE   r*   r6   rj   rx   r   r   r   r   r   r   <module>r      s$   "     
  H~''*~~--.@$.ShBhi^^$$T*{{ {     t   t   {     DII     U  3 &Y 3 K[ *))4$r   