
    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
mZ e	j                  j                  d e ee      j!                         j"                  d                ddlZddlmZmZmZmZmZ d Zd Zd	 Zd
 Zy)u   task-2673 existing branch regression — Critical7 / MERGE_READY / Gemini stale.

수정 목표 2 (5 enum evaluation 보강) 의 기존 분기 regression.
    )annotationsN)Path   )CI_FAILED_NON_REMEDIABLEGEMINI_EXTERNAL_TRIGGER_STALEMERGE_READY
PRSnapshotclassifyc                Z   t        j                  | |      }t        |d|      \  }}|t        k(  }|st	        j
                  d|fd|t        f      dt        j                         v st	        j                  |      rt	        j                  |      nddt        j                         v st	        j                  t              rt	        j                  t              nddz  }dd	|iz  }t        t	        j                  |            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  }dd|iz  }t        t	        j                  |            d x}	}
y )Nx   elapsed_watcher_secexpected_head==z%(py0)s == %(py2)sstater   py0py2assert %(py4)spy4zqc-checkinz%(py1)s in %(py3)sreasonpy1py3assert %(py5)spy5)r	   from_ghr
   r   
@pytest_ar_call_reprcompare@py_builtinslocals_should_repr_global_name	_safereprAssertionError_format_explanation)critical_failure_pr_dataempty_th_datar   snapr   r   @py_assert1@py_format3@py_format5@py_assert0@py_assert2@py_format4@py_format6s                a/home/jay/workspace/tests/pr_watcher_terminal_state_classifier/test_classify_existing_branches.py6test_critical_failure_returns_ci_failed_non_remediabler6      s     6FD#ME6
 ,,,,,5,,,,,,,5,,,5,,,,,,,,,,,,,,,,,,:::    c                Z   t        j                  | |      }t        |d|      \  }}|t        k(  }|st	        j
                  d|fd|t        f      dt        j                         v st	        j                  |      rt	        j                  |      nddt        j                         v st	        j                  t              rt	        j                  t              nddz  }dd	|iz  }t        t	        j                  |            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  }dd|iz  }t        t	        j                  |            d x}	}
y )Nr   r   r   r   r   r   r   r   r   z0 unresolvedr   r   r   r   r    r!   )r	   r"   r
   r   r#   r$   r%   r&   r'   r(   r)   r*   )merge_ready_pr_dataall_resolved_th_datar   r-   r   r   r.   r/   r0   r1   r2   r3   r4   s                r5   test_merge_ready_clean_pathr;   %   s     13GHD#ME6
 K5K55KK#>V####>V###>######V###V#######r7   c                z   | dddddg|gd}t        j                  ||      }t        |d| dd	d
      \  }}|t        k(  }|st	        j
                  d|fd|t        f      dt        j                         v st	        j                  |      rt	        j                  |      nddt        j                         v st	        j                  t              rt	        j                  t              nddz  }dd|iz  }	t        t	        j                  |	            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  }dd|iz  }t        t	        j                  |            d x}
}y )NBEHIND zcancel-kill-switchSUCCESS)name
conclusion)
headRefOidmergeStateStatusreviewDecisionstatusCheckRollupreviewsi,  i ji08ji  )r   r   head_committed_utcnow_utc_secgemini_stale_threshold_secr   r   r   r   r   r   r   zfresh gemini review missingr   r   r   r   r    r!   )r	   r"   r
   r   r#   r$   r%   r&   r'   r(   r)   r*   )r   r,   stale_gemini_reviewprr-   r   r   r.   r/   r0   r1   r2   r3   r4   s                 r5   )test_gemini_stale_when_head_committed_oldrL   2   s'    $$)C
 ((
B b-0D#%#*ME6 111115111111151115111111111111111111(2(F2222(F222(222222F222F2222222r7   c                0   t        |       }d|d<   t        j                  ||      }t        |d|      \  }}|t        k(  }|st        j                  d|fd|t        f      dt        j                         v st        j                  |      rt        j                  |      nddt        j                         v st        j                  t              rt        j                  t              ndd	z  }d
d|iz  }	t        t        j                  |	            d}y)u?   우선순위 1 (Critical7) 이 head drift 보다 먼저 발화.(deadbeefdeadbeefdeadbeefdeadbeefdeadbeefrB   r   r   r   r   r   r   r   r   r   N)dictr	   r"   r
   r   r#   r$   r%   r&   r'   r(   r)   r*   )
r+   r,   r   rK   r-   r   _r.   r/   r0   s
             r5   4test_critical_failure_takes_priority_over_head_driftrQ   K   s     
&	'B%B|b-0D#HE1
 ,,,,,5,,,,,,,5,,,5,,,,,,,,,,,,,,,,,,r7   )__doc__
__future__r   builtinsr%   _pytest.assertion.rewrite	assertionrewriter#   syspathlibr   pathinsertstr__file__resolveparentspytest*utils.pr_watcher_terminal_state_classifierr   r   r   r	   r
   r6   r;   rL   rQ    r7   r5   <module>rc      si    #   
  3tH~--/77:; <  
 
$32-r7   