
    4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ZddlZddlmZ ddlZ ee      j#                         j$                  j$                  j$                  Z ee      ej*                  v r!ej*                  j-                   ee             ej*                  j/                  d ee             ddlmZmZmZmZ ddlmZ ddlm Z m!Z!m"Z"m#Z# ddl$m%Z%m&Z& ed	z  d
z  Z'edz  dz  Z(dZ)dZ*d:dZ+ G d d      Z, G d d      Z- ej\                  d      d        Z/d Z0 ej\                  d      d        Z1d;dZ2ddd<dZ3ejh                  dd=dZ5ddddd d!Z6d" Z7d# Z8d$ Z9ejt                  jw                  dg d%      d&        Z<ejt                  jw                  d'd(d)d*iiejz                  fd+diej|                  fg      d,        Z?d- Z@d. ZAd/ ZBd0 ZCd1 ZDd2 ZEd3 ZFd4 ZGd5 ZHd6 ZId7 ZJeKd8k(  r eL ej                  ed9g            y)>uX  tests/regression/test_collector_path_wiring_2553plus37.py

task-2553+37 — CANCEL-ON-SUCCESS COLLECTOR-PATH WIRING regression (§3 1~15).

9-R.1: 전 케이스 mock/fixture/격리 — 실 cron-list·실 cron-remove·실
schedule_history 무접촉. "cron-remove called" = 주입 SpyRemover 호출 spy
assert (실 cron 삭제 아님). 실 subprocess 즉시 FAIL 차단. 실 운영 cron
실제 삭제 0 (§6 / 9-R.1 / 9-R.4). live /home/jay/workspace git tracked
HEAD/branch/ref 전후 assertEqual (§5 repo root 기준).

§3 매핑:
  1  wired-fix                         → (mocked) cron-remove called
  2  fallback-id-missing               → cron-remove 0, fallback preserved
  3  +23 task-id-mismatch (binding ok) → cron-remove 0
  4  +23 chat-id-mismatch (binding ok) → cron-remove 0
  5  +23 role-not-fallback (binding ok)→ cron-remove 0
  6  non-PASS (HOLD/RESULT_MISSING)    → cron-remove 0
  7  seam exception                    → normal success preserved
  8  cancel-audit JSON 생성 (wired/binding-invalid 양쪽)
  9  DUPLICATE_CALLBACK_IGNORED 무회귀
  10 +33/+34/+35 COLLECTOR_PATH_NOT_WIRED 재현 후 수정 경로 PASS
  11 +32 mandatory normal callback contract 무회귀
  12 +25 operational seam 무회귀
  13 registry/checkpoint primary path 대체 없음
  14 raw token/credential exposure 0
  15 unrelated cron remove attempt 0
    )annotationsN)Path)CallbackInputCallbackTypeClassification!run_completion_callback_collector)RemoverResult)NormalCallbackBinding'build_normal_completion_callback_prompt.run_wired_normal_completion_callback_collector validate_normal_callback_binding)OperationalSeamParams-run_operational_completion_callback_collectormemoryfixturesutilsz%anu_delegation_completion_callback.py@83b3e307c8207c76a3e311c408aab4951373bd317896e51687d3007907b0c3d4c119085addb0f8b7namec                `    t        j                  t        |  dz  j                  d            S )Nz.jsonutf-8encoding)jsonloadsFIXDIR	read_text)r   s    M/home/jay/workspace/tests/regression/test_collector_path_wiring_2553plus37.py_fxr   C   s*    ::v4&.9979KLL    c                      e Zd ZddZddZy)FakeCronListerc                .    || _         || _        d| _        y )Nr   )entriesstatuscalls)selfr$   r%   s      r   __init__zFakeCronLister.__init__H   s    
r    c                    | xj                   dz  c_         | j                  dk7  r| j                  g i dS dt        | j                        ddidS )N   ok)r%   r$   rawfakeT)r&   r%   listr$   )r'   s    r   __call__zFakeCronLister.__call__M   sL    

a
;;$"kkbDDDLL)D>
 	
r    N)r+   )returndict)__name__
__module____qualname__r(   r/    r    r   r"   r"   G   s    

r    r"   c                  (    e Zd ZdZdddZddd	dZy)

SpyRemoveruD   주입 fake remover — 실 cron 삭제 0. 호출 인자 spy 기록.c                     || _         g | _        y )N)r%   r&   )r'   r%   s     r   r(   zSpyRemover.__init__[   s    
r    T)dry_runc                   | j                   j                  ||d       t        | j                  d| j                         S )Ncron_idr9   zfake:)r%   detail)r&   appendr	   r%   )r'   r<   r9   s      r   r/   zSpyRemover.__call___   s5    

g'BCDKK%}8MNNr    N)removed)r%   str)r<   r@   r9   boolr0   r	   )r2   r3   r4   __doc__r(   r/   r5   r    r   r7   r7   X   s    N 9= Or    r7   T)autousec                8    d }| j                  t        d|       y )Nc                     t        d      )NuJ   실 subprocess 호출 금지 (§6 9-R.1/9-R.4) — fake lister/remover 만)AssertionError)aks     r   _boomz%_block_real_subprocess.<locals>._boomf   s    X
 	
r    run)setattr
subprocess)monkeypatchrI   s     r   _block_real_subprocessrN   d   s    

 
E51r    c                 R   t         dz  } | dz  j                  d      j                         }|j                  d      r|j	                  dd      d   n|}|j                  d      r| |z  nd }|r3|j                         r#| |z  j                  d      j                         n|}|||fS )Nz.gitHEADr   r   zref:zref: r*   )	WORKSPACEr   strip
startswithsplitexists)git_dirhead_txtbranchref_pathshas        r   _git_refr[   n   s    & G& ++W+=CCEH v& 	w"1% 
 $,#6#6v#>wDH ) 
6	$$g$6<<> 
 fc""r    c               #  B  K   t               } d  t               }|| k(  }|st        j                  d|fd|| f      dt        j                         v st        j
                  t               rt        j                  t               nd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 w)	N==)z)%(py2)s
{%(py2)s = %(py0)s()
} == %(py4)sr[   beforepy0py2py4u.   git HEAD/branch/ref 변경 감지 (§5 위반)z
>assert %(py6)spy6)
r[   
@pytest_ar_call_reprcompare@py_builtinslocals_should_repr_global_name	_saferepr_format_assertmsgrF   _format_explanation)r_   @py_assert1@py_assert3@py_format5@py_format7s        r   _git_ref_invariantrq      s     ZF	:Q:QQQ:QQQQQQ8QQQ8QQQ:QQQQQQQQQQQQQ!QQQQQQQs   DDc                @   |j                  dd       i }|| d    dz  }|j                  t        j                  | d         d       ||d<   || d    d	z  }|j                  t        j                  | d
         d       ||d<   || d    dz  }|j                  | j	                  dd      d       ||d<   || d    dz  }|j                  t        j                  | d         d       ||d<   || d    dz  |d<   || d    dz  |d<   || d    dz  |d<   |S )NT)parentsexist_oktask_idz.dispatch-fired.jsondispatch_fired_markerr   r   dispatch_fired_marker_pathz.result.jsonresult_jsonresult_json_pathz
.report.mdreport_text report_pathz.collector-result.jsoncollector_result_markercollector_result_marker_pathz.fallback-cancelled.jsonfallback_cancelled_marker_pathz.cancel.lockcancel_lock_pathz.plus23-cancel-audit.jsonseam_audit_path)mkdir
write_textr   dumpsget)fxtmppdfmrjrepcrms          r   _materializer      st   IIdTI*A
2i=/!56
6CNN4::b!89:WNM&)A"#	"Y--	-BMM$**R./'MBA
2i=/,
,CNN266-,wN?Am
2i=/!78
8CNN

2/01G   ),A$%I788 &'  R	]O<"@@AByM?2K!LLAHr    
__use_fx__)fallback_overridec               <   | j                  di       }|dk(  r|j                  d      n|}t        |j                  d| d         |j                  d| j                  dd            |j                  d| j                  dd            ||j                  d	d
            S )Nbindingr   fallback_cron_idru   dispatch_cron_idDnormal_collector_cron_idNchat_id   L5: ru   r   r   r   r   )r   r
   )r   r   bfids       r   _binding_from_fxr      s    
y"A , 	
 ! 
 !iI/1266:Lc3RS!"&/I3(O"
 i, r    callback_typec               6    t        | dd|dddddddd	id

      S )Nzdev4-simDISP37NORM37r+   	completedT)rx   reportfrozen_anchormatch)
ru   executorr   r   callback_cron_idcron_statustask_statusrequired_closeout_markerspreservation_anchors
dev_sunset)r   )ru   r   s     r   _pass_inputr      s7    !#!26$"G-w7 r    )inplisterremoverr   c               &   t        | |      }|xs t        d      }|xs t        | d         }t        |xs t	        | d         |dz  |xs t        |       |d   |d   |d   |d   |d	z  |||d
   |d   |d   | j                  d            }	|	||fS )Nr?   live_cron_entriesru   ack.jsonrw   ry   r|   r~   claimsr   r   r   callback_contract)r   rw   ry   r|   r~   	claim_dircron_listerr   r   r   r   r   )r   r7   r"   r   r   r   r   )
r   r   r   r   r   r   r   spylstress
             r   
_run_wiredr      s    RA

*Z	*C

;N2&9#:;C
8){2i=)j/+B/#$%A#B-.m$%&'E%F.'()I'J-.+,&&!45C  S=r    c                   t        d      }t        ||       \  }}}|j                  }d}||u }|st        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  }	t        t        j                  |	            d x}x}}|j                  }d}||u }|st        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  }	t        t        j                  |	            d x}x}}|j                  }|j                  }t        j                  }
||
k(  }|s
t        j                  d
|fd||
f      dt        j                         v st        j                  |      rt        j                  |      ndt        j                  |      t        j                  |      dt        j                         v st        j                  t              rt        j                  t              ndt        j                  |
      dz  }dd|iz  }t        t        j                  |            d x}x}x}}
|j                   }d}||u }|st        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  }	t        t        j                  |	            d x}x}}|j"                  }d}||u }|st        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  }	t        t        j                  |	            d x}x}}|j$                  }d}||u }|st        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  }	t        t        j                  |	            d x}x}}|j&                  }d}||u }|st        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  }	t        t        j                  |	            d x}x}}|j(                  }d }||u}|st        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  }	t        t        j                  |	            d x}x}}|j(                  }|j*                  }|j,                  }d}||k(  }
|
st        j                  d
|
fd||f      dt        j                         v st        j                  |      rt        j                  |      ndt        j                  |      t        j                  |      t        j                  |      t        j                  |      dz  }dd|iz  }t        t        j                  |            d x}x}x}x}
}|j.                  }dddg}||k(  }|st        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  }	t        t        j                  |	            d x}x}}|j.                  }d }||k(  }|st        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  }	t        t        j                  |	            d x}x}}|j0                  d"   }d}||u }|slt        j                  d|fd#||f      t        j                  |      t        j                  |      d$z  }d%d&|iz  }t        t        j                  |            d x}x}}y )'Ntask-2553+37.wired-fixTiszN%(py2)s
{%(py2)s = %(py0)s.wired_via_operational_collector_wiring
} is %(py5)sr   ra   rb   py5assert %(py7)spy7z5%(py2)s
{%(py2)s = %(py0)s.binding_valid
} is %(py5)sr]   zv%(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.collector_result
}.classification
} == %(py8)s
{%(py8)s = %(py6)s.PASS
}r   ra   rb   rc   rd   py8assert %(py10)spy10z7%(py2)s
{%(py2)s = %(py0)s.durable_success
} is %(py5)sz4%(py2)s
{%(py2)s = %(py0)s.seam_invoked
} is %(py5)sz;%(py2)s
{%(py2)s = %(py0)s.cron_remove_invoked
} is %(py5)sFz:%(py2)s
{%(py2)s = %(py0)s.fallback_preserved
} is %(py5)s)is not)z9%(py2)s
{%(py2)s = %(py0)s.wiring_result
} is not %(py5)sPLUS9A_CANCELLEDz%(py6)s
{%(py6)s = %(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.wiring_result
}.seam_outcome
}.seam_classification
} == %(py9)sra   rb   rc   rd   py9assert %(py11)spy11	FB37-0001r;   z-%(py2)s
{%(py2)s = %(py0)s.calls
} == %(py5)sr   r*   r   normal_success_unchangedz%(py1)s is %(py4)spy1rc   assert %(py6)srd   )r   r   &wired_via_operational_collector_wiringre   rf   rg   rh   ri   rj   rF   rl   binding_validcollector_resultclassificationr   PASSdurable_successseam_invokedcron_remove_invokedfallback_preservedwiring_resultseam_outcomeseam_classificationr&   cancel_audit)tmp_pathr   r   r   r   rm   @py_assert4rn   @py_format6@py_format8@py_assert7@py_assert5@py_format9@py_format11@py_assert8@py_format10@py_format12@py_assert0@py_assert2ro   rp   s                        r   7test_01_wired_success_bound_verifier_pass_remove_calledr      s   	%	&Br8,MCc55==5====5======3===3===5==========$$$$$$$$$$$$3$$$3$$$$$$$$$$$$$E..E.2E2EE.2EEEEE.2EEEEEEE3EEE3EEEEEE.EEEEEE.EEE.EEE2EEEEEEEE&$&$&&&&$&&&&&&3&&&3&&&&&&$&&&&&&&#t#t####t######3###3######t#######""*d*"d****"d******3***3***"***d*******!!*U*!U****!U******3***3***!***U*******(D(D((((D((((((3(((3((((((D(((((((S))S)==SASS=ASSSSS=ASSSSSSS3SSS3SSSSSS)SSS=SSSASSSSSSSS99D[UCDD9DDDDD9DDDDDDD3DDD3DDD9DDDDDDDDDDD999>933967?4?74????74???7???4???????r    c                L   t        d      }t        ||       \  }}}|j                  }d}||u }|st        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  }	t        t        j                  |	            d x}x}}d	}
|j                  }|
|v }|st        j                  d
|fd|
|f      t        j                  |
      dt        j                         v st        j                  |      rt        j                  |      ndt        j                  |      dz  }dd|iz  }	t        t        j                  |	            d x}
x}}|j                  }d}||u }|st        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  }	t        t        j                  |	            d x}x}}|j                  }d}||u }|st        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  }	t        t        j                  |	            d x}x}}|j                  }d}||u }|st        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  }	t        t        j                  |	            d x}x}}|j                  }g }||k(  }|st        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  }	t        t        j                  |	            d x}x}}|j                   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}}|j                   d   }
d}|
|u }|slt        j                  d|fd|
|f      t        j                  |
      t        j                  |      dz  }dd|iz  }t        t        j                  |            d x}
x}}|j                   d   }
d}|
|u }|slt        j                  d|fd|
|f      t        j                  |
      t        j                  |      dz  }dd|iz  }t        t        j                  |            d x}
x}}|j"                  }|j$                  }t&        j(                  }||k(  }|s
t        j                  d|fd||f      dt        j                         v st        j                  |      rt        j                  |      ndt        j                  |      t        j                  |      dt        j                         v st        j                  t&              rt        j                  t&              ndt        j                  |      dz  }d d!|iz  }t        t        j                  |            d x}x}x}}y )"N task-2553+37.fallback-id-missingFr   r   r   r   r   r   fallback_cron_id_missingin)z?%(py1)s in %(py5)s
{%(py5)s = %(py3)s.binding_invalid_reasons
})r   py3r   r   r   Tr   r]   r   r   lookup_statusBINDING_MISSINGz%(py1)s == %(py4)sr   r   rd   remove_attemptedr   r   r   r   r   r   r   )r   r   r   re   rf   rg   rh   ri   rj   rF   rl   binding_invalid_reasonsr   r   r   r&   r   r   r   r   r   )r   r   r   r   _rm   r   rn   r   r   r   r   ro   rp   r   r   r   r   s                     r   /test_02_fallback_id_missing_no_remove_preservedr     s   	/	0BR*KCa%%%%%%%%%%%%3%%%3%%%%%%%%%%%%%%D)D)DD%)DDDDD%)DDDD%DDDDDDDDDDDD)DDDDDDDD$u$u$$$$u$$$$$$3$$$3$$$$$$u$$$$$$$""+e+"e++++"e++++++3+++3+++"+++e+++++++!!)T)!T))))!T))))))3)))3)))!)))T)))))))999?9339O,A0AA,0AAAAA,0AAAA,AAA0AAAAAAAA./858/58888/5888/8885888888867?4?74????74???7???4???????E..E.2E2EE.2EEEEE.2EEEEEEE3EEE3EEEEEE.EEEEEE.EEE.EEE2EEEEEEEEr    c                ~   t        d      }t        ||       \  }}}|j                  }d}||u }|st        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  }	t        t        j                  |	            d x}x}}d	 |j                  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}}|j                  }d}||u }|st        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  }	t        t        j                  |	            d x}x}}|j                  }g }||k(  }|st        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  }	t        t        j                  |	            d x}x}}|j                  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}}|j                  d   }d}||u }|slt        j                  d|fd||f      t        j                  |      t        j                  |      dz  }
dd|
iz  }t        t        j                  |            d x}x}}y )Nz!task-2553+37.fallback-id-mismatchFr   r   r   r   r   r   c              3  >   K   | ]  }|j                  d         yw) fallback_cron_id_marker_mismatchN)rS   .0rs     r   	<genexpr>zAtest_02b_fallback_id_marker_mismatch_no_remove.<locals>.<genexpr>  s"       	
78s   ,assert %(py4)s
{%(py4)s = %(py0)s(%(py2)s)
}anyr`   r   r]   r   r   r   BINDING_MISMATCHr   r   r   rd   r   Tr   )r   r   r   re   rf   rg   rh   ri   rj   rF   rl   r  r  r   r&   r   )r   r   r   r   r  rm   r   rn   r   r   ro   r   r   rp   s                 r   .test_02b_fallback_id_marker_mismatch_no_remover     s   	0	1BR*KCa%%%%%%%%%%%%3%%%3%%%%%%%%%%%%%,, 3                         $u$u$$$$u$$$$$$3$$$3$$$$$$u$$$$$$$999?9339O,B0BB,0BBBBB,0BBBB,BBB0BBBBBBBB67?4?74????74???7???4???????r    )ztask-2553+23.task-id-mismatchztask-2553+23.chat-id-mismatchztask-2553+23.role-not-fallbackc                Z   t        |      }t        |d   dd|d   d      }t        || t        |d         |      \  }}}|j                  }d}||u }	|	st        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  }t        t        j                  |            d x}x}	}|j                  }d}||u }	|	st        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  }t        t        j                  |            d x}x}	}|j                  }d}||u }	|	st        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  }t        t        j                  |            d x}x}	}|j                  }g }||k(  }	|	st        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  }t        t        j                  |            d x}x}	}|j                   }|j"                  }	|	j$                  }d}||k(  }|st        j                  d|fd||f      dt        j                         v st        j                  |      rt        j                  |      ndt        j                  |      t        j                  |	      t        j                  |      t        j                  |      dz  }dd|iz  }t        t        j                  |            d x}x}	x}x}}|j&                  }|j(                  }	t*        j,                  }|	|k(  }|s
t        j                  d|fd|	|f      dt        j                         v st        j                  |      rt        j                  |      ndt        j                  |      t        j                  |	      dt        j                         v st        j                  t*              rt        j                  t*              ndt        j                  |      dz  }dd|iz  }t        t        j                  |            d x}x}	x}}y )Nru   DISP23NORM23target_cron_idr   r   )r   r   Tr   r   r   r   r   r   r   Fr   r]   r   r   SKIP_LIVE_SKIP_MISMATCHr   r   r   r   r   r   r   r   r   )r   r
   r   r   r   re   rf   rg   rh   ri   rj   rF   rl   r   r   r&   r   r   r   r   r   r   r   )r   r   r   r   r   r   r  rm   r   rn   r   r   r   r   r   r   r   r   r   s                      r   *test_03_live_mismatch_binding_ok_no_remover    s    
TB#9!!),-G 
9&	KCa $$$$$$$$$$$$3$$$3$$$$$$$$$$$$$#t#t####t######3###3######t#######""+e+"e++++"e++++++3+++3+++"+++e+++++++999?9339 )) )== !=!  =!                 *    >    	"       E..E.2E2EE.2EEEEE.2EEEEEEE3EEE3EEEEEE.EEEEEE.EEE.EEE2EEEEEEEEr    zmutate,expect_clsr   rx   Fchair_gatedc                	   t        d      }t        |d         }|j                         D ]  \  }}t        |||        t	        || |      \  }}}	|j
                  }
|
j                  }||k(  }|st        j                  d|fd||f      dt        j                         v st        j                  |      rt        j                  |      ndt        j                  |
      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}
x}}|j                  }
d}|
|u }|st        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  }t        t        j                  |            d x}
x}}|j                   }
d}|
|u }|st        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  }t        t        j                  |            d x}
x}}|j"                  }
d}|
|u }|st        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  }t        t        j                  |            d x}
x}}|j$                  }
g }|
|k(  }|st        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  }t        t        j                  |            d x}
x}}y )Nr   ru   )r   r]   )z\%(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.collector_result
}.classification
} == %(py6)sr   
expect_clsra   rb   rc   rd   assert %(py8)sr   Fr   r   r   r   r   r   r   r   r   )r   r   itemsrK   r   r   r   re   rf   rg   rh   ri   rj   rF   rl   r   r   r   r&   )r   mutater  r   r   rH   vr   r   r  rm   rn   r   rp   r   r   r   r   s                     r   test_06_non_pass_no_remover  /  s    
%	&B
bm
$C 1QRs3KCa<..<.*<<<<.*<<<<<<3<<<3<<<<<<.<<<<<<*<<<*<<<<<<<'%'%''''%''''''3'''3''''''%'''''''$u$u$$$$u$$$$$$3$$$3$$$$$$u$$$$$$$""+e+"e++++"e++++++3+++3+++"+++e+++++++999?9339r    c                   t        d      }dd lm} d }|j                  |d|       t	        ||       \  }}}|j
                  }|j                  }	t        j                  }
|	|
k(  }|s
t        j                  d|fd|	|
f      dt        j                         v st        j                  |      rt        j                  |      ndt        j                  |      t        j                  |	      dt        j                         v st        j                  t              rt        j                  t              ndt        j                  |
      d	z  }d
d|iz  }t        t        j                   |            d x}x}	x}}
|j
                  }|j"                  }	d}|	|u }|st        j                  d|fd|	|f      dt        j                         v st        j                  |      rt        j                  |      ndt        j                  |      t        j                  |	      t        j                  |      dz  }dd|iz  }t        t        j                   |            d x}x}	x}}|j$                  }d}||u }	|	st        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  }t        t        j                   |            d x}x}	}|j&                  }g }||k(  }	|	st        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  }t        t        j                   |            d x}x}	}|j(                  d   }d}	||	u }|slt        j                  d|fd||	f      t        j                  |      t        j                  |	      dz  }dd|iz  }t        t        j                   |            d x}x}}	y )Nr   r   c                     t        d      )Nzseam blew up)RuntimeError)rH   s    r   rI   z/test_07_seam_exception_decoupled.<locals>._boomK  s    >**r    run_operational_cancel_seamr]   r   r   r   r   r   r   Tr   )z`%(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.collector_result
}.closeout_candidate
} is %(py7)sra   rb   rc   r   assert %(py9)sr   Fr   r   r   r   r   r   r   r   r   r   rd   )r   "utils.operational_collector_wiringoperational_collector_wiringrK   r   r   r   r   r   re   rf   rg   rh   ri   rj   rF   rl   closeout_candidater   r&   r   )r   rM   r   wiringrI   r   r   r  rm   rn   r   r   r   r   @py_assert6r   r   r   r   r   r   ro   rp   s                          r    test_07_seam_exception_decoupledr*  G  s   	%	&B7+  =uER*KCaE..E.2E2EE.2EEEEE.2EEEEEEE3EEE3EEEEEE.EEEEEE.EEE.EEE2EEEEEEEE:22:d:2d::::2d::::::3:::3::::::2:::d:::::::$u$u$$$$u$$$$$$3$$$3$$$$$$u$$$$$$$999?933967?4?74????74???7???4???????r    c                    ddl t        dz  dz  j                  d      } j                  |       }t	        fdj                  |      D              }j                  |      D cg c]N  }t        |j                        r6t        |j                  j                        r|j                  j                  P }}|j                  }d} ||      }d	}||k(  }	|	st        j                  d
|	fd||f      dt        j                         v st        j                   |      rt        j"                  |      ndt        j"                  |      t        j"                  |      t        j"                  |      t        j"                  |      dz  }
dd|
iz  }t%        t        j&                  |            dx}x}x}x}	}|j                  }d} ||      }d	}||k(  }	|	st        j                  d
|	fd||f      dt        j                         v st        j                   |      rt        j"                  |      ndt        j"                  |      t        j"                  |      t        j"                  |      t        j"                  |      dz  }
dd|
iz  }t%        t        j&                  |            dx}x}x}x}	}yc c}w )u   binding-valid 경로는 frozen collector 를 재호출하는 try/except 래퍼를
    두지 않는다 — 동일 ack loser 로 PASS→DUPLICATE 뒤집힘 방지(Codex MED).
    r   Nr   2normal_completion_callback_collector_entrypoint.pyr   r   c              3  l   K   | ]+  }t        |j                        r|j                  d k(  r| - yw)r   N)
isinstanceFunctionDefr   )r	  nasts     r   r  zBtest_07b_single_frozen_call_no_reinvoke_wrapper.<locals>.<genexpr>f  s4      a)FFFF 	
s   14r   r*   r]   )zK%(py6)s
{%(py6)s = %(py2)s
{%(py2)s = %(py0)s.count
}(%(py4)s)
} == %(py9)sr&   r   r   r   r   )r1  rQ   r   parsenextwalkr.  CallfuncNameidcountre   rf   rg   rh   ri   rj   rF   rl   )srctreefncr&   rm   rn   r   r   r   r   r   r1  s               @r   /test_07b_single_frozen_call_no_reinvoke_wrapperr>  Z  s     	
	
>	? ii!	 
 99S>D	 $ 
B "a"z!&&#(('C 	
		E  ;;@:@;:;@q@;q@@@@;q@@@@@@5@@@5@@@;@@@:@@@;@@@q@@@@@@@;;LFL;FGL1LG1LLLLG1LLLLLL5LLL5LLL;LLLFLLLGLLL1LLLLLLLLs   )AJ;c           
        h d}t        t        d      | dz        \  }}}|j                  }|j                  }|j                  } |       } ||      }|s
ddt        j                         v st        j                  |      rt        j                  |      ndt        j                  |      dt        j                         v st        j                  |      rt        j                  |      ndt        j                  |      t        j                  |      t        j                  |      t        j                  |      dz  }	t        t        j                  |	            d x}x}x}x}}|j                  }
t        |
      }|j                  } |       }|sdd	t        j                         v st        j                  t              rt        j                  t              nd	dt        j                         v st        j                  |      rt        j                  |      ndt        j                  |
      t        j                  |      t        j                  |      t        j                  |      d
z  }t        t        j                  |            d x}
x}x}}t        t        d      | dz        \  }}}|j                  }|j                  }|j                  } |       } ||      }|s
ddt        j                         v st        j                  |      rt        j                  |      ndt        j                  |      dt        j                         v st        j                  |      rt        j                  |      ndt        j                  |      t        j                  |      t        j                  |      t        j                  |      dz  }	t        t        j                  |	            d x}x}x}x}}|j                  }
t        |
      }|j                  } |       }|sdd	t        j                         v st        j                  t              rt        j                  t              nd	dt        j                         v st        j                  |      rt        j                  |      ndt        j                  |
      t        j                  |      t        j                  |      t        j                  |      d
z  }t        t        j                  |            d x}
x}x}}|j                  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}
}y )N>
   schemaevent_idskip_reasonr   remove_resultr  r  five_condition_resultsr   already_removed_or_missingr   rG   zassert %(py11)s
{%(py11)s = %(py2)s
{%(py2)s = %(py0)s.issubset
}(%(py9)s
{%(py9)s = %(py7)s
{%(py7)s = %(py5)s
{%(py5)s = %(py3)s.cancel_audit
}.keys
}()
})
}reqr1)ra   rb   r   r   r   r   r   assert %(py9)s
{%(py9)s = %(py7)s
{%(py7)s = %(py5)s
{%(py5)s = %(py0)s(%(py3)s
{%(py3)s = %(py1)s.cancel_audit_path
})
}.exists
}()
}r   ra   r   r   r   r   r   r   r   r2r@  ztask-2553+25.cancel-audit_v1r]   r   r   r   rd   )r   r   issubsetr   keysrg   rh   re   ri   rj   rF   rl   cancel_audit_pathr   rU   rf   )r   rF  rG  r  rm   r   r)  r   @py_assert10r   r   r   rJ  r   rn   ro   rp   s                    r   )test_08_cancel_audit_generated_both_pathsrO  x  ss   C #67CHHB1<<//,,/,./<.////////3///3///<///////////////,///.///////////$$.4$%.%,,.,........4...4............$...%...,..........#@A8c>RHB1<<//,,/,./<.////////3///3///<///////////////,///.///////////$$.4$%.%,,.,........4...4............$...%...,..........??8$F(FF$(FFFFF$(FFFF$FFF(FFFFFFFFr    c                D   t        d      t        | dz        | dz  | dz  t              fd} |t        j                  t        d            }t        d      } |t        j                  |      }|j                  }|j                  }t        j                  }||k(  }|s
t        j                  d|fd||f      d	t        j                         v st        j                  |      rt        j                   |      nd	t        j                   |      t        j                   |      d
t        j                         v st        j                  t              rt        j                   t              nd
t        j                   |      dz  }	dd|	iz  }
t#        t        j$                  |
            d x}x}x}}|j&                  }d}||u }|st        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  }t#        t        j$                  |            d x}x}}|j                  }|j                  }t        j(                  }||k(  }|s
t        j                  d|fd||f      dt        j                         v st        j                  |      rt        j                   |      ndt        j                   |      t        j                   |      d
t        j                         v st        j                  t              rt        j                   t              nd
t        j                   |      dz  }	dd|	iz  }
t#        t        j$                  |
            d x}x}x}}|j*                  }d}||u }|st        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  }t#        t        j$                  |            d x}x}}|j&                  }d}||u }|st        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  }t#        t        j$                  |            d x}x}}|j,                  }g }||k(  }|st        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  }t#        t        j$                  |            d x}x}}y )Nr   sharedzshared-ack.jsonr   c                    t        t        d   |       d   d   d   d   t        d         |d   d	   
      S )Nru   r   rw   ry   r|   r~   r   r   r   )
r   rw   ry   r|   r~   r   r   r   r   r   )r   r   r"   )ctyper   ackr   claimr   r   s     r   _callz7test_09_duplicate_callback_no_regression.<locals>._call  sm    =9U;'()E'F12-()*+I)J&r*='>?+,-M+N12
 	
r    r?   r]   r   firstr   r   r   r   Tr   r   r   r   r   )z%(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.collector_result
}.classification
} == %(py8)s
{%(py8)s = %(py6)s.DUPLICATE_CALLBACK_IGNORED
}secondFr   r   spy2)r   r   r   r   NORMALr7   FALLBACK_STALEr   r   r   r   re   rf   rg   rh   ri   rj   rF   rl   r   DUPLICATE_CALLBACK_IGNOREDr   r&   )r   rV  rW  rY  rX  rm   rn   r   r   r   r   r   r   r   rT  r   rU  r   r   s                 @@@@@r   (test_09_duplicate_callback_no_regressionr]    s
   	%	&BRH,-A
&
&CxEr"G
 
  ,%%z)'<=Ei D<..5F!!G!00GN4G4GG04GGGGG04GGGGGGG5GGG5GGG!GGG0GGGGGGNGGGNGGG4GGGGGGGG%%%%%%%%%%%%5%%%5%%%%%%%%%%%%%..44.4	5  .4     	   	   	    	/           5       !!*U*!U****!U******6***6***!***U*******'%'%''''%''''''6'''6''''''%'''''''::::44:r    c                   t        d      }t        || dz        }dd lm} ddi|j                  fd}|j                  |d|       t        t        |d         | dz  d	z        }|j                  }t        j                  }||k(  }	|	st        j                  d
|	fd||f      dt        j                         v st        j                  |      rt        j                   |      ndt        j                   |      dt        j                         v st        j                  t              rt        j                   t              ndt        j                   |      dz  }
dd|
iz  }t#        t        j$                  |            d x}x}	}d   }d}	||	u }|slt        j                  d|fd||	f      t        j                   |      t        j                   |	      dz  }dd|iz  }
t#        t        j$                  |
            d x}x}}	| dz  dz  }|j&                  } |       }	|	 }|sddt        j                         v st        j                  |      rt        j                   |      ndt        j                   |      t        j                   |	      dz  }t#        t        j$                  |            d x}x}	}dd<   t)        d      }t+        t        |d         | dz  dz  t-        |      |d   |d   |d   |d   | dz  d z  t/        |d!         |"
      }d   }d#}	||	u }|slt        j                  d|fd||	f      t        j                   |      t        j                   |	      dz  }dd|iz  }
t#        t        j$                  |
            d x}x}}	|j0                  }d#}||u }	|	st        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  }t#        t        j$                  |            d x}x}	}|j2                  }d#}||u }	|	st        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  }t#        t        j$                  |            d x}x}	}|j4                  }d#}||u }	|	st        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  }t#        t        j$                  |            d x}x}	}|j6                  }d+dd,g}||k(  }	|	st        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  }t#        t        j$                  |            d x}x}	}|j8                  }t;        |      }|j&                  } |       }|sd/d0t        j                         v st        j                  t:              rt        j                   t:              nd0d%t        j                         v st        j                  |      rt        j                   |      nd%t        j                   |      t        j                   |      t        j                   |      t        j                   |      d1z  }t#        t        j$                  |            d x}x}x}}y )2Nz%task-2553+37.collector-path-not-wirednwr   calledFc                     dd<    di | S )NTr`  r5   r5   )rH   	orig_seamseam_spys    r   	_spy_seamz<test_10_not_wired_reproduction_then_fixed.<locals>._spy_seam  s    !~1~r    r"  ru   zfreeform-ack.jsonr]   )zP%(py2)s
{%(py2)s = %(py0)s.classification
} == %(py6)s
{%(py6)s = %(py4)s.PASS
}	free_formr   r  r  r   r   r   r   r   rd   ztask-2553+37.cancel-audit.jsonzEassert not %(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.exists
}()
}nw_auditr`   r?   zwired-ack.jsonrw   ry   r|   r~   r   r   )r   rw   ry   r|   r~   r   r   r   Tr   r   r   r   r   r   r   z	FB37-NW01r;   r   r   rH  r   rI  )r   r   r%  r&  r"  rK   r   r   r   r   r   re   rf   rg   rh   ri   rj   rF   rl   rU   r7   r   r   r"   r   r   r   r&   rM  r   )r   rM   r   r   r(  rd  re  rm   r   rn   rp   r   r   r   ro   rf  r   r   r   r   r   r)  r   r   rb  rc  s                           @@r   )test_10_not_wired_reproduction_then_fixedrg    s#   	4	5BRD)A 8% H22I  =yI1ByM"HtO6I$II ##:~':'::#':::::#':::::::9:::9:::#::::::~:::~:::'::::::::H&&&&&&&&&&&&&&&&&&&$!AAH            x   x              HX
Y
C
8ByM"4** $#$%A#B-.m$%&'E%FT/H,"2&9#:;C H%%%%%%%%%%%%%%%%%%%55==5====5======3===3===5==========#t#t####t######3###3######t#######""*d*"d****"d******3***3***"***d*******99D[UCDD9DDDDD9DDDDDDD3DDD3DDD9DDDDDDDDDDD%%/4%&/&--/-////////4///4////////////%///&///-//////////r    c           	        ddl m} t        dddd      }t        |      }g }||k(  }|st	        j
                  d|fd	||f      d
t        j                         v st	        j                  t              rt	        j                  t              nd
dt        j                         v st	        j                  |      rt	        j                  |      ndt	        j                  |      t	        j                  |      dz  }dd|iz  }t        t	        j                  |            d x}x}}|j                  } |       } ||      }g }	||	k(  }
|
st	        j
                  d|
fd||	f      dt        j                         v st	        j                  |      rt	        j                  |      nddt        j                         v st	        j                  |      rt	        j                  |      ndt	        j                  |      t	        j                  |      t	        j                  |      t	        j                  |	      dz  }dd|iz  }t        t	        j                  |            d x}x}x}x}
}	t        ddd d      }t        |      }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}}t        j                  t               5  t#        t        dddd              d d d        y # 1 sw Y   y xY w)Nr   )validate_4tupletr   r   Fru   r   r   r   r]   )z0%(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py6)sr   r+   )ra   r   r   rd   r  r   )zg%(py7)s
{%(py7)s = %(py0)s(%(py5)s
{%(py5)s = %(py3)s
{%(py3)s = %(py1)s.as_4tuple
}()
})
} == %(py10)sri  )ra   r   r   r   r   r   zassert %(py12)spy12c              3  $   K   | ]  }d |v  
 yw)z normal_collector_cron_id missingNr5   r  s     r   r  zBtest_11_plus32_mandatory_contract_no_regression.<locals>.<genexpr>  s     H11Q6Hs   r  r  r`   )%dispatch.executor_completion_contractri  r
   r   re   rf   rg   rh   ri   rj   rF   rl   	as_4tupler  pytestraises
ValueErrorr   )r   ri  r+   r   r   r   rp   r   r)  @py_assert9r   r   @py_format13badreasonsrm   rn   ro   s                     r   /test_11_plus32_mandatory_contract_no_regressionrx    s'    
!$	
B ,B/525/25555/2555555+555+555555B555B555/55525555555<<0<>0?>*0b0*b0000*b000000?000?00000020002000<000>000*000b0000000
!%	C /s3GHHH3HHHHHHHHH3HHH3HHHHHHHHHHHHHH	z	" 
/!!$),!%		

 
 
s   M//M8c                   t        d      }t        ||       }t        |d   |d   |d   |d   |d   |d   t        |d         t	        d	      |d
   |d   |j                  d            }t        t        |d         | dz  || dz        }|j                  }|j                  }t        j                  }||k(  }|s
t        j                  d|fd||f      dt        j                         v st        j                   |      rt        j"                  |      ndt        j"                  |      t        j"                  |      dt        j                         v st        j                   t              rt        j"                  t              ndt        j"                  |      dz  }	dd|	iz  }
t%        t        j&                  |
            d x}x}x}}|j(                  }d}||u }|st        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  }t%        t        j&                  |            d x}x}}|j*                  }|j,                  }d}||k(  }|st        j                  d|fd ||f      dt        j                         v st        j                   |      rt        j"                  |      ndt        j"                  |      t        j"                  |      t        j"                  |      d!z  }d"d#|iz  }t%        t        j&                  |            d x}x}x}}y )$Nztask-2553+25.dry-runr  rw   ry   r|   r~   r   r   r?   r   r   r   )r  rw   ry   r|   r~   
audit_pathr   r   r   r   r   ru   r   r   )seam_paramsr   r]   r   r   r   r   r   r   Tr   r   r   r   r   r   )z]%(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.seam_outcome
}.seam_classification
} == %(py7)sr#  r$  r   )r   r   r   r"   r7   r   r   r   r   r   r   r   re   rf   rg   rh   ri   rj   rF   rl   r   r   r   )r   r   r   spr   rm   rn   r   r   r   r   r   r   r   r)  r   s                   r   -test_12_plus25_operational_seam_no_regressionr}  	  sl   	#	$BR"A	*+#$%A#B-.m$%&'E%F&'"2&9#:;9%'()I'J-.&&!45
B 8ByM":X%	C E..E.2E2EE.2EEEEE.2EEEEEEE3EEE3EEEEEE.EEEEEE.EEE.EEE2EEEEEEEE#t#t####t######3###3######t#######E//E3EE/3EEEEE/3EEEEEEE3EEE3EEEEEE/EEE3EEEEEEEEr    c                    dd l } t        dz  dz  j                  d      }| j                  |      }| j	                  |      D ch c]0  }t        || j                        r|j                  r|j                  2 }}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}x}}t!        t#        d
ddd            }	d}
|	d   }|
|v }|slt        j$                  d|fd|
|f      t        j                  |
      t        j                  |      dz  }dd|iz  }t        t        j                  |            d x}
x}}d}
|	d   }|
|v }|slt        j$                  d|fd|
|f      t        j                  |
      t        j                  |      dz  }dd|iz  }t        t        j                  |            d x}
x}}y c c}w )Nr   r   r,  r   r   c              3  <   K   | ]  }d |v xs
 d|v xs d|v   yw)registry
checkpoint	reconcileNr5   )r	  ms     r   r  z/test_13_registry_not_primary.<locals>.<genexpr>5  s3       	a@<1,@q0@@s   z0assert not %(py4)s
{%(py4)s = %(py0)s(%(py2)s)
}r  r`   rj  r   r   rk  rl  PRIMARYcollector_path_contractr   )z%(py1)s in %(py4)sr   r   rd   recovery)r1  rQ   r   r2  r4  r.  
ImportFrommoduler  rg   rh   re   ri   rj   rF   rl   r   r
   rf   )r1  r:  r;  r0  modulesrm   rn   r   r   contractr   r   ro   rp   s                 r   test_13_registry_not_primaryr  %  s    	
	
>	? ii!	 
 99S>D $a(QXX 	
G  s                            7 %( 		
H ;!:;;9;;;;;9;;;;9;;;;;;;;;;;<";<<:<<<<<:<<<<:<<<<<<<<<<<)s   5Ic           
        t        t        dddd            }t        j                  |d      }t        |v}|st        j                  d|fd	t        |f      d
t        j                         v st        j                  t              rt        j                  t              nd
dt        j                         v st        j                  |      rt        j                  |      nddz  }dd|iz  }t        t        j                  |            d }t        t        d      |       \  }}}t        j                  }|j                  }	d}
 ||	|
      }t        |v}|skt        j                  d|fdt        |f      d
t        j                         v st        j                  t              rt        j                  t              nd
dt        j                         v st        j                  t              rt        j                  t              ndt        j                  |      dt        j                         v st        j                  |      rt        j                  |      ndt        j                  |	      t        j                  |
      t        j                  |      dz  }dd|iz  }t        t        j                  |            d x}x}x}	x}
}t         dz  dz  j#                  d      }t        |v}|st        j                  d|fd	t        |f      d
t        j                         v st        j                  t              rt        j                  t              nd
dt        j                         v st        j                  |      rt        j                  |      nddz  }dd|iz  }t        t        j                  |            d }y )Nrj  r   r   rk  rl  F)ensure_ascii)not in)z%(py0)s not in %(py2)sANU_KEY_SECRETblobra   rb   zassert %(py4)src   r   )z%(py0)s not in %(py11)s
{%(py11)s = %(py4)s
{%(py4)s = %(py2)s.dumps
}(%(py7)s
{%(py7)s = %(py5)s.cancel_audit
}, ensure_ascii=%(py9)s)
}r   r   )ra   rb   rc   r   r   r   r   zassert %(py13)spy13r   r,  r   r   r:  )r   r
   r   r   r  re   rf   rg   rh   ri   rj   rF   rl   r   r   r   rQ   r   )r   r  r  rm   @py_format3ro   r   r  rn   r)  r   rN  r   @py_format14r:  s                  r   test_14_no_credential_exposurer  F  s!   6 %( 		
H ::hU3D%%%%>%%%%%%>%%%>%%%%%%%%%%%%%%%%378(CICA!%QC,<,<Q5Q,<5!QQ>!QQQQQ>!QQQQQQQ>QQQ>QQQQQQQQQQQQQQQQQQCQQQCQQQ,<QQQ5QQQ!QQQQQQQQ 	
	
>	? ii!	 
 $$$$>$$$$$$>$$$>$$$$$$$$$$$$$$$$r    c                <   t        d      }t        ||       \  }}}|j                  D cg c]  }|d   	 }}dg}||k(  }|slt        j                  d|fd||f      t        j
                  |      t        j
                  |      dz  }	dd|	iz  }
t        t        j                  |
            d x}x}}t        t        d	      | d
z        \  }}}|j                  }g }||k(  }|st        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  }t        t        j                  |            d x}x}}y c c}w )Nr   r<   r   r]   r   r   r   rd   r   xr   rY  r   r   r   )r   r   r&   re   rf   rj   rF   rl   rg   rh   ri   )r   r   r   r   r  r=  r   rn   r   ro   rp   res2rY  rm   r   r   r   s                    r    test_15_no_unrelated_cron_remover  ]  s   	%	&BR*KCa"%)),QAiL,=,=,====,===,==========./CMD$ ::::44: -s   Fc                 ^   t        j                  t        j                               j	                         } | 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  }t        j                  d|        dz   d|iz  }t        t        j                  |            d }y )	Nr]   )z%(py0)s == %(py2)srZ   
FROZEN_SHAr  u   frozen anchor 변경 감지: z
>assert %(py4)src   )hashlibsha256FROZEN
read_bytes	hexdigestr  re   rf   rg   rh   ri   rj   rk   rF   rl   )rZ   rm   r  ro   s       r   test_frozen_anchor_byte0r  j  s    
..**,
-
7
7
9C*CCC3*CCCCCC3CCC3CCCCCC*CCC*CCCC =cUCCCCCCCr    __main__z-q)r   r@   r0   r1   )r   r1   r   r   r0   r1   )r   r1   )ru   r@   )NrB   
__future__r   builtinsrg   _pytest.assertion.rewrite	assertionrewritere   r  r   rL   syspathlibr   rq  __file__resolveparentrQ   r@   pathremoveinsert(utils.anu_delegation_completion_callbackr   r   r   r   )utils.completion_callback_fallback_cancelr	   5utils.normal_completion_callback_collector_entrypointr
   r   r   r   r%  r   r   r   r  r  r  r   r"   r7   fixturerN   r[   rq   r   r   rZ  r   r   r   r  r  markparametrizer  RESULT_MISSINGHOLD_FOR_CHAIRr  r*  r>  rO  r]  rg  rx  r}  r  r  r  r  r2   
SystemExitmainr5   r    r   <module>r     sd  6 #      
  N""$++2299	y>SXXHHOOC	N# 3y> "  D 
 
X	
	*	W	F	FO
#M
 
"	O 	O 2 2#" R R2 5A $ 0</B/B   $D$ 0@(F"@ 
FF6  )=%*@A))	
 	 = =>	
	
@&M<G."L-0b
FF8=B%.	D
 z
[V[[(D!12
33 r    