
    Ni                         d Z ddlZddlZddlmZ ddlZej                  j                  d e ee	      j                         j                  d   dz               ej                  d        Zd Zd Zd	 Zy)
uN   tests/dev7/test_post_merge_probe.py — post-merge health probe (task-2367 P1)    N)Path   scriptsc                 L   | dz  dz  j                  d       | dz  dz  j                  d       | dz  j                  d       |j                  dt        |              dd l}|j                  j                  d	t        t        t              j                         j                  d
   dz  dz              }||j                  J |j                  j                  |      }|j                  j                  |       | |_        | dz  dz  dz  |_        | dz  dz  |_        | |fS )NmemoryeventsT)parentsauditlogsWORKSPACE_ROOTr   post_merge_prober   r   zpost_merge_probe.pyauto-merge.log)mkdirsetenvstrimportlib.utilutilspec_from_file_locationr   __file__resolver	   loadermodule_from_specexec_module	WORKSPACE	AUDIT_LOGPROBE_MARK_DIR)tmp_pathmonkeypatch	importlibspecpmps        Q/home/jay/workspace/.worktrees/task-2467-dev6/tests/dev7/test_post_merge_probe.pyprobe_workspacer#      s   8#**4*87"))$)7d+'X7>>11DN""$,,Q/);>SSTD  777
..
)
)$
/CKKC CMx''14DDCM!H,x7CS=    c                    | \  }}|dz  }|j                          |j                  dd|d      }|d   dk(  sJ |d   d	   d
u sJ |d   d   d
u sJ |dz  dz  dz  }|j                         sJ |j                         j	                         j                  d      }t        j                  |d         }|d   dk(  sJ |d   dk(  sJ y)u.   build/test 모두 PASS — outcome=probe_pass.empty_projectztask-test-passabc123r   delayoutcome
probe_passprobebuild_okTtest_okr   r
   r   
task_idN)r   	run_probeexists	read_textstripsplitjsonloads)	r#   r   	workspacer!   projectresultloglinesrecords	            r"   test_probe_passr>       s    $NIs(GMMO]]+Xwa]HF),,,'?:&$...'?9%--- h

(+;
;C::<<MMO!!#))$/EZZa!F) 0000),,,r$   c                     | \  }}|dz  }|j                          |dz  dz  dz  }|j                  d       |j                  dd|d	      }|d
   dk(  sJ y)u7   이미 probe-done 마크가 있으면 재실행 스킵.p2r   r   ztask-test-idem.probe-donez{}ztask-test-idemabcr   r(   statusalready_runN)r   
write_textr1   )r#   r   r8   r!   r9   markr:   s          r"   test_probe_idempotentrF   5   sh    $NIsoGMMOx(*-HHDOOD]]+UG1]EF(},,,r$   c                    | \  }}|dz  }|j                          |j                  |dd        |j                  |dd        |j                  |dd        g  G fdd	      }|j                  |j                  d
|       |j                  dd|d      }|d   dk(  sJ |d   d   du sJ t	              dk(  sJ ddj                  d         v sJ dd   v sJ dd   v sJ y)u)   build FAIL 시 auto_revert 호출 시도.broken_project
_run_buildc                      y)N)Fzfake build error )_ps    r"   <lambda>z1test_probe_fail_triggers_revert.<locals>.<lambda>F       r$   _run_tests_scopedc                      y)N)TokrK   )rL   _tps     r"   rM   z1test_probe_fail_triggers_revert.<locals>.<lambda>H   rN   r$   _changed_pathsc                     g S NrK   )rL   _shas     r"   rM   z1test_probe_fail_triggers_revert.<locals>.<lambda>J   s     r$   c                       e Zd Z fdZy)3test_probe_fail_triggers_revert.<locals>._MockPopenc                 (    j                  |       y rU   )append)selfargs_kwcallss      r"   __init__z<test_probe_fail_triggers_revert.<locals>._MockPopen.__init__N   s    LLr$   N)__name__
__module____qualname__r_   )r^   s   r"   
_MockPopenrX   M   s    	r$   rc   Popenztask-test-faildeadbeefr   r(   r*   
probe_failr,   r-   F   zauto_revert.py z	--task-idN)r   setattr
subprocessr1   lenjoin)	r#   r   r   _r!   r9   rc   r:   r^   s	           @r"   test_probe_fail_triggers_revertrn   A   s   FAs))GMMO\+QR02NO-/BCE  <]]+Z]JF),,,'?:&%///u:??sxxa1111%("""uQx'''r$   )__doc__r6   syspathlibr   pytestpathinsertr   r   r   r	   fixturer#   r>   rF   rn   rK   r$   r"   <module>rv      so    T  
   3tH~--/77:YFG H  &-*	-(r$   