
    
ji                       d Z ddl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jP                  edz  dz  jS                  d            Z* ejP                  edz  dz  jS                  d            Z+dZ,dHdZ- G d d      Z. G d d      Z/ e	j`                  d      d        Z1d Z2 e	j`                  d      d        Z3dIdZ4dJdZ5e#jl                  ddKd Z7d!dddd"d#Z8d$ Z9d% Z:d& Z;d' Z<d( Z=d) Z>e	j~                  j                  d*dd+id,d-id.d/id0dig      d1        ZAe	j~                  j                  d2d3d4d5iie$j                  fd6die$j                  fg      d7        ZDd8 ZEd9 ZFd: ZGd; ZHd< ZId= ZJd> ZKd? ZLd@ ZMdA ZNdB ZOdC ZPdD ZQdE ZReSdFk(  r eT 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               #  P   K   t               } d  t               | k(  sJ d       y w)Nu.   git HEAD/branch/ref 변경 감지 (§5 위반))r_   )befores    r"   _git_ref_invariantrb      s&     ZF	:Q!QQs   $&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.jsonlTrd   F)ensure_ascii	sort_keys
r   r   rm   )parentrt   ru   r   rv   )ry   recordlps      r"   _ledgerr      sn    	,	,BIIOOD4O0
JJvETBTI 	 	
 I 	b7+Ir$   callback_typerg   c               6    t        | dd|dddddddd	id

      S )Ndev-simDISP45NORM45r/   	completedT)rj   reportfrozen_anchormatch)
rg   executordispatch_cron_idr   callback_cron_idcron_statustask_statusrequired_closeout_markerspreservation_anchors
dev_sunset)r   )rg   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_entriesrg   zack.jsonri   rk   rn   rp   claimsrq   rr   rs   callback_contract)ri   rk   rn   rp   	claim_dirledger_pathcron_listerr   rq   rr   rs   r   )r   r   r;   r&   r   r   rw   )rx   ry   r   r   r   r   rz   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(  sJ |j
                  du sJ |j                  j                  t        j                  k(  sJ |j                  du sJ |j                  du sJ |j                  du sJ |j                  du sJ |j                  dddgk(  sJ |j                  dk(  sJ |j                  d   du sJ |j                  d   d	k(  sJ y )
N3task-2553plus41.fallback-fired-after-normal-successTF8A0E088Er?   r.   normal_success_unchangedlookup_sourcedurable_4tuple_registry)r#   r   lookupr)   r	   &wired_via_operational_collector_wiringcollector_resultclassificationr   PASSdurable_successseam_invokedcron_remove_invokedfallback_preservedr*   cancel_audit)tmp_pathrx   r   r   r   s        r"   1test_01_success_bound_verifier_pass_remove_calledr      s   	B	CBb(+MCc::///55===...2E2EEEE$&&&t###""d***!!U***99ZEBCCCC99>>674???O,0IIIIr$   c                z   t        d      }t        |d         }d |d<   d|d<   t        || |      \  }}}|j                  j                  t
        k(  sJ |j                  du sJ |j                  du sJ |j                  du sJ |j                  g k(  sJ |j                  d   du sJ |j                  d	   du sJ y )
Nr   r   fallback_callback_cron_idTno_fallbackr   Fremove_attemptedr   )r#   r5   r   r   r)   r   r   r   r   r*   r   r   rx   r   r   r   _s         r"   ,test_02_fallback_missing_no_remove_preservedr     s    	B	CB
r)*
+C'+C#$CB5KCa:: 8888u$$$""e+++!!T)))99??./5888674???r$   c                   t        d      }t        || d       \  }}}|j                  j                  t        k(  sJ |j
                  du sJ |j                  g k(  sJ |j                  du sJ |j                  d   t        k(  sJ y )Nr   r   FTlookup_status)	r#   r   r   r)   r   r   r*   r   r   r   rx   r   r   r   s        r"   #test_02b_no_ledger_record_no_remover     s    	B	CBB6KCa:: 7777u$$$99??!!T)))O,0GGGGr$   c                    t        d      }t        |d         }d|d<   t        || |      \  }}}|j                  j                  t
        k(  sJ |j                  du sJ |j                  g k(  sJ y )Nr   r   ztask-2553+UNRELATED-OTHERrg   r   F)r#   r5   r   r   r)   r   r   r*   r   s         r"   "test_03_task_id_mismatch_no_remover     sw    	B	CB
r)*
+C0C	NB5KCa:: 7777""e+++99??r$   c                   t        d      }t        |d         }d|d<   t        || |      \  }}}|j                  j                  t
        k(  sJ |j                  du sJ |j                  g k(  sJ |j                  d   t
        k(  sJ y )Nr   r   
9999999999chat_idr   Fr   )	r#   r5   r   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""e+++99??O,0DDDDr$   c                    t        d      }t        |d         }d|d<   t        || |      \  }}}|j                  j                  t
        k(  sJ |j                  du sJ |j                  g k(  sJ y )Nr   r   normalroler   F)r#   r5   r   r   r)   r   r   r*   r   s         r"   #test_05_role_not_fallback_no_remover   5  sw    	B	CB
r)*
+CCKB5KCa:: 4444""e+++99??r$   mutateztask-2553+OTHERr   i  r   r   firedc                6   t        d      }t        |d   d         }|j                  |       t        || t	        |g            \  }}}|j
                  j                  t        k(  sJ |j                  du sJ |j                  du sJ |j                  g k(  sJ y )Nr   r   r   )r   TF)r#   r5   updater   r&   r   r)   r	   r   r   r*   )r   r   rx   entryr   r   r   s          r"   )test_05b_live_verifier_mismatch_no_remover   @  s     
B	CB'(+,E	LL
H^UG4KCa ::///t###""e+++99??r$   zmutate,expect_clsr   rj   Fchair_gatedc                   t        d      }t        |d         }|j                         D ]  \  }}t        |||        t	        || |      \  }}}	|j
                  j                  |k(  sJ |j                  du sJ |j                  du sJ |j                  du sJ |j                  g k(  sJ |j                  d   du sJ y )Nr   rg   )r   Fr   T)r#   r   itemsrO   r   r   r   r   r   r   r*   r   )
r   r   
expect_clsrx   r   rL   vr   r   r   s
             r"   test_06_non_pass_no_remover   X  s     
B	CB
bm
$C 1QBc2KCa..*<<<%'''u$$$""e+++99??674???r$   c                   t        d      }dd lm} d }|j                  |d|       t	        ||       \  }}}|j
                  j                  t        j                  k(  sJ |j
                  j                  du sJ |j                  du sJ |j                  du sJ |j                  g k(  sJ |j                  d   du sJ y )Nr   r   c                     t        d      )Nzseam blew up)RuntimeError)rL   s    r"   rM   z/test_07_seam_exception_decoupled.<locals>._boomu  s    >**r$   run_operational_cancel_seamTFr   )r#   "utils.operational_collector_wiringoperational_collector_wiringrO   r   r   r   r   r   closeout_candidater   r   r*   r   )r   rQ   rx   wiringrM   r   r   r   s           r"    test_07_seam_exception_decoupledr   q  s    	B	CB7+  =uEB)KCa...2E2EEEE22d:::''4///u$$$99??674???r$   c                   t        t        d      | dz        \  }}}t        |j                        sJ t	        t
              j                  |j                  j                               sJ t        |j                        j                         sJ t        j                  |j                  t               t        t        d      | dz  d       \  }}}t        |j                        sJ t        j                  |j                  t               |j                  j                  j                   }t        j                  |j"                  t$               y )Nr   rK   br   )r   r#   r   r   setr   issubsetkeysr   cancel_audit_pathrY   
jsonschemavalidateSCHEMA_AUDITwired_resultwiring_resultseam_outcomelive_verificationSCHEMA_VERIFIER)r   r1r   r2sos        r"   +test_08_cancel_audit_generated_schema_validr     s   AB3HB1 R__---$%..r/C/C/EFFF$$%,,...6AB3HB1
 R__---6		&	&	3	3B,,o>r$   c                6  	 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J |j                  d	u sJ |j                  j                  t        j                  k(  sJ |j                  d
u sJ |j                  d
u sJ |j                  g k(  sJ y )Nr   sharedledr   zshared-ack.jsonr   c                    t        t        d   |       d   d   d   d   t        d         |d   d	   
      S )Nrg   r   ri   rk   rn   rp   r   rq   rr   )
ri   rk   rn   rp   r   r   r   r   rq   rr   )r   r   r&   )ctyper   ackclaimrx   r   rz   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   TF)r#   r   r   r   NORMALr;   FALLBACK_STALEr   r   r   r   r   DUPLICATE_CALLBACK_IGNOREDr   r*   )
r   r  firstspy2secondr  r  rx   r   rz   s
        @@@@@r"   (test_09_duplicate_callback_no_regressionr
    s!   	B	CBRH,-A	E!2&=#>	?B
&
&CxE
 
$ ,%%z)'<=Ei D<..5F!!00N4G4GGGG%%%..44	5	5 !!U***%'''::r$   c                   t        d      }|d   }t        || d       \  }}}|j                  j                  |d   k(  sJ |j                  |d   u sJ |j
                  |d   u sJ |j                  |d   u sJ |j                  g k(  sJ y )Nr   reproduction_before_plus45r   expected_lookup_statusexpected_seam_invokedexpected_cron_remove_invokedexpected_fallback_preservedr#   r   r   r)   r   r   r   r*   r   rx   repror   r   r   s         r"   test_10_plus41_reproductionr    s    	B	CB+,EB6KCa::&> ????u%<====""e,J&KKKK!!U+H%IIII99??r$   c                   t        d      }|d   }t        ||       \  }}}|j                  j                  |d   k(  sJ |j                  |d   u sJ |j
                  |d   u sJ |j                  |d   u sJ |j                  |d   u sJ |j                  |d   u sJ |j                  j                  j                  }|j                  |d	   k(  sJ |j                  d
ddgk(  sJ y )Nr   resolved_via_plus45r  /expected_wired_via_operational_collector_wiringexpected_durable_successr  r  r  expected_seam_classificationr   Fr?   )r#   r   r   r)   r   r   r   r   r   r   r   r   seam_classificationr*   r   rx   fixedr   r   r   r   s          r"   test_11_plus41_resolvedr    s    	B	CB$%EB)KCa::&> ????22BC	D	D %(B"CCCCu%<====""e,J&KKKK!!U+H%IIII				'	'	4	4B!!U+I%JJJJ99ZEBCCCCr$   c                   t        d      }|d   }t        || d       \  }}}|j                  j                  |d   k(  sJ |j                  |d   u sJ |j
                  |d   u sJ |j                  |d   u sJ |j                  g k(  sJ y )N3task-2553plus39.fallback-fired-after-normal-successr  r   r  r  r  r  r  r  s         r"   test_12_plus39_reproductionr     s    	B	CB+,EB6KCa::&> ????u%<====""e,J&KKKK!!U+H%IIII99??r$   c                   t        d      }|d   }t        ||       \  }}}|j                  j                  |d   k(  sJ |j                  |d   u sJ |j
                  |d   u sJ |j                  |d   u sJ |j                  |d   u sJ |j                  j                  j                  }|j                  |d   k(  sJ |j                  d	d
dgk(  sJ |j                  j                  dk(  sJ y )Nr  r  r  r  r  r  r  r  zFB39-DEADMANFr?   z/home/jay/workspace)r#   r   r   r)   r   r   r   r   r   r   r   r  r*   canonical_rootr  s          r"   test_13_plus39_resolvedr#    s   	B	CB$%EB)KCa::&> ????%(B"CCCCu%<====""e,J&KKKK!!U+H%IIII				'	'	4	4B!!U+I%JJJJ99^FGGGG::$$(====r$   c                    t        d      }t        ||       \  }}}|j                  D cg c]  }|d   	 c}dgk(  sJ t        || dz  d       \  }}}|j                  g k(  sJ y c c}w )Nr   r@   r   xr   )r#   r   r*   )r   rx   r   r   r   cr  s          r"    test_14_no_unrelated_cron_remover'    sq    	B	CBB)KCa"%)),QAiL,<<<2x#~d;JAtQ:: -s   A&c                    ddl m}m} t        d      }|d   } ||d   |d   |d   |d   	      } ||      g k(  sJ  |d
dd d	      }t	        d  ||      D              sJ t        ||       \  }}}|j                  j                  dk(  sJ y )Nr   )Callback4Tuplevalidate_4tupler   r   rg   r   normal_collector_cron_idr   )rg   r   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   NORM4100)%dispatch.executor_completion_contractr)  r*  r#   anyr   r   r+  )	r   r)  r*  rx   r   r/   badr   r   s	            r"   /test_15_plus32_mandatory_contract_no_regressionr7    s    
 
B	CB
$
%C	I/0!$%?!@"%&A"B	
B 2"$$$
!%"%	C  9H9M    "h'ICA::..*<<<r$   c                 p    dd l } | j                  d      }ddlm} t	        |      sJ t        |d      sJ y )Nr   z6tests.regression.test_collector_path_wiring_2553plus37).run_wired_normal_completion_callback_collector7test_01_wired_success_bound_verifier_pass_remove_called)	importlibimport_module5utils.normal_completion_callback_collector_entrypointr9  callablehasattr)r;  m37r9  s      r"   #test_16_plus37_wiring_no_regressionrA  +  s?    

!
!@C BCCC3QRRRr$   c                   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 sJ |j                  t        k(  sJ |j                  d
k(  sJ  ||       }|j                  d   t         |             k(  sJ |j                  t         |             k(  sJ y )Nr   )r"  resolve_roots)Callback4TupleRegistrymake_recordztask-2553+45-compatr-  DCr   
6937032012NFBXfallback	COMPLETED)	rg   dispatch_idr   r   r   r+  r   r   r)   zcompat.jsonl)rg   r   T)autoset_cwd)anu_v3.artifact_root_resolverr"  rC  anu_v3.callback_4tuple_registryrD  rE  rB   r
   r/   r)   r	   fallback_cron_idsearch_orderrD   )	r   r"  rC  rD  rE  r   r   lookrootss	            r"   test_17_plus44_46_compatrT  ;  s    K
 %!$"'
C 
N	"B2%%c*0%2D 77d??;;/)))  E)))h/Ea C(8$9999#n&6"7777r$   c                8   t        t        d      |       \  }}}t        j                  |j                  d      }t
        |vsJ dD ](  }t        dz  |z  j                  d      }t
        |vr(J  t               }t
        t        j                  |d      vsJ y )Nr   F)r   ) cancel_on_success_live_wiring.pyzoperational_collector_wiring.pyzcancel_audit_writer.pyanu_v3r   r   )	r   r#   r   rv   r   ANU_KEY_SECRETrU   r    r   )r   r   r   blobmodsrccontracts          r"   test_18_no_credential_exposurer]  \  s    ABHICA ::c&&U;D%%% )
 8#c)44g4FS((() $%HH5!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 }}t        d |D              rJ t               t        u sJ t               }d|d   v sJ |d	   t        k(  sJ y c c}w )
Nr   rW  rV  r   r   c              3  0   K   | ]  }d |v xs d|v   yw)
checkpoint	reconcileNr9   )r0  ms     r"   r2  z:test_19_registry_checkpoint_not_primary.<locals>.<genexpr>{  s'      23-[A--s   zrecovery layer onlyprimary_pathlive_collector_entrypoint)astrU   r    parsewalk
isinstance
ImportFrommoduler5  r   r   r   r   )re  r[  treenmodulesr&  s         r"   'test_19_registry_checkpoint_not_primaryrn  n  s     	HAAii!  99S>D $a(QXX 	
G   7>    -.2SSSSA An$5555()-FFFFs   5Cc                R   t        d      }t        || t        d            \  }}}|j                  j                  t
        j                  k(  sJ |j                  du sJ |j                  du sJ |j                  d   du sJ |j                  dddgk(  sJ |j                  du sJ y )	Nr   failed)r   Tr   r   Fr?   )r#   r   r;   r   r   r   r   r   r   r   r*   r   r   s        r"   -test_20_success_decoupled_from_cancel_failurerq    s    	B	CB
Hj2KCa ...2E2EEEE$&&&''4///674???99ZEBCCCC!!T)))r$   __main__z-q)r!   rD   r4   r5   )rx   r5   ry   r   r4   r5   )ry   r   r   zdict | Noner4   r   )rg   rD   )VrF   
__future__r   r   rP   syspathlibr   r   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    r   r   rX  r#   r&   r;   fixturerR   r_   rb   r   r   r  r   r   r   r   r   r   r   r   markparametrizer   RESULT_MISSINGHOLD_FOR_CHAIRr   r   r   r
  r  r  r   r#  r'  r7  rA  rT  r]  rn  rq  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$@ HE 	%&	D		$	  )=%*@A))	
 	 = =>	@	@@&?0$P	D&>"=>S 8BJ$G0* z
[V[[(D!12
33 r$   