
    4jj                       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mZ ddl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mZmZmZ ddl m!Z!m"Z"m#Z# ddl$m%Z%m&Z& ddl'm(Z(m)Z)m*Z* dd	l+m,Z, ed
z  dz  Z- e	j\                  edz  dz  j_                  d            Z0 e	j\                  edz  dz  j_                  d            Z1dZ2dHdZ3 G d d      Z4 G d d      Z5 ejl                  d      d        Z7d Z8 ejl                  d      d        Z9dIdZ:dJdZ;e)jx                  ddKd Z=d!dddd"d#Z>d$ Z?d% Z@d& ZAd' ZBd( ZCd) ZDej                  j                  d*dd+id,d-id.d/id0dig      d1        ZGej                  j                  d2d3d4d5iie*j                  fd6die*j                  fg      d7        ZJd8 ZKd9 ZLd: ZMd; ZNd< ZOd= ZPd> ZQd? ZRd@ ZSdA ZTdB ZUdC ZVdD ZWdE ZXeYdFk(  r eZ ej                  edGg            y)Lu~  tests/regression/test_cancel_on_success_live_wiring_2553plus45.py

task-2553+45 — CANCEL-ON-SUCCESS LIVE INTEGRATION regression (§6 1~20).

9-R.1: 전 케이스 mock/fixture/격리 — 실 cron-list·실 cron-remove·실
schedule_history·실 durable ledger(canonical) 무접촉. "cron-remove called"
= 주입 SpyRemover 호출 spy assert (실 cron 삭제 아님). 실 subprocess 즉시
FAIL 차단. durable 4-tuple ledger 는 tmp JSONL 로 격리 주입. live
/home/jay/workspace git tracked HEAD/branch/ref 전후 assertEqual (§5).

§6 매핑:
  1  normal success + fallback bound + live verifier PASS → cron-remove called
  2  normal success + fallback_cron_id missing → cron-remove 0·preserved
  3  task_id mismatch (durable lookup) → cron-remove 0
  4  chat_id mismatch (durable lookup) → cron-remove 0
  5  role not fallback (durable lookup) → cron-remove 0
  6  normal collector failure/HOLD/partial → cron-remove 0
  7  cron-remove exception → normal success preserved (디커플)
  8  cancel-audit JSON 생성 + schema(jsonschema) valid
  9  fallback duplicate safety path 무회귀
  10 +41 fixture normal success 후 fallback 발화 재현
  11 +41 fixture 수정 경로 cancel-on-success PASS
  12 +39 fixture normal success 후 fallback 발화 재현
  13 +39 fixture 수정 경로 cancel-on-success PASS
  14 unrelated cron remove attempt 0
  15 +32 mandatory normal callback contract 무회귀
  16 +37 cancel wiring regression 무회귀
  17 +44/+46 4-tuple/root resolver 호환
  18 raw token/credential exposure 0
  19 runtime checkpoint primary path 대체 없음
  20 normal collector success 와 cancel failure decoupled
    )annotationsN)Path)LOOKUP_CHAT_MISMATCHLOOKUP_NO_FALLBACK_BOUNDLOOKUP_NO_LEDGER_RECORDLOOKUP_ROLE_MISMATCHLOOKUP_VERIFIED%lookup_fallback_from_durable_registry!run_cancel_on_success_live_wiring)LIVE_COLLECTOR_ENTRYPOINTlive_wiring_contract!resolve_live_collector_entrypoint)REQUIRED_AUDIT_FIELDSaudit_is_complete)CallbackInputCallbackTypeClassification)RemoverResultmemoryfixturesschemasz#cancel_on_success_audit.schema.jsonutf-8encodingz'live_cancel_verifier_result.schema.jsonc119085addb0f8b7c                `    t        j                  t        |  dz  j                  d            S )Nz.jsonr   r   )jsonloadsFIXDIR	read_text)names    U/home/jay/workspace/tests/regression/test_cancel_on_success_live_wiring_2553plus45.py_fxr#   W   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__\   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__a   sL    

a
;;$"kkbDDDLL)D>
 	
r$   N)r/   )returndict)__name__
__module____qualname__r,   r3    r$   r"   r&   r&   [   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__o   s    
r$   T)dry_runc                   | j                   j                  ||d       t        | j                  d| j                         S )Ncron_idr=   zfake:)r)   detail)r*   appendr   r)   )r+   r@   r=   s      r"   r3   zSpyRemover.__call__s   s5    

g'BCDKK%}8MNNr$   N)removed)r)   str)r@   rD   r=   boolr4   r   )r6   r7   r8   __doc__r,   r3   r9   r$   r"   r;   r;   l   s    N 9= Or$   r;   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>._boomz   s    X
 	
r$   run)setattr
subprocess)monkeypatchrM   s     r"   _block_real_subprocessrR   x   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_      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_assertmsgrJ   _format_explanation)rc   @py_assert1@py_assert3@py_format5@py_format7s        r"   _git_ref_invariantru      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      sl   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NN4::b!:;<wNO(+A$%I788 &'  R	]O<"@@AByM?2K!LLAHr$   c                    | dz  }|j                   j                  dd       |.|j                  t        j                  |dd      dz   d       |S |j                  d	d       |S )
uI   tmp durable 4-tuple JSONL ledger (격리 — canonical ledger 무접촉).zcallback_4tuple_index.jsonlTrw   F)ensure_ascii	sort_keys
r   r   r   )parentr   r   r   r   )r   recordlps      r"   _ledgerr      sn    	,	,BIIOOD4O0
JJvETBTI 	 	
 I 	b7+Ir$   callback_typerz   c               6    t        | dd|dddddddd	id

      S )Ndev-simDISP45NORM45r/   	completedT)r}   reportfrozen_anchormatch)
rz   executordispatch_cron_idr   callback_cron_idcron_statustask_statusrequired_closeout_markerspreservation_anchors
dev_sunset)r   )rz   r   s     r"   _pass_inputr      s7    !#!26$"G-w7 r$   __fx__)r   inplisterremoverc               B   t        | |      }|dk(  r| d   n|}t        |dz  |      }|xs t        d      }	|xs t        | d         }
t	        |xs t        | d         |dz  |d   |d	   |d
   |d   |dz  ||
|	|d   |d   |d   | j                  d            }||	|
fS )Nr   durable_4tuple_recordledgerrC   live_cron_entriesrz   zack.jsonr|   r~   r   r   claimsr   r   r   callback_contract)r|   r~   r   r   	claim_dirledger_pathcron_listerr   r   r   r   r   )r   r   r;   r&   r   r   r   )r   r   r   r   r   r   r   recr   spylstress               r"   	_run_liver      s     	RA)/8);"$
%C	x	%B

*Z	*C

;N2&9#:;C
+){2i=)j#$%A#B-.m$%&'E%F.'()I'J-.+,&&!45C  S=r$   c                   t        d      }t        ||       \  }}}|j                  }|j                  }|t        k(  }|st        j                  d|fd|t        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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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}}
|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%}||k(  }|slt        j                  d|fd&||f      t        j                  |      t        j                  |      d!z  }d"d#|iz  }t        t        j                  |            d x}x}}y )'N3task-2553plus41.fallback-fired-after-normal-successra   zJ%(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.lookup
}.status
} == %(py6)sr   r	   re   rf   rg   rh   assert %(py8)spy8TiszN%(py2)s
{%(py2)s = %(py0)s.wired_via_operational_collector_wiring
} is %(py5)sre   rf   py5assert %(py7)spy7zv%(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.collector_result
}.classification
} == %(py8)s
{%(py8)s = %(py6)s.PASS
}r   re   rf   rg   rh   r   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8A0E088Er?   z-%(py2)s
{%(py2)s = %(py0)s.calls
} == %(py5)sr   r.   r   normal_success_unchangedz%(py1)s is %(py4)spy1rg   assert %(py6)srh   lookup_sourcedurable_4tuple_registryz%(py1)s == %(py4)s)r#   r   lookupr)   r	   ri   rj   rk   rl   rm   rn   rJ   rp   &wired_via_operational_collector_wiringcollector_resultclassificationr   PASSdurable_successseam_invokedcron_remove_invokedfallback_preservedr*   cancel_audit)tmp_pathr   r   r   r   rq   rr   @py_assert5rt   @py_format9@py_assert4@py_format6@py_format8@py_assert7@py_format11@py_assert0@py_assert2rs   s                     r"   1test_01_success_bound_verifier_pass_remove_calledr      s9   	B	CBb(+MCc::/:///////////3///3///:///////////////////55==5====5======3===3===5==========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*******99CZEBCC9CCCCC9CCCCCCC3CCC3CCC9CCCCCCCCCCC999>933967?4?74????74???7???4???????O,I0II,0IIIII,0IIII,III0IIIIIIIIr$   c                   t        d      }t        |d         }d |d<   d|d<   t        || |      \  }}}|j                  }|j                  }|t
        k(  }|st        j                  d|fd|t
        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
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}||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}}y )Nr   r   fallback_callback_cron_idTno_fallbackr   ra   r   r   r   r   r   r   Fr   r   r   r   r   r   r   r   r   remove_attemptedr   r   r   rh   r   )r#   r5   r   r   r)   r   ri   rj   rk   rl   rm   rn   rJ   rp   r   r   r   r*   r   )r   r   r   r   r   _rq   rr   r   rt   r   r   r   r   r   r   rs   s                    r"   ,test_02_fallback_missing_no_remove_preservedr     sS   	B	CB
r)*
+C'+C#$CB5KCa::8:8 88888 888888838883888:888888888 8888 88888888$u$u$$$$u$$$$$$3$$$3$$$$$$u$$$$$$$""+e+"e++++"e++++++3+++3+++"+++e+++++++!!)T)!T))))!T))))))3)))3)))!)))T)))))))999?9339./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???????r$   c                   t        d      }t        || d       \  }}}|j                  }|j                  }|t        k(  }|st        j                  d|fd|t        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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}
||
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   }|t        k(  }|st        j                  d|fd|t        f      t        j                  |      dt        j                         v st        j                  t              rt        j                  t              nddz  }dd|i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"                  }|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}}
y )"Nr   r   ra   r   r   r   r   r   r   Fr   r   r   r   r   r   r   Tr   lookup_statusz%(py1)s == %(py3)sr   py3assert %(py5)sr   )is not)z<%(py2)s
{%(py2)s = %(py0)s.collector_result
} is not %(py5)sr   r   r   r   r   r   z@%(py2)s
{%(py2)s = %(py0)s.normal_success_unchanged
} is %(py5)s)r#   r   r   r)   r   ri   rj   rk   rl   rm   rn   rJ   rp   r   r*   r   r   r   r   r   r   r   r   )r   r   r   r   r   rq   rr   r   rt   r   r   r   r   r   r   @py_format4r   r   s                     r"   #test_02b_no_ledger_record_no_remover    s   	B	CBB6KCa::7:7 77777 777777737773777:777777777 7777 77777777$u$u$$$$u$$$$$$3$$$3$$$$$$u$$$$$$$999?9339!!)T)!T))))!T))))))3)))3)))!)))T)))))))O,G,0GGGGG,0GGGG,GGGGGG0GGGG0GGGGGGGG +t+t++++t++++++3+++3++++++t+++++++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&&&&&&$&&&&&&&''/4/'4////'4//////3///3///'///4///////r$   c                   t        d      }t        |d         }d|d<   t        || |      \  }}}|j                  }|j                  }|t
        k(  }|st        j                  d|fd|t
        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	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   r   ztask-2553+UNRELATED-OTHERrz   r   ra   r   r   r   r   r   r   Fr   r   r   r   r   r   r   )r#   r5   r   r   r)   r   ri   rj   rk   rl   rm   rn   rJ   rp   r   r*   r   r   r   r   r   r   rq   rr   r   rt   r   r   r   r   s                 r"   "test_03_task_id_mismatch_no_remover  #  s   	B	CB
r)*
+C0C	NB5KCa::7:7 77777 777777737773777:777777777 7777 77777777""+e+"e++++"e++++++3+++3+++"+++e+++++++999?9339r$   c                N   t        d      }t        |d         }d|d<   t        || |      \  }}}|j                  }|j                  }|t
        k(  }|st        j                  d|fd|t
        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	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   }|t
        k(  }|st        j                  d|fd|t
        f      t        j                  |      d	t        j                         v st        j                  t
              rt        j                  t
              nd	dz  }dd|iz  }t        t        j                  |            d x}}y )Nr   r   
9999999999chat_idr   ra   r   r   r   r   r   r   Fr   r   r   r   r   r   r   r   r   r   r   r   )r#   r5   r   r   r)   r   ri   rj   rk   rl   rm   rn   rJ   rp   r   r*   r   )r   r   r   r   r   r   rq   rr   r   rt   r   r   r   r   r   r   r  s                    r"   "test_04_chat_id_mismatch_no_remover  /  s   	B	CB
r)*
+C!C	NB5KCa::4:4 44444 444444434443444:444444444 4444 44444444""+e+"e++++"e++++++3+++3+++"+++e+++++++999?9339O,D,0DDDDD,0DDDD,DDDDDD0DDDD0DDDDDDDDr$   c                   t        d      }t        |d         }d|d<   t        || |      \  }}}|j                  }|j                  }|t
        k(  }|st        j                  d|fd|t
        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	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   r   normalroler   ra   r   r   r   r   r   r   Fr   r   r   r   r   r   r   )r#   r5   r   r   r)   r   ri   rj   rk   rl   rm   rn   rJ   rp   r   r*   r  s                 r"   #test_05_role_not_fallback_no_remover  ;  s   	B	CB
r)*
+CCKB5KCa::4:4 44444 444444434443444:444444444 4444 44444444""+e+"e++++"e++++++3+++3+++"+++e+++++++999?9339r$   mutateztask-2553+OTHERr
  i  r  r  firedc                   t        d      }t        |d   d         }|j                  |       t        || t	        |g            \  }}}|j
                  }|j                  }|t        k(  }	|	st        j                  d|	fd|t        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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   r   r   )r   ra   r   r   r	   r   r   r   Tr   r   r   r   r   Fr   r   r   )r#   r5   updater   r&   r   r)   r	   ri   rj   rk   rl   rm   rn   rJ   rp   r   r   r*   )r   r  r   entryr   r   r   rq   rr   r   rt   r   r   r   r   s                  r"   )test_05b_live_verifier_mismatch_no_remover  F  s5    
B	CB'(+,E	LL
H^UG4KCa ::/:///////////3///3///:///////////////////#t#t####t######3###3######t#######""+e+"e++++"e++++++3+++3+++"+++e+++++++999?9339r$   zmutate,expect_clsr   r}   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}}|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   rz   )r   ra   )z\%(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.collector_result
}.classification
} == %(py6)sr   
expect_clsr   r   r   Fr   r   r   r   r   r   r   r   r   r   Tr   r   r   rh   )r#   r   itemsrO   r   r   r   ri   rj   rk   rl   rm   rn   rJ   rp   r   r   r   r*   r   )r   r  r  r   r   rL   vr   r   r   rq   rr   r   rt   r   r   r   r   r   r   rs   s                        r"   test_06_non_pass_no_remover  ^  s
    
B	CB
bm
$C 1QBc2KCa<..<.*<<<<.*<<<<<<3<<<3<<<<<<.<<<<<<*<<<*<<<<<<<'%'%''''%''''''3'''3''''''%'''''''$u$u$$$$u$$$$$$3$$$3$$$$$$u$$$$$$$""+e+"e++++"e++++++3+++3+++"+++e+++++++999?933967?4?74????74???7???4???????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&                  }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)rL   s    r"   rM   z/test_07_seam_exception_decoupled.<locals>._boom{  s    >**r$   run_operational_cancel_seamra   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re   rf   rg   r   assert %(py9)spy9r  r   r   r   Fr   r   r   r   r   r   r   rh   )r#   "utils.operational_collector_wiringoperational_collector_wiringrO   r   r   r   r   r   ri   rj   rk   rl   rm   rn   rJ   rp   closeout_candidater   r   r*   r   )r   rQ   r   wiringrM   r   r   r   rq   rr   r   r   r   r   @py_assert6r   @py_format10r   r   r   r   rs   rt   s                          r"    test_07_seam_exception_decoupledr)  w  s!   	B	CB7+  =uEB)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:::::::''/4/'4////'4//////3///3///'///4///////$u$u$$$$u$$$$$$3$$$3$$$$$$u$$$$$$$999?933967?4?74????74???7???4???????r$   c                @   t        t        d      | dz        \  }}}|j                  }t        |      }|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                  |      dz  }t        t        j                  |            d x}}t        t              }|j                  }|j                  }|j                  } |       } ||      }	|	sod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                  |      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}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%        j&                  |j                  t(               t        t        d      | dz  d       \  }}}|j                  }t        |      }|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                  |      dz  }t        t        j                  |            d x}}t%        j&                  |j                  t(               |j*                  j,                  j.                  }t%        j&                  |j0                  t2               y )Nr   rK   zNassert %(py5)s
{%(py5)s = %(py0)s(%(py3)s
{%(py3)s = %(py1)s.cancel_audit
})
}r   r1re   r   r   r   zassert %(py14)s
{%(py14)s = %(py5)s
{%(py5)s = %(py3)s
{%(py3)s = %(py0)s(%(py1)s)
}.issubset
}(%(py12)s
{%(py12)s = %(py10)s
{%(py10)s = %(py8)s
{%(py8)s = %(py6)s.cancel_audit
}.keys
}()
})
}setr   )	re   r   r   r   rh   r   r   py12py14zassert %(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   )re   r   r   r   r   r"  br   r2)r   r#   r   r   rk   rl   ri   rm   rn   rJ   rp   r-  r   issubsetkeyscancel_audit_pathr   rY   
jsonschemavalidateSCHEMA_AUDITwired_resultwiring_resultseam_outcomelive_verificationSCHEMA_VERIFIER)r   r+  r   r   r   r   r   @py_assert9@py_assert11@py_assert13@py_format15r'  @py_assert8r(  r1  sos                   r"   +test_08_cancel_audit_generated_schema_validrC    s@   AB3HB1  __-_-----------------R---R---_----------$%F%..FrF/C/CF/C/EF./EFFFFFFFF3FFF3FFFFFF$FFF$FFF%FFF.FFFFFFrFFFrFFFFFF/CFFF/EFFFFFFFFFFF$$.4$%.%,,.,........4...4............$...%...,..........6AB3HB1
  __-_-----------------R---R---_----------6		&	&	3	3B,,o>r$   c                R   t        d      t        | dz        t        | dz  d         | dz  | dz  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   sharedledr   zshared-ack.jsonr   c                    t        t        d   |       d   d   d   d   t        d         |d   d	   
      S )Nrz   r   r|   r~   r   r   r   r   r   )
r|   r~   r   r   r   r   r   r   r   r   )r   r   r&   )ctyper   ackclaimr   r   r   s     r"   _callz7test_09_duplicate_callback_no_regression.<locals>._call  sq    09U;'()E'F12-()*+I)J&r*='>?+,0, 12
 	
r$   rC   ra   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   NORMALr;   FALLBACK_STALEr   r   r   r   ri   rj   rk   rl   rm   rn   rJ   rp   r   DUPLICATE_CALLBACK_IGNOREDr   r*   )r   rK  rL  rN  rM  rq   rr   r   r   r   r   r   r   r   rI  rJ  r   r   r   s                 @@@@@r"   (test_09_duplicate_callback_no_regressionrR    s   	B	CBRH,-A	E!2&=#>	?B
&
&CxE
 
$ ,%%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                n   t        d      }|d   }t        || d       \  }}}|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}	}|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   reproduction_before_plus45r   expected_lookup_statusra   zJ%(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.lookup
}.status
} == %(py7)sr   r   r!  r"  expected_seam_invokedr   r   r   r   r   expected_cron_remove_invokedr   expected_fallback_preservedr   r   r   r#   r   r   r)   ri   rj   rk   rl   rm   rn   rJ   rp   r   r   r   r*   r   r   repror   r   r   rq   rr   r'  r   r   r(  r   r   s                 r"   test_10_plus41_reproductionr]    s   	B	CB+,EB6KCa::?:?&> ?? ????? ???????3???3???:?????? ????????=u%<==============3===3==============""Ke,J&KK"&KKKKK"&KKKKKKK3KKK3KKK"KKK&KKKKKKKK!!IU+H%II!%IIIII!%IIIIIII3III3III!III%IIIIIIII999?9339r$   c                p   t        d      }|d   }t        ||       \  }}}|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}	}|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&                  }|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}}|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}}y ) Nr   resolved_via_plus45rU  ra   rV  r   r   r!  r"  /expected_wired_via_operational_collector_wiringr   r   r   r   r   expected_durable_successr   rW  r   rX  r   rY  r   expected_seam_classificationz;%(py2)s
{%(py2)s = %(py0)s.seam_classification
} == %(py5)srB  r   Fr?   r   r   )r#   r   r   r)   ri   rj   rk   rl   rm   rn   rJ   rp   r   r   r   r   r   r8  r9  r:  seam_classificationr*   r   r   fixedr   r   r   rq   rr   r'  r   r   r(  r   r   rB  s                  r"   test_11_plus41_resolvedrg    sj   	B	CB$%EB)KCa::?:?&> ?? ????? ???????3???3???:?????? ????????22BC2C	D 2C     	   	   	3   D      C%(B"CC"CCCCC"CCCCCCC3CCC3CCCCCC"CCCCCCCC=u%<==============3===3==============""Ke,J&KK"&KKKKK"&KKKKKKK3KKK3KKK"KKK&KKKKKKKK!!IU+H%II!%IIIII!%IIIIIII3III3III!III%IIIIIIII				'	'	4	4B!!JU+I%JJ!%JJJJJ!%JJJJJJJ2JJJ2JJJ!JJJ%JJJJJJJJ99CZEBCC9CCCCC9CCCCCCC3CCC3CCC9CCCCCCCCCCCr$   c                n   t        d      }|d   }t        || d       \  }}}|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}	}|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 )N3task-2553plus39.fallback-fired-after-normal-successrT  r   rU  ra   rV  r   r   r!  r"  rW  r   r   r   r   r   rX  r   rY  r   r   r   rZ  r[  s                 r"   test_12_plus39_reproductionrj    s   	B	CB+,EB6KCa::?:?&> ?? ????? ???????3???3???:?????? ????????=u%<==============3===3==============""Ke,J&KK"&KKKKK"&KKKKKKK3KKK3KKK"KKK&KKKKKKKK!!IU+H%II!%IIIII!%IIIIIII3III3III!III%IIIIIIII999?9339r$   c                   t        d      }|d   }t        ||       \  }}}|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}	}|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$                  }|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}}|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                  }|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 ) Nri  r_  rU  ra   rV  r   r   r!  r"  ra  r   r   r   r   r   rW  r   rX  r   rY  r   rb  rc  rB  zFB39-DEADMANFr?   r   r   z/home/jay/workspace)zR%(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.lookup
}.canonical_root
} == %(py7)s)r#   r   r   r)   ri   rj   rk   rl   rm   rn   rJ   rp   r   r   r   r   r8  r9  r:  rd  r*   canonical_rootre  s                  r"   test_13_plus39_resolvedrm    s9   	B	CB$%EB)KCa::?:?&> ?? ????? ???????3???3???:?????? ????????C%(B"CC"CCCCC"CCCCCCC3CCC3CCCCCC"CCCCCCCC=u%<==============3===3==============""Ke,J&KK"&KKKKK"&KKKKKKK3KKK3KKK"KKK&KKKKKKKK!!IU+H%II!%IIIII!%IIIIIII3III3III!III%IIIIIIII				'	'	4	4B!!JU+I%JJ!%JJJJJ!%JJJJJJJ2JJJ2JJJ!JJJ%JJJJJJJJ99G^FGG9GGGGG9GGGGGGG3GGG3GGG9GGGGGGGGGGG::=:$$=(==$(=====$(=======3===3===:===$===(========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        || d	z  d 
      \  }}}|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   ra   r   r   r   rh   xr   r   rN  r   r   r   )r#   r   r*   ri   rj   rn   rJ   rp   rk   rl   rm   )r   r   r   r   r   cr   rr   r   rs   rt   rN  rq   r   r   r   s                   r"    test_14_no_unrelated_cron_removerq    s   	B	CBB)KCa"%)),QAiL,<,<,<<<<,<<<,<<<<<<<<<<2x#~d;JAtQ::::44: -s   Fc                   ddl m}m} t        d      }|d   } ||d   |d   |d   |d   	      } ||      }g }||k(  }|st	        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                  |      dz  }	dd|	iz  }
t        t	        j                  |
            d x}x}} |ddd d	      }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                  }|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 )Nr   )Callback4Tuplevalidate_4tupler   r   rz   r   normal_collector_cron_idr   )rz   r   ru  r   ra   )z0%(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py6)srt  r/   )re   r   r   rh   r   r   tDFc              3  $   K   | ]  }d |v  
 yw)z normal_collector_cron_id missingNr9   ).0rs     r"   	<genexpr>zBtest_15_plus32_mandatory_contract_no_regression.<locals>.<genexpr>(  s      45*a/s   z,assert %(py4)s
{%(py4)s = %(py0)s(%(py2)s)
}anyrd   NORM4100)z\%(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.lookup
}.normal_collector_cron_id
} == %(py7)sr   r   r!  r"  )%dispatch.executor_completion_contractrs  rt  r#   ri   rj   rk   rl   rm   rn   rJ   rp   r}  r   r   ru  )r   rs  rt  r   r   r/   r   r   r   rt   r   badrq   rr   rs   r   r   r'  r   r(  s                       r"   /test_15_plus32_mandatory_contract_no_regressionr    s,   
 
B	CB
$
%C	I/0!$%?!@"%&A"B	
B 2$"$"$$$$"$$$$$$?$$$?$$$$$$2$$$2$$$$$$"$$$$$$$
!%"%	C9H9M 3                         "h'ICA::<:..<*<.*<<<<.*<<<<<<3<<<3<<<:<<<.<<<*<<<<<<<r$   c                    dd l } | j                  d      }ddlm} t	        |      }|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                  |      dz  }t        t        j                  |            d }d}t        ||      }|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                  |      dz  }t        t        j                  |            d x}}y )Nr   z6tests.regression.test_collector_path_wiring_2553plus37).run_wired_normal_completion_callback_collectorz,assert %(py3)s
{%(py3)s = %(py0)s(%(py1)s)
}callabler  )re   r   r   7test_01_wired_success_bound_verifier_pass_remove_calledz5assert %(py5)s
{%(py5)s = %(py0)s(%(py1)s, %(py3)s)
}hasattrm37r,  )	importlibimport_module5utils.normal_completion_callback_collector_entrypointr  r  rk   rl   ri   rm   rn   rJ   rp   r  )r  r  r  r   r  r   r   s          r"   #test_16_plus37_wiring_no_regressionr  1  s   

!
!@C BCCCCCCCC8CCC8CCCCCCBCCCBCCCCCCCCCCQR73QRRRRRRRR7RRR7RRRRRR3RRR3RRRQRRRRRRRRRRr$   c                2   ddl m}m} ddlm}m}  |dddddd	d
dd	      }| dz  } ||      j                  |       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"                  }|t$        k(  }
|
st        j                  d|
fd|t$        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dz  }dd|iz  }t        t        j                   |            d 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}
}	 ||       }|j(                  d   } |       }t+        |      }||k(  }|s
t        j                  d|fd||f      t        j                  |      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}x}}|j                  } |       }t+        |      }||k(  }
|
sKt        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 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}
x}}y ))Nr   )rl  resolve_roots)Callback4TupleRegistrymake_recordztask-2553+45-compatrw  DCr   
6937032012NFBXfallback	COMPLETED)	rz   dispatch_idr   r   r
  ru  r   r  r)   zcompat.jsonl)rz   r   Tr   )z*%(py2)s
{%(py2)s = %(py0)s.ok
} is %(py5)slookr   r   r   ra   )z.%(py2)s
{%(py2)s = %(py0)s.status
} == %(py4)sr	   rd   r   rh   )z8%(py2)s
{%(py2)s = %(py0)s.fallback_cron_id
} == %(py5)s)autoset_cwd)zG%(py1)s == %(py8)s
{%(py8)s = %(py3)s(%(py6)s
{%(py6)s = %(py4)s()
})
}rD   rl  )r   r   rg   rh   r   r   r   )zk%(py2)s
{%(py2)s = %(py0)s.canonical_root
} == %(py9)s
{%(py9)s = %(py4)s(%(py7)s
{%(py7)s = %(py5)s()
})
}re   rf   rg   r   r   r"  assert %(py11)spy11)anu_v3.artifact_root_resolverrl  r  anu_v3.callback_4tuple_registryr  r  rB   r
   r/   ri   rj   rk   rl   rm   rn   rJ   rp   r)   r	   fallback_cron_idsearch_orderrD   )r   rl  r  r  r  r   r   r  rq   r   rr   r   r   rs   rt   rootsr   r   r   r   r   r   r'  rA  r(  @py_format12s                             r"   test_17_plus44_46_compatr  A  sE   K
 %!$"'
C 
N	"B2%%c*0%2D 77d7d?7d447d;;);/))));/))))))4)))4)));))))))/)))/)))))))  )E) E)))) E))))))4)))4))) )))E)))))))h/Ea 9(89C(8$99 $99999 $9999 999999C999C999999999999(8999$999999997n&67#&6"77"77777"777777747774777777777#777#777777n777n777&6777"77777777r$   c           	     V   t        t        d      |       \  }}}t        j                  |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 }dD ]  }t        dz  |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 } t!               }	t        j                  }
d} |
|	|      }t
        |v}|sWt        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                  |      dz  }dd|iz  }t        t        j                  |            d x}x}
x}}y )Nr   F)r   )not in)z%(py0)s not in %(py2)sANU_KEY_SECRETblob)re   rf   zassert %(py4)srg   ) cancel_on_success_live_wiring.pyzoperational_collector_wiring.pyzcancel_audit_writer.pyanu_v3r   r   src)ze%(py0)s not in %(py9)s
{%(py9)s = %(py4)s
{%(py4)s = %(py2)s.dumps
}(%(py5)s, ensure_ascii=%(py7)s)
}r   contractr  r  r  )r   r#   r   r   r   r  ri   rj   rk   rl   rm   rn   rJ   rp   rU   r    r   )r   r   r   r  rq   @py_format3rs   modr  r  rr   r'  rA  r(  r  s                  r"   test_18_no_credential_exposurer  b  s   ABHICA ::c&&U;D%%%%>%%%%%%>%%%>%%%%%%%%%%%%%%%% )
 8#c)44g4FS((((~S((((((~(((~((((((S(((S((((((() $%H!%I5IH5!II>!IIIII>!IIIIIII>III>IIIIIIIIIIIIIIIIIIHIIIHIII5III!IIIIIIIIr$   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"        u }|st        j$                  d
|fd|t"        f      dt        j                         v st        j                  t               rt        j                  t               ndt        j                  |      dt        j                         v st        j                  t"              rt        j                  t"              ndd	z  }	dd|	iz  }
t        t        j                  |
            d x}}t'               }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   }|t(        k(  }|st        j$                  d|fd|t(        f      t        j                  |      dt        j                         v st        j                  t(              rt        j                  t(              nddz  }dd|iz  }t        t        j                  |            d x}}y c c}w )Nr   r  r  r   r   c              3  0   K   | ]  }d |v xs d|v   yw)
checkpoint	reconcileNr9   )rz  ms     r"   r|  z:test_19_registry_checkpoint_not_primary.<locals>.<genexpr>  s'      23-[A--s   z0assert not %(py4)s
{%(py4)s = %(py0)s(%(py2)s)
}r}  rd   r   )z)%(py2)s
{%(py2)s = %(py0)s()
} is %(py4)sr   r   r   rh   zrecovery layer onlyprimary_path)in)z%(py1)s in %(py4)sr   live_collector_entrypointra   r   r   r   r   r   )astrU   r    parsewalk
isinstance
ImportFrommoduler}  rk   rl   ri   rm   rn   rJ   rp   r   r   rj   r   r   )r  r  treenmodulesrq   rr   r   r   rs   rt   rp  r   r   r  s                  r"   'test_19_registry_checkpoint_not_primaryr  t  sk    	HAAii!  99S>D $a(QXX 	
G 7> s                            -.S.2SSSSS.2SSSSSSS,SSS,SSS.SSSSSS2SSSS2SSSSSSSSA 5An$55 $55555 $5555 555$55555555()F)-FFFFF)-FFFF)FFFFFF-FFFF-FFFFFFFFs   5M9c                (
   t        d      }t        || t        d            \  }}}|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   }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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}||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}}y )Nr   failed)r   ra   r   r   r   r   r   r   Tr   r   r   r   r   r  r   r   r   r   rh   r   Fr?   r   r   r   )r#   r   r;   r   r   r   r   ri   rj   rk   rl   rm   rn   rJ   rp   r   r   r   r*   r   )r   r   r   r   r   rq   rr   r   r   r   r   r   r   r   r   r   rs   rt   s                     r"   -test_20_success_decoupled_from_cancel_failurer    s   	B	CB
Hj2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&$&$&&&&$&&&&&&3&&&3&&&&&&$&&&&&&&''/4/'4////'4//////3///3///'///4///////67?4?74????74???7???4???????99CZEBCC9CCCCC9CCCCCCC3CCC3CCC9CCCCCCCCCCC!!)T)!T))))!T))))))3)))3)))!)))T)))))))r$   __main__z-q)r!   rD   r4   r5   )r   r5   r   r   r4   r5   )r   r   r   zdict | Noner4   r   )rz   rD   )\rF   
__future__r   builtinsrk   _pytest.assertion.rewrite	assertionrewriteri   r   rP   syspathlibr   r5  pytest__file__resolver   rU   rD   pathremoveinsert$anu_v3.cancel_on_success_live_wiringr   r   r   r   r	   r
   r   #anu_v3.operational_collector_wiringr   r   r   anu_v3.cancel_audit_writerr   r   (utils.anu_delegation_completion_callbackr   r   r   )utils.completion_callback_fallback_cancelr   r   r   r    r7  r<  r  r#   r&   r;   fixturerR   r_   ru   r   r   rO  r   r   r   r   r  r  r  r  markparametrizer  RESULT_MISSINGHOLD_FOR_CHAIRr  r)  rC  rR  r]  rg  rj  rm  rq  r  r  r  r  r  r  r6   
SystemExitmainr9   r$   r"   <module>r     s  @ #     
   N""$++2299	y>SXXHHOOC	N# 3y> "   
 
 D	X	
	*tzzBBMM N 
 $**I IIii!
 $M
 
"	O 	O 2 2#" R R. 0</B/B & DJ$@ 0"E 	%&	D		$	  )=%*@A))	
 	 = =>	@	@@&?0$P	D&>"=>S 8BJ$G0* z
[V[[(D!12
33 r$   