
    Ni                    T   d Z ddlmZ ddlZddlZddlmZmZ ddlm	Z	 ddl
Z
 e	e      j                         j                  d   Zedz  Z e
j                   d	      d
        Z e
j                   d	      d        ZddZeZe
j                   d        ZdddZdddZdddZdddZy)z0Common fixtures for Phase 3 evidence gate tests.    )annotationsN)datetimetimezone)Path   scriptsmodule)scopec                    t         j                  j                  dt        dz        } | r| j                  sJ t         j                  j                  |       }|t        j                  d<   | j                  j                  |       |S )z#Load gemini_evidence_verify module.gemini_evidence_verifyzgemini_evidence_verify.py		importlibutilspec_from_file_location
SCRIPT_DIRloadermodule_from_specsysmodulesexec_module)specmods     :/home/jay/workspace/tests/phase3_evidence_gate/conftest.pyevidence_moduler      sn     >>11 */J"JD DKK
..
)
)$
/C,/CKK()KKC J    c                   | }t         j                  j                  dt        dz        }|r|j                  sJ t         j                  j                  |      }|t        j                  d<   |j                  j                  |       |S )zOLoad gemini_review_gate module (depends on evidence_module being loaded first).gemini_review_gatezgemini_review_gate.pyr   )r   _r   r   s       r   gate_moduler      ss     	A>>11j+BBD DKK
..
)
)$
/C(+CKK$%KKC Jr   c                |    | j                  t        j                        j                         j	                  dd      S )Nz+00:00Z)
astimezoner   utc	isoformatreplace)dts    r   iso_zr'   (   s+    ==&002::8SIIr   c                6     	 	 	 	 	 d	 	 	 	 	 	 	 	 	 d fd}|S )u   Stub _gh_api / _fetch_* / audit で外部呼び出しをブロック.

    使用法:
        mock_gh_api(reviews=[], review_comments=[], issue_comments=[],
                    check_runs=[], head_sha_date=None)
    c                @    j                  d fd       j                  dfd       j                  dfd       j                  dfd       j                  d	fd
       j                  dfd       j                  dd        y )N_fetch_reviewsc                     xs g S N )_areviewss    r   <lambda>z-mock_gh_api.<locals>._setup.<locals>.<lambda>?   s    7=VX r   _fetch_review_commentsc                     xs g S r,   r-   )r.   review_commentss    r   r0   z-mock_gh_api.<locals>._setup.<locals>.<lambda>@   s    SbShfh r   _fetch_issue_commentsc                     xs g S r,   r-   )r.   issue_commentss    r   r0   z-mock_gh_api.<locals>._setup.<locals>.<lambda>A   s    R`Rfdf r   _fetch_check_runsc                     xs g S r,   r-   )r.   
check_runss    r   r0   z-mock_gh_api.<locals>._setup.<locals>.<lambda>B   s    jN^\^ r   _fetch_head_pushed_atc                     S r,   r-   r.   head_sha_dates    r   r0   z-mock_gh_api.<locals>._setup.<locals>.<lambda>D   s    R_ r   _fetch_head_sha_datec                     S r,   r-   r<   s    r   r0   z-mock_gh_api.<locals>._setup.<locals>.<lambda>E   s    Q^ r   _append_auditc                      y r,   r-   )r.   s    r   r0   z-mock_gh_api.<locals>._setup.<locals>.<lambda>G   s    r   )setattr)r/   r3   r6   r9   r=   r   monkeypatchs   `````r   _setupzmock_gh_api.<locals>._setup8   s     	O-=?XYO-EGhiO-DFfgO-@B^_O-DF_`O-CE^_O_>NOr   )NNNNN)
r/   list[dict] | Noner3   rE   r6   rE   r9   rE   r=   
str | Noner-   )r   rC   rD   s   `` r   mock_gh_apirG   0   sT     &*-1,0(,$(P"P*P *P &	P
 "P  Mr   c                    |ddi| |ddS )Nlogingemini-code-assist[bot]	COMMENTED)iduserbody	commit_idstater-   )rN   rO   	review_ids      r   make_reviewrR   K   s!    34 r   c                    |ddi| |dS )NrI   rJ   )rL   rM   rN   rO   r-   )rN   rO   
comment_ids      r   make_review_commentrU   U   s    34	 r   c                    |ddi| |dS )NrI   rJ   )rL   rM   rN   
created_atr-   )rN   rT   rW   s      r   make_issue_commentrX   ^   s    34 	 r   c                    || d|ddidS )N	completedslugzgemini-code-assist)rL   namestatus
conclusionappr-   )r\   r^   run_ids      r   make_check_runra   g   s!     ,- r   )r&   r   returnstr)   )rN   rc   rO   rc   rQ   intrb   dict)d   )rN   rc   rO   rc   rT   re   rb   rf   )   N)rN   rc   rT   re   rW   rF   rb   rf   )successi  )r\   rc   r^   rc   r`   re   rb   rf   )__doc__
__future__r   importlib.utilr   r   r   r   pathlibr   pytest__file__resolveparentsROOTr   fixturer   r   r'   _isorG   rR   rU   rX   ra   r-   r   r   <module>ru      s    6 "  
 '  H~''*I
 h	  	 h
  
J
   4r   