
    jq                       d dl mZ d dlZd dlmc mZ d dlZd dl	Z
d dlZd dlZd dlZd dlZd dlmZ d dlmZ d dlmZ d dlZ ee      j.                  Ze
j2                  j5                  dedz        Zg ZeZerej<                  ZeZesdd	d
 ej@                         v s ejB                  e      r ejD                  e      nd
iz  Z#ejI                  e#       er`dd
 ej@                         v s ejB                  e      r ejD                  e      nd
 ejD                  e      dz  Z%ejI                  e%        ejL                  ed       i z  Z'dde'iz  Z( e) ejT                  e(            dxZxZZe
j2                  jW                  e      Z,e,ejZ                  ej\                  <   ej<                  j_                  e,       ddddAdZ0ddd	 	 	 	 	 	 	 	 	 dBdZ1dCdZ2dd	 	 	 	 	 	 	 	 	 	 	 dDdZ3	 	 	 	 	 	 dEdZ4dFdZ5dFdZ6dFdZ7dGdZ8	 	 dGdZ9dGd Z:dGd!Z;dGd"Z<dGd#Z=dGd$Z>ej~                  j                  d%g d&      dHd'       ZA	 	 dGd(ZBdGd)ZCdGd*ZDdGd+ZEdGd,ZFdGd-ZG	 	 dGd.ZHdId/ZIdJd0ZJ	 	 dGd1ZKej~                  j                  d2d3      	 	 	 	 	 	 dKd4       ZLdGd5ZMdLd6ZNdGd7ZOdGd8ZPdGd9ZQdGd:ZRdMd;ZSdGd<ZTdGd=ZUej~                  j                  d>d?      	 	 	 	 dNd@       ZVy)O    )annotationsN)date)Path)Anycontinuous_v6_currentzcontinuous_lifecycle.pyz%(py2)spy2SPECz#%(py6)s
{%(py6)s = %(py4)s.loader
})py4py6assert %(py9)spy9Tlegacyinclude_schedulec                    i ddddddddd	| rt         j                  nd
d| rdnt         j                  dddd dd ddg dddg dddg dddg dddg dddg dddg dddddddd}|rd |d!<   |S )"Ndate_of_birthz
1996-08-01equation_sex_basismale	height_cm180	weight_kg80activity_categorymoderateactivity_rationale   주 3회 근력운동	goal_typemaintaintarget_weight_kgtarget_date	allergiesnone)statusitemsintolerancesreligious_ethical_exclusionsdisliked_foodsdietary_preferences
conditionsmedicationspregnancy_breastfeedingFu   기본 조리 가능   보통   )eating_disorder_riskcooking_accessbudget_band
meal_count   없음schedule_constraints)mLEGACY_ACTIVITYDETAILED_RATIONALE)r   r   values      /home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-continuous-lifecycle-observer-v6.4-4a6c7ee5/test_continuous_lifecycle.pyanswersr9      s1     f  	U  	T	 
 	&Q..j  	5QEYEY  	Z  	D  	t  	4  	6B7  	'6B(G  	Vb9  	&2>  	"5   	&26! " 	"5# $ !&0+ E. (0$%L    resolvedF)statecanonical_summaryc          
         g }|dk(  s|rddddg}d|t         j                  |       |rt         j                  |       ndg g g g |d||d	}t         j                  |      |d
<   |S )N
clarifyingr   	ambiguityu+   평소 활동량은 어느 정도인가요?)fieldkindquestion_ko!nutrition_input_reconciliation_v1u"   수정 전 활동 요약입니다.)
summary_kofacts_koambiguities_kocontradictions_kosafety_observations_koclarifications)schema_versionr<   answers_digestadvisoryrJ   current_indexdigest)r4   canonical_digestauthoritative_summary)r7   rN   r<   r=   rJ   records         r8   reconciliationrS   6   s     /1N -#L
 >,,U3 % ''.9 !#&(,
 )&#!F& ))&1F8Mr:   c                    t               } dt        j                  |       dd}t        j                  ddd|d}dd	t        j                  t        j                  t        j
                  d
dt        j                  t        j                  dgdt        j
                  t        j
                  ddd dd| t        | d      dgd|i |dt        j                  dgdgg d g g i i g dS )Ncustomer_attestation@3230cb1a3c13f8e164c2171148c6e3183cbce0d36289cc647c10634b840d8060r<   rL   body_digest   	COMMITTED   
session_id
generationr<   
message_idpayloadAWAITING_ACTIVATION   )r<   r^   r]   sid_hashowner_idF0)enabledrouteuser_idchat_idtopic_id      rN      r<   cursorr9   rS   consumed_updatescustomerrolerg   )	bootstraprs   ownerbaselineworkflowpublicationoutboxowner_callbackswizardgenerationscardsdrafts
deliveries
activation)r9   r4   rP   SESSIONSIDOWNERCUSTOMERrS   )r7   r`   rz   s      r8   baser   ]   s    IE',,U3YG iiK +))
 !&QZZ0MNWWcJ+,U!D!$
 #RkR:S@QRS5 r:   rs   ru   c                   t         j                  |d||d}|| d<   |dk(  rt         j                  dgnt         j                  dg}| d   j	                  i |||d       y )NrZ   r\   rz   rs   re   r{   rt   )r4   r   r   r   append)snapshotr^   r_   r`   ru   rz   rg   s          r8   publishr      si     ii  K *H]!%!3QZZ!''3EXKKdUKLr:   c               4   | d   d   }t         j                  | d   ||      }d }||u}|st        j                  d|fd||f      dt	        j
                         v st        j                  |      rt        j                  |      ndt        j                  |      dz  }dd|iz  }t        t        j                  |            d x}}d	t         j                  |      t         j                  j                  |j                               j                         d
S )Nry   r9   is notz%(py0)s is not %(py3)stextpy0py3assert %(py5)spy5rU   rW   )r4   candidate_attestation_text
@pytest_ar_call_reprcompare@py_builtinslocals_should_repr_global_name	_safereprAssertionError_format_explanationrP   hashlibsha256encode	hexdigest)r   rN   r7   r   @py_assert2@py_assert1@py_format4@py_format6s           r8   candidate_payloadr      s     Z +E''(<e]SD4t4t44t',,U3yy''6@@B r:   c           	     6    t        | ddt        | d             y )N      rm   rn   )r   r   r   s    r8   startupr      s    Hb#0KLr:   c           	     V    ddt        dd      ddgd| d<   t        | d	d
dddd       y )N
collecting   Fr   ro   ,  )r<   rq   r9   rr   ry         @cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc	broadcast)r<   rX   force_reply_mode)r9   r   r   s    r8   normalized_rewindr      sF    %%@ #J	HZ 
!# +	
		r:   c           	         t        d      }dd|t        |dd      g dd	| d
<   t        | ddt        | d             y )NFr   rU   rl   r   T)rN   r=   )ro   r   -  rp   ry         rn   )r9   rS   r   r   )r   r7   s     r8   canonical_attestationr      sM    5!E'(d
 ,HZ Hb#0KLr:   c                    t         j                  } d}| |k(  }|st        j                  d|fd| |f      dt	        j
                         v st        j                  t               rt        j                  t               ndt        j                  |       t        j                  |      dz  }dd|iz  }t        t        j                  |            d x} x}}t         j                  } d}| |k(  }|st        j                  d|fd	| |f      dt	        j
                         v st        j                  t               rt        j                  t               ndt        j                  |       t        j                  |      dz  }dd|iz  }t        t        j                  |            d x} x}}t         j                  } d
}| |k(  }|st        j                  d|fd| |f      dt	        j
                         v st        j                  t               rt        j                  t               ndt        j                  |       t        j                  |      dz  }dd|iz  }t        t        j                  |            d x} x}}y )N@4a6c7ee54cf9526a30de8bb576c1d71b411938beba33a04914738f6e1b6ed1cb==z1%(py2)s
{%(py2)s = %(py0)s.SUCCESSOR
} == %(py5)sr4   r   r   r   assert %(py7)spy7@3374be765c7e53fc431b0c6e48cacbacb09618f77f13ef87016cb0ad2575d060z,%(py2)s
{%(py2)s = %(py0)s.CORE
} == %(py5)s@9d22e89a0b1a14d4eb7f1c2005fc01860bec5f3b4eda6e01bb1390542a90b875)z-%(py2)s
{%(py2)s = %(py0)s.WHEEL
} == %(py5)s)r4   	SUCCESSORr   r   r   r   r   r   r   r   COREWHEEL)r   @py_assert4@py_assert3r   @py_format8s        r8   test_final_candidate_bindingsr      s   	MM	N M     	
   	
   	   N      66WWW6WWWWW6WWWWWWW1WWW1WWW6WWWWWWWWWWW77XXX7XXXXX7XXXXXXX1XXX1XXX7XXXXXXXXXXXr:   c            	     R   dt         j                  z  } t        j                  t        j
                  d| gdddd      }t        j                  }|j                  } ||      }dt         j                  gdd}||k(  }|st        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t        j                  |      t        j                  |      t        j                  |      dz  }dd|iz  }t!        t        j"                  |            d x}x}x}x}}y )Na  
import json
from types import SimpleNamespace
from gateway.platforms.telegram_nutrition_onboarding_copy import parse_legacy_activity_answer
from gateway.platforms.telegram_nutrition_onboarding_runtime_publication_transport import publication_generation
legacy = %r
parsed = parse_legacy_activity_answer(legacy)
status = SimpleNamespace(answer_count=22, state=SimpleNamespace(value='customer_attestation'))
current = SimpleNamespace(generation=24, payload={'body_digest': 'old'})
generation = publication_generation(status, current=current, payload={'body_digest': 'candidate-changed'})
print(json.dumps({'parsed': parsed, 'generation': generation}, ensure_ascii=False))
z-cz(/home/cube/projects/richard/hermes-agentT)cwdcheckcapture_outputr   r   r   )parsedr^   r   )zh%(py7)s
{%(py7)s = %(py2)s
{%(py2)s = %(py0)s.loads
}(%(py5)s
{%(py5)s = %(py3)s.stdout
})
} == %(py10)sjsonresultr   r   r   r   r   py10assert %(py12)spy12)r4   r5   
subprocessrunsys
executabler   loadsstdoutr6   r   r   r   r   r   r   r   r   )	coder   r   r   @py_assert6@py_assert9@py_assert8@py_format11@py_format13s	            r8   Jtest_product_runtime_recovers_exact_legacy_activity_and_startup_generationr      s   	 

	 	 ^^	t$6F :: fmm :m$ q334) $ )    $ )                            $    %   )       r:   c                    t         j                  t                     } | 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 }||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
}||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 )NWAIT_DEPLOYr   z.%(py2)s
{%(py2)s = %(py0)s.status
} == %(py5)spromptr   r   r   isz2%(py2)s
{%(py2)s = %(py0)s.message_id
} is %(py5)szdeploy-final-candidatez.%(py2)s
{%(py2)s = %(py0)s.action
} == %(py5)s)r4   classifyr   r#   r   r   r   r   r   r   r   r   r_   action)r   r   r   r   r   r   s         r8   1test_current_inactive_authority_emits_wait_deployr      sb   ZZF==)M)=M))))=M))))))6)))6)))=)))M)))))))$$$$$$$$$$$$6$$$6$$$$$$$$$$$$$==444=44444=444444464446444=44444444444r:   c            
     4	   t               } t        |        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                  |      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                  }t        j                  }d
}d}	 |||	      }
||
k(  }|s2t        j                  d|fd||
f      dt        j                         v st        j                  |      rt        j                  |      ndt        j                  |      dt        j                         v st        j                  t              rt        j                  t              ndt        j                  |      t        j                  |      t        j                  |	      t        j                  |
      dz  }dd|iz  }t        t        j                  |            d x}x}x}x}x}	}
|j                  }t        j                  }d
}d}	 |||	      }
||
k7  }|s2t        j                  d|fd||
f      dt        j                         v st        j                  |      rt        j                  |      ndt        j                  |      dt        j                         v st        j                  t              rt        j                  t              ndt        j                  |      t        j                  |      t        j                  |	      t        j                  |
      dz  }dd|iz  }t        t        j                  |            d x}x}x}x}x}	}
y )NREADY_CUSTOMER_REVISIONr   r   r   r   r   r   209z2%(py2)s
{%(py2)s = %(py0)s.message_id
} == %(py5)sreviser   zv%(py2)s
{%(py2)s = %(py0)s.action
} == %(py12)s
{%(py12)s = %(py6)s
{%(py6)s = %(py4)s.callback
}(%(py8)s, %(py10)s)
}r4   r   r   r
   r   py8r   r   assert %(py14)spy14rY   !=zv%(py2)s
{%(py2)s = %(py0)s.action
} != %(py12)s
{%(py12)s = %(py6)s
{%(py6)s = %(py4)s.callback
}(%(py8)s, %(py10)s)
})r   r   r4   r   r#   r   r   r   r   r   r   r   r   r_   r   callback)r   r   r   r   r   r   r   @py_assert5@py_assert7r   @py_assert11r   @py_format15s                r8   =test_startup_changed_body_generation_25_emits_latest_revisionr     s   vHHZZ!F==555=55555=555555565556555=55555555555%%%%%%%%%%%%6%%%6%%%%%%%%%%%%%==4AJJ4x44Jx44=44444=444444464446444=444444A444A444J444x444444444444444==4AJJ4x44Jx44=44444=444444464446444=444444A444A444J444x444444444444444r:   c                    t               } t        |        t        j                  | d   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                  |      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   rz   "WAIT_MATCHING_CUSTOMER_PUBLICATIONr   r   r   r   r   r   r   r   )r   r   copydeepcopyr4   r   r#   r   r   r   r   r   r   r   r   r_   )r   r   r   r   r   r   r   s          r8   9test_stale_generation_24_message_207_callback_is_rejectedr
    s   vHH"mmHX,>q,ABH]ZZ!F==@@@=@@@@@=@@@@@@@6@@@6@@@=@@@@@@@@@@@$$$$$$$$$$$$6$$$6$$$$$$$$$$$$$r:   c            	     T   t               } t        j                  } ||       }d }||u }|s
t        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t        j                  |      t        j                  |      dz  }dd|iz  }t        t        j                  |            d x}x}x}}t        |        t        j                  |       }d }||u}|st        j                  d|fd	||f      d
t        j                         v st        j                  |      rt        j                  |      nd
t        j                  |      dz  }	dd|	iz  }
t        t        j                  |
            d x}}|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}}|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}}|d   }t        j                  }d}d} |||      }||k(  }|st        j                  d|fd||f      t        j                  |      dt        j                         v st        j                  t              rt        j                  t              ndt        j                  |      t        j                  |      t        j                  |      t        j                  |      dz  }dd|iz  }t        t        j                  |            d x}x}x}x}x}}y )Nr   )z`%(py5)s
{%(py5)s = %(py2)s
{%(py2)s = %(py0)s.candidate_revision_handoff
}(%(py3)s)
} is %(py8)sr4   r   r   r   r   r   r   assert %(py10)sr   r   r   handoffr   r   r   r#   r   r   z%(py1)s == %(py4)spy1r
   assert %(py6)sr   r_   r   r   r   r   )zY%(py1)s == %(py11)s
{%(py11)s = %(py5)s
{%(py5)s = %(py3)s.callback
}(%(py7)s, %(py9)s)
})r  r   r   r   r   py11zassert %(py13)spy13)r   r4   candidate_revision_handoffr   r   r   r   r   r   r   r   r   r   )r   r   r   r  r   @py_format9r   r  r   r   r   @py_assert0r   @py_format5@py_format7r   @py_assert10@py_format12@py_format14s                      r8   <test_revision_handoff_helper_never_authorizes_predeploy_cardr    s|   vH''9'19T91T99991T99999919991999'9999999999991999T9999999H**84G7$7$77$89 99 99999 9999999 99999999< )E) E)))) E))) )))E)))))))88

888R8
8R 88 88888 8888888888888888
8888888R888 888888888r:   c                    t               } t        |        t        |        | d   }|d   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}}|d   d
   }t        j                  }||k(  }|st        j                  d|fd||f      t        j
                  |      dt        j                         v st        j                  t              rt        j
                  t              ndt        j
                  |      dz  }dd|iz  }	t        t        j                  |	            d x}x}}d}|d   }||v}|slt        j                  d|fd||f      t        j
                  |      t        j
                  |      dz  }dd	|iz  }t        t        j                  |            d x}x}}d}||v}|st        j                  d|fd||f      t        j
                  |      dt        j                         v st        j                  |      rt        j
                  |      nddz  }
dd|
iz  }t        t        j                  |            d x}}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
                  |      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}||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}}y )"Nry   r9   r   r   r   r  r  r  r   r   )z:%(py1)s == %(py5)s
{%(py5)s = %(py3)s.DETAILED_RATIONALE
}r4   )r  r   r   r   r   r3   not in)z%(py1)s not in %(py4)srS   z%(py1)s not in %(py3)sr  r   r   r   READY_CUSTOMER_RESUBMITr   r   r   211r   z"submit_answer:schedule_constraintsr   r2   )z/%(py2)s
{%(py2)s = %(py0)s.command
} == %(py5)s)r   r   r   r   r   r   r   r   r4   r6   r   r   r   r   r#   r_   r   command)r   ry   r  r   r   r  r  r   r   r   r   r   r   s                r8   Htest_authorized_rewind_normalizes_activity_and_preserves_exact_rationaler&    s{   vHHh
#HI23AzA3zAAAA3zAAA3AAAzAAAAAAAI34L8L8LL48LLLLL48LLLL4LLLLLLLLLLLL8LLLLLLLL!<))<<!)<<<<<!)<<<<!<<<)<<<<<<<<+8++++8+++++++++8+++8+++++++ZZ!F==555=55555=555555565556555=55555555555%%%%%%%%%%%%6%%%6%%%%%%%%%%%%%==@@@=@@@@@=@@@@@@@6@@@6@@@=@@@@@@@@@@@>>%X%>X%%%%>X%%%%%%6%%%6%%%>%%%X%%%%%%%r:   fault)activity	rationalerS   r^   c           	        t               }t        |       t        |       | dk(  rt        j                  |d   d   d<   n| dk(  rd|d   d   d<   nn| dk(  r
i |d   d<   n_d	|d
   d<   t        j
                  } ||      }|j                  }d}||k(  }|st        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t        j                  |      t        j                  |      t        j                  |      dz  }dd|iz  }t        t        j                  |            d x}x}x}x}}y t        j                   t        j"                        5  t        j                  |       d d d        y # 1 sw Y   y xY w)Nr(  ry   r9   r   r)  r   r   rS   r   rz   r^   r  r   zk%(py7)s
{%(py7)s = %(py5)s
{%(py5)s = %(py2)s
{%(py2)s = %(py0)s.classify
}(%(py3)s)
}.status
} == %(py10)sr4   r   r   r   r   )r   r   r   r4   r5   r   r#   r   r   r   r   r   r   r   r   pytestraisesLifecycleError)	r'  r   r   r   r   r   r   r   r   s	            r8   3test_rewind_rejects_noncanonical_or_stale_authorityr/  ,  sp    vHHh
?@?P?PY'(;<	+	@WY'(<=	"	"13-.02-zzRz(#R#**R.RR*.RRRRR*.RRRRRRRqRRRqRRRzRRRRRR(RRR(RRR#RRR*RRR.RRRRRRRR	q''	(	

8 
)	(	(s   $HHc            
     p   t               } t        |        t        |        t        |        | d   d   }t        j
                  } ||      }|sd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                  |      dz  }t        t        j                  |            d x}}t        j                  | d   |d      }d }||u}|st        j                  d|fd	||f      d
t        j                         v st        j                  |      rt        j                  |      nd
t        j                  |      dz  }dd|iz  }t        t        j                  |            d x}}dD ]  }||v}|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
dz  }	dd|	iz  }
t        t        j                  |
            d } ddt        j                  dfD ]  }||v }|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
dz  }	dd|	iz  }
t        t        j                  |
            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                  |      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&                  }t        j(                  }d$}d%} |||      }||k(  }|s2t        j                  d|fd&||f      dt        j                         v st        j                  |      rt        j                  |      ndt        j                  |      dt        j                         v st        j                  t              rt        j                  t              ndt        j                  |      t        j                  |      t        j                  |      t        j                  |      d'z  }d(d)|iz  }t        t        j                  |            d x}x}x}x}x}}y )*Nry   r9   zXassert %(py5)s
{%(py5)s = %(py2)s
{%(py2)s = %(py0)s.baseline_valid_answers
}(%(py3)s)
}r4   r7   )r   r   r   r   r   r   r   r   r   r   r   )	{r$   r#   r   r   u	   미입력u   위험 신호u
   수정 전u    실제 총활동량은 불명확r  )z%(py0)s not in %(py2)s	forbidden)r   r   zassert %(py4)sr
   u   유지r,   u%   별도 검토 입력이 없습니다.in)z%(py0)s in %(py2)srequiredREADY_CUSTOMER_ATTESTr   r   r   r   r   r   213r   attestr   r   r   r   r   )r   r   r   r   r4   baseline_valid_answersr   r   r   r   r   r   r   r   r   r6   r   r#   r_   r   r   )r   r7   r   r   r   r   r   r   r2  @py_format3r  r5  r   r   r   r  r  r   r  r   r  s                        r8   Jtest_new_reconciliation_summary_is_canonical_baseline_valid_and_attestabler;  A  s    vHHh(#Z +E##*#E********1***1***#******E***E**********''(<eQGD4t4t44t
	 $$$$y$$$$$$y$$$y$$$$$$$$$$$$$$$$
 		/	 4x4xx44 ZZ!F==333=33333=333333363336333=33333333333%%%%%%%%%%%%6%%%6%%%%%%%%%%%%%==4AJJ4x44Jx44=44444=444444464446444=444444A444A444J444x444444444444444r:   c            	     t   t               } t        |        t        |        t        |        d| d   d   d<   d| d   d   d   d<   t        j
                  } ||       }|j                  }d}||k(  }|st        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t        j                  |      t        j                  |      t        j                  |      dz  }dd|iz  }t        t        j                  |            d x}x}x}x}}t               } t        |        t        |        t        |        d| d   d   d<   t        j                  | d   d         }|| d   d   d<   | d   d   j!                         D 	
ci c]  \  }	}
|	dk7  s|	|
 }}	}
t        j                  |      | d   d   d<   || d   d   d<   || d   d   d   d<   t        j
                  } ||       }|j                  }d}||k(  }|st        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t        j                  |      t        j                  |      t        j                  |      dz  }dd|iz  }t        t        j                  |            d x}x}x}x}}y c c}
}	w )N@0000000000000000000000000000000000000000000000000000000000000000rz   r`   rX   r{   WAIT_CANDIDATE_PUBLICATIONr   r+  r4   r   r   r   r   r   ry   r9   r   rS   rL   rO   r6  )r   r   r   r   r4   r   r#   r   r   r   r   r   r   r   r   rP   r$   )r   r   r   r   r   r   r   r   rO   kvunsigneds               r8   Ftest_final_summary_rejects_bad_body_and_accepts_domain_valid_rationalerC  e  s   vHHh(#8@H]I&}57?HXr9%m4::F:hF&&F*FF&*FFFFF&*FFFFFFF1FFF1FFF:FFFFFFhFFFhFFFFFF&FFF*FFFFFFFFvHHh(#<SHZ#$89 4Y ?@F?EHZ)*+;<!*-.>?EEGGA1PX=1G   897I7I(7SHZ)*84;AH]I&'78:@HXr9%&67::A:hA&&A*AA&*AAAAA&*AAAAAAA1AAA1AAA:AAAAAAhAAAhAAAAAA&AAA*AAAAAAAAAs   N4N4c                    t               } t        d      }dd|t        |dd      d| d	<   dt        t        j                  |            d
dd}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                  |      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}}y )NFr   rU   rl   r   r?   )rN   r<   )r<   rq   r9   rS   ry   @ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddr   )r<   rL   rX   clarification_fieldr   r   READY_CUSTOMER_CLARIFICATIONr   r   r   r   r   r   z&submit_clarification:activity_categoryr   )r   r9   rS   strr4   rP   r   r   r#   r   r   r   r   r   r   r   r   r   )	r   r7   r`   r   r   r   r   r   r   s	            r8   /test_matching_clarification_remains_field_boundrI  }  sY   vH5!E'(a|T	HZ (a00782	"G Hb#w'ZZ!F==:::=:::::=:::::::6:::6:::=:::::::::::==DDD=DDDDD=DDDDDDD6DDD6DDD=DDDDDDDDDDDr:   c                    t               } | d   j                  t        j                  | d   d                t	        j
                  t        j                  d      5  t        j                  |        d d d        y # 1 sw Y   y xY w)Nr{   r   zduplicate publicationmatch)	r   r   r  r	  r,  r-  r4   r.  r   r   s    r8   2test_duplicate_publication_generation_fails_closedrM    s]    vHXdmmHX,>q,ABC	q''/F	G	

8 
H	G	Gs   A<<Bc            
     *   t               } t        | d       | d   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}}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                  |      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 }||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}}t        | dddd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                  |      dz  }	dd|	iz  }
t        t        j                  |
            d x}x}}|j                   }t        j"                  }||k(  }|st        j                  d|fd||f      dt        j                         v st        j                  |      rt        j                  |      ndt        j                  |      dt        j                         v st        j                  t              rt        j                  t              ndt        j                  |      dz  }d d!|iz  }t        t        j                  |            d x}x}}|j$                  }t        j"                  d"f}||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&                  }t        j(                  }d&}d} |||      }||k(  }|s2t        j                  d|fd'||f      dt        j                         v st        j                  |      rt        j                  |      ndt        j                  |      dt        j                         v st        j                  t              rt        j                  t              ndt        j                  |      t        j                  |      t        j                  |      t        j                  |      d(z  }d)d*|iz  }t        t        j                  |            d x}x}x}x}x}}|j&                  }t        j(                  }d+}d,} |||      }||k7  }|s2t        j                  d-|fd.||f      dt        j                         v st        j                  |      rt        j                  |      ndt        j                  |      dt        j                         v st        j                  t              rt        j                  t              ndt        j                  |      t        j                  |      t        j                  |      t        j                  |      d(z  }d)d*|iz  }t        t        j                  |            d x}x}x}x}x}}y )/NFcommit_publicationry   baseline_digest@4d3d925fe27f953252ed0f108ed7c65900d05546cbbe46ee42cb7004a069be45r   r  r  r  r   WAIT_MATCHING_ROLE_PUBLICATIONr   r   r   r   r   system)z,%(py2)s
{%(py2)s = %(py0)s.role
} == %(py5)sr   r         owner_review@4903900d9c98c474006e512d14207439262ce405b696f4c6765dd65e1927cbd9r<   rX   rw   r   READY_OWNER_REVIEW)zH%(py2)s
{%(py2)s = %(py0)s.actor
} == %(py6)s
{%(py6)s = %(py4)s.OWNER
}r4   r   r   r
   r   assert %(py8)sr   re   )z-%(py2)s
{%(py2)s = %(py0)s.route
} == %(py5)s215r   owner_okr   r   r   r   r8     r   r   )r   owner_review_stater   r   r   r   r   r4   r   r#   r   r   r   ru   r_   r   actorr   rg   r   r   )r   r  r   r   r  r  r   r   r   r   r   r  r  r  r   r  r   r  s                     r8   Etest_customer_attestation_to_owner_publication_gap_waits_without_exitrb    s   vHxE:./M/M	N /M   	0   N      ZZ!F==<<<=<<<<<=<<<<<<<6<<<6<<<=<<<<<<<<<<<;;"(";("""";(""""""6"""6""";"""("""""""$$$$$$$$$$$$6$$$6$$$$$$$$$$$$$
#]	
 	 ZZ!F==000=00000=000000060006000=00000000000<<"177"<7""""<7""""""6"""6"""<""""""1"""1"""7"""""""<<)AGGS>)<>))))<>))))))6)))6)))<)))>)))))))%%%%%%%%%%%%6%%%6%%%%%%%%%%%%%==6AJJ6z626Jz266=66666=666666666666666=666666A666A666J666z6662666666666666==4AJJ4x44Jx44=44444=444444464446444=444444A444A444J444x444444444444444r:   c            	     
   t               } t        | d       t        j                  } ||       }|j                  }d}||k(  }|st        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t        j                  |      t        j                  |      t        j                  |      dz  }d	d
|iz  }t        t        j                  |            d x}x}x}x}}t        j                  |       }d|d   d<   t        j                   t        j"                  d      5  t        j                  |       d d d        t        j                  |       }	t        j$                  dg|	d   d   d<   t        j                   t        j"                  d      5  t        j                  |	       d d d        t        j                  |       }
d|
d   d   d<   d|
d   d   d   d<   t        j                  } ||
      }|j                  }d}||k(  }|st        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t        j                  |      t        j                  |      t        j                  |      dz  }d	d
|iz  }t        t        j                  |            d x}x}x}x}}t        j                  |       }d|d   d<   d|d   d   d<   t        j                  } ||      }|j                  }d}||k(  }|st        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t        j                  |      t        j                  |      t        j                  |      dz  }d	d
|iz  }t        t        j                  |            d x}x}x}x}}y # 1 sw Y   xY w# 1 sw Y   xY w)NTrO  rZ  r   r+  r4   r   r   r   r   r=  ry   rQ  rx   rK  re   r{   r>  rg   rz   r`   rX   rS  bad_body   r_   stale_message)r   r`  r4   r   r#   r   r   r   r   r   r   r   r   r  r	  r,  r-  r.  r   )r   r   r   r   r   r   r   r   bad_baseline	bad_routerd  rf  s               r8   Dtest_owner_review_rejects_baseline_role_route_body_and_stale_messageri    sg   vHxD9::>:h>&&>*>>&*>>>>>&*>>>>>>>1>>>1>>>:>>>>>>h>>>h>>>>>>&>>>*>>>>>>>>==*L2:L./	q''z	:	

<  
;h'I()

C'8IhG$	q''w	7	

9 
8}}X&H8@H]I&}57?HXr9%m4::J:hJ&&J*JJ&*JJJJJ&*JJJJJJJ1JJJ1JJJ:JJJJJJhJJJhJJJJJJ&JJJ*JJJJJJJJMM(+M14M- .03M(B-::O:m$O$++O/OO+/OOOOO+/OOOOOOO1OOO1OOO:OOOOOOmOOOmOOO$OOO+OOO/OOOOOOOOO 
;	: 
8	7s   0U#UUUc            	     ^)   t               } t        | d       d| d   d<   t        j                  } ||       }|j                  }d}||k(  }|st        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
t        j                  |      t        j                  |      t        j                  |      dz  }dd|iz  }t        t        j                  |            d x}x}x}x}}t        | dddddd       t        j                  } ||       }|j                  }d}||k(  }|st        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
t        j                  |      t        j                  |      t        j                  |      dz  }dd|iz  }t        t        j                  |            d x}x}x}x}}d| d   d<   t        j                  } ||       }|j                  }d}||k(  }|st        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
t        j                  |      t        j                  |      t        j                  |      dz  }dd|iz  }t        t        j                  |            d x}x}x}x}}t        | dddd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                  |      dz  }
dd|
iz  }t        t        j                  |            d x}x}	}|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                  |      d	t        j                         v st        j                  t              rt        j                  t              nd	t        j                  |      t        j                  |      d z  }d!d"|iz  }t        t        j                  |            d x}x}	x}}t        j                   }t#        |      }|j                  }||v }|sSt        j                  d#|fd$||f      d%t        j                         v st        j                  t"              rt        j                  t"              nd%d	t        j                         v st        j                  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                  |      d&z  }d'd(|iz  }t        t        j                  |            d x}x}x}}g }d)}|j                  }||v}|}|rd*}|j                  }||v}|}|st        j                  d+|fd,||f      t        j                  |      dt        j                         v st        j                  |      rt        j                  |      ndt        j                  |      d-z  }d.d/|iz  }|j%                  |       |rt        j                  d+fd0f      t        j                  |      dt        j                         v st        j                  |      rt        j                  |      ndt        j                  |      d1z  }d2d3|iz  }|j%                  |       t        j&                  |d4      i z  }d5d6|iz  }t        t        j                  |            d x}x}x}x}x}x}x}}| d7   j)                  d8d9:       d| 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                  |      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,                  }dA}||k(  }	|	st        j                  d|	fdB||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}	}t        j/                  | |      }|dC   }dD}	||	k(  }|slt        j                  d|fdE||	f      t        j                  |      t        j                  |	      dFz  }dGdH|iz  }t        t        j                  |            d x}x}}	|dI   }dJdKdLdMdN}	||	k(  }|slt        j                  d|fdE||	f      t        j                  |      t        j                  |	      dFz  }dGdH|iz  }t        t        j                  |            d x}x}}	dOdPdQdRt        j0                  dSgdTdU| dV<   t        j                  } ||       }|j                  }dW}||k(  }|st        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
t        j                  |      t        j                  |      t        j                  |      dz  }dd|iz  }t        t        j                  |            d x}x}x}x}}dXt        j2                  dOdYdZg| d[<   dXd\d]t        j4                  t        j4                  dSd^d_g| d`<   dat        j2                  dOdbdXdci| dd<   t        j                  } ||       }|j                  }de}||k(  }|st        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
t        j                  |      t        j                  |      t        j                  |      dz  }dd|iz  }t        t        j                  |            d x}x}x}x}}df| dd   da   dg<   t        j                  } ||       }|j                  }dh}||k(  }|st        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
t        j                  |      t        j                  |      t        j                  |      dz  }dd|iz  }t        t        j                  |            d x}x}x}x}}dit        j2                  dOdadjdkdli| dm<   t        j                  } ||       }|j                  }dn}||k(  }|st        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
t        j                  |      t        j                  |      t        j                  |      dz  }dd|iz  }t        t        j                  |            d x}x}x}x}}do| d;   d<<   t        j                  } ||       }|j                  }dp}||k(  }|st        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
t        j                  |      t        j                  |      t        j                  |      dz  }dd|iz  }t        t        j                  |            d x}x}x}x}}y )qNTrO  
finalizingry   r<   rS  r   r+  r4   r   r   r   r         @ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffrY  rw   r   WAIT_AUTOMATIC_READINESSready      @aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa!READY_OPERATOR_ACTIVATION_CUTOVERr   cutoverr   r   r   )zi%(py2)s
{%(py2)s = %(py0)s.command
} == %(py8)s
{%(py8)s = %(py6)s
{%(py6)s = %(py4)s.exact_cutover
}()
})r   r   r
   r   r   r  r   r3  )zl%(py5)s
{%(py5)s = %(py0)s(%(py3)s
{%(py3)s = %(py1)s.CHECKLIST
})
} in %(py9)s
{%(py9)s = %(py7)s.command
}rH  )r   r  r   r   r   r   assert %(py11)sr  <>r  )z3%(py3)s not in %(py7)s
{%(py7)s = %(py5)s.command
})r   r   r   z%(py9)sr   )z7%(py12)s not in %(py16)s
{%(py16)s = %(py14)s.command
})r   r   py16z%(py18)spy18r   zassert %(py21)spy21rv   ACTIVE   r<   r^   rs   rf   READY_CUSTOMER_START_CHECKINstartu   send:오늘 체크인r   u   after arming, send one fresh exact production alias 오늘 체크인, then press inline 오늘 체크인 시작; the pre-arm 2026-08-17 12:10 message produced no state/card and is not replayed or accepted)z.%(py2)s
{%(py2)s = %(py0)s.detail
} == %(py5)sevent_subscriptionz-recursive-inotify-before-snapshot-and-actionsr  r  r  r   fresh_alias_requirement   오늘 체크인   오늘 체크인 시작z2026-08-17 12:10z'no state/card; not replayed or accepted)required_after_armingexpected_inlinepre_arm_messagepre_arm_resultzwiz-current   summary221re   zevt-current)r]   versionstepr_   rg   finalized_event_idr}   WAIT_AUTOMATIC_GENERATIONztok-current	generated)tokencustomer_keyr]   r<   r~   	published223rh   )r  r<   r_   destinationr   zdraft-currentcreated)r  r]   r#   generation_tokenr   READY_OWNER_DRAFT_REVIEWapprovedr#   READY_OWNER_EXPLICIT_SENDzdelivery-currentsent_audited225)r  r]   draft_idr#   r_   r   READY_OPERATOR_DISABLEFREADY_CLEANUP_HANDOFF)r   r`  r4   r   r#   r   r   r   r   r   r   r   r   r   r%  exact_cutover	CHECKLISTrH  r   _format_boolopupdater   detail	ready_docr   KEYr   )r   r   r   r   r   r   r   r   ru  r   r   r   r  r  r  r   @py_format10r  r  r  @py_assert15@py_assert13@py_format17@py_format19@py_format20@py_format22r  rp  r  r  s                                 r8   Ktest_owner_finalization_ready_activation_checkin_delivery_cleanup_continuesr    s    vHxD9$0HZ!::J:hJ&&J*JJ&*JJJJJ&*JJJJJJJ1JJJ1JJJ:JJJJJJhJJJhJJJJJJ&JJJ*JJJJJJJJ
x8 ::D:hD&&D*DD&*DDDDD&*DDDDDDD1DDD1DDD:DDDDDDhDDDhDDDDDD&DDD*DDDDDDDD$+HZ!::J:hJ&&J*JJ&*JJJJJ&*JJJJJJJ1JJJ1JJJ:JJJJJJhJJJhJJJJJJ&JJJ*JJJJJJJJ
(3 jj"G>>@@@>@@@@@>@@@@@@@7@@@7@@@>@@@@@@@@@@@??/aoo/o//?/////?///////7///7///?//////a///a///o///////////{{.3{.w...........3...3......q...q...{.........w...w..........D3DgooD3o%D#DW__D#_*DDDDD3oDDD3DDDDDDgDDDgDDDoDDDDDDD#_DDD#DDDDDDWDDDWDDD_DDDDDDDDDDDDDD[  xA >&*HZ#JJx E<<999<99999<999999959995999<99999999999<<222<22222<222222252225222<22222222222<< 	*<	*  	<	*  	  	    	    	    	*    	 
 KK%(E%&Y*YY&*YYYYY&*YYYY&YYY*YYYYYYYY*+ !34-C	0 + 0  
 + 0  
  ,  
 0    
   $**c"+HX ::E:hE&&E*EE&*EEEEE&*EEEEEEE1EEE1EEE:EEEEEEhEEEhEEEEEE&EEE*EEEEEEEE #EE' 		
H] # 7777			
HW 	EE' -	
HX ::D:hD&&D*DD&*DDDDD&*DDDDDDD1DDD1DDD:DDDDDDhDDDhDDDDDD&DDD*DDDDDDDD4>HX'1::E:hE&&E*EE&*EEEEE&*EEEEEEE1EEE1EEE:EEEEEEhEEEhEEEEEE&EEE*EEEEEEEEEE''$
H\ ::B:hB&&B*BB&*BBBBB&*BBBBBBB1BBB1BBB:BBBBBBhBBBhBBBBBB&BBB*BBBBBBBB&+HZ#::A:hA&&A*AA&*AAAAA&*AAAAAAA1AAA1AAA:AAAAAAhAAAhAAAAAA&AAA*AAAAAAAAAr:   c                    d}t        d      }||d<   dd|t        |d      g d	d
| d<   t        | d      }t        | dd|       |S )Nu   현재도 주 3회, 회당 60분 정도의 중간 강도 근력운동을 꾸준히 하고 있으며,
 앞으로도 같은 수준으로 유지할 계획입니다. 평소 하루 6,000~8,000보 정도 걷습
 니다.Fr   r   rU   rl   rm   rn   )ro   r   r   i.  rp   ry   r_  r   )r9   rS   r   r   )r   r)  r7   r`   s       r8   current_generation_28r  2  sf    	 
 5!E"+E
'(a@0HZ  :GHb#w'Lr:   c               J   t        |       }t        t        j                        }|t        j
                  vr t        j
                  j                  d|       t        j                  d      }t        |      }|j                  dt        j                  ddd       |j                  |t        dd	d
            j                  d      }t        j                  |      }| d   d   }d||||d   d| d<   | d   j                  di |ddg       |rt!        | dddddd       y y )Nr   z'checkin_cli.nutrition_onboarding_modelsz1.0	completedpendingunpublished)rK   r  session_statusreview_decisionpublication_statusi        )as_ofr   )modery   rS   rO   )rK   rO   rx   source_answersinput_reconciliation_digestrx   rW  ro   izʅ%)r<   r9   rQ  rr   rU  rV  rX  rY  rw   r   )r  rH  r4   DOMAIN_PACKAGE_ROOTr   pathinsert	importlibimport_moduledictr  r  build_onboarding_baseliner   
model_dumprP   r   )	r   rP  r  packagemodelsrawbaseline_payloadrQ  reconciliation_records	            r8   r`  r`  F  sG   *84N!''(Gchh7#$$%NOF
~
CJJUU"!(   774a$ 8 jfj  (()9:O$Z01AB!$('<X'FHZ Z'y)	    'a 		
 r:   c                    t               } t        |       }t        j                  } ||      }d}||k(  }|s
t	        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t	        j                  |      t	        j                  |      dz  }dd|iz  }t        t	        j                  |            d x}x}x}}| d	   d
   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}
}	t        j                  |      \  }}d}
||
u }|st	        j
                  d|fd||
f      dt        j                         v st	        j                  |      rt	        j                  |      ndt	        j                  |
      dz  }dd|iz  }t        t	        j                  |            d x}}
d}
|
j                  }|d   }t        |      }|j                  } |       } ||      }||k(  }|sZt	        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                  |      t	        j                  |      t	        j                  |      t	        j                  |      t	        j                  |      d	z  }dd|iz  }t        t	        j                  |            d x}x}
x}x}x}x}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                  |      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&                  }t        j(                  }d(}d)} |||      }||k(  }	|	s2t	        j
                  d|	fd*||f      d"t        j                         v st	        j                  |      rt	        j                  |      nd"t	        j                  |      dt        j                         v st	        j                  t              rt	        j                  t              ndt	        j                  |      t	        j                  |      t	        j                  |      t	        j                  |      d+z  }d,d-|iz  }t        t	        j                  |            d x}x}	x}x}x}}y ).N@280dabc7a1705face34a68fb61f62f079e20f6fc3844afe82f9752db0f5cf669r   )zV%(py5)s
{%(py5)s = %(py2)s
{%(py2)s = %(py0)s.canonical_digest
}(%(py3)s)
} == %(py8)sr4   r7   r  r  r   rz   r`   rX   @f760b5ac4c2109067a2798ec3480898afe6f77722efa18635684a45e51406b65r  r  r  r   Tr   z%(py0)s is %(py3)svalidr   r   r    r   )z%(py0)s == %(py16)s
{%(py16)s = %(py5)s
{%(py5)s = %(py3)s.join
}(%(py14)s
{%(py14)s = %(py12)s
{%(py12)s = %(py10)s
{%(py10)s = %(py6)s(%(py8)s)
}.split
}()
})
}
normalizedrH  )	r   r   r   r   r   r   r   r   ry  zassert %(py18)srz  r6  r   r   r   r   r   r7  r   r8  r_  r   r   r   r   )r   r  r4   rP   r   r   r   r   r   r   r   r   shipped_baseline_validationjoinrH  splitr   r#   r_   r   r   )r   r7   r   r   r  r   r  r   r  r   r   r  r  r  r  r   r   r   r  r  r  r  r  r   r   r  r   r  s                               r8   Jtest_current_transport_whitespace_rationale_is_domain_valid_and_attestabler  s  s    vH!(+E	5!M!M	N  !M     	
   	
   	     !   !   	"   N      
 		*=9M9M	N 9M   	:   N      55e<E:5D=5D55DKKe,@&AK#&A"BK"B"H"HK"H"JK"JKK:KKKKK:KKKKKKK:KKK:KKKKKKKKKKKK#KKK#KKK&AKKK"BKKK"HKKK"JKKKKKKKKKKKKZZ!F==333=33333=333333363336333=33333333333%%%%%%%%%%%%6%%%6%%%%%%%%%%%%%==4AJJ4x44Jx44=44444=444444464446444=444444A444A444J444x444444444444444r:   )categoryr)  ))r    )r     xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)	arbitraryzvalid rationalec                   t        d      }| |d<   ||d<   t        j                  |      \  }}d}||u }|st        j                  d|fd||f      dt        j                         v st        j                  |      rt        j                  |      ndt        j                  |      dz  }d	d
|iz  }t        t        j                  |            d x}}d }||u }|st        j                  d|fd||f      dt        j                         v st        j                  |      rt        j                  |      ndt        j                  |      dz  }d	d
|iz  }t        t        j                  |            d x}}y )NFr   r   r   r   r  r  r   r   r   r  )r9   r4   r  r   r   r   r   r   r   r   r   )	r  r)  r7   r  r  r   r   r   r   s	            r8   3test_shipped_baseline_gate_rejects_invalid_activityr    s     5!E!)E
"+E
55e<E:5E>5E55E::::r:   c            	     :	   t               } t        |        t        j                  |       }d|d   d   d<   d|d   d   d   d<   t        j
                  } ||      }|j                  }d}||k(  }|st        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t        j                  |      t        j                  |      t        j                  |      dz  }dd|iz  }t        t        j                  |            d x}x}x}x}}t        j                  |       }	d|	d   d<   d|	d   d   d<   t        j
                  } ||	      }|j                  }d}||k(  }|st        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t        j                  |      t        j                  |      t        j                  |      dz  }dd|iz  }t        t        j                  |            d x}x}x}x}}t        j                  |       }
d|
d   d   d<   d|
d   d   d   d<   t        j
                  } ||
      }|j                  }d}||k(  }|st        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t        j                  |      t        j                  |      t        j                  |      dz  }dd|iz  }t        t        j                  |            d x}x}x}x}}y )Nr=  rz   r`   rL   r{   r>  r  r   r+  r4   stale_digestr   r   r      r_   rf  rn  rX   r?  rd  )r   r  r  r	  r4   r   r#   r   r   r   r   r   r   r   r   )r   r  r   r   r   r   r   r   r   rf  rd  s              r8   @test_current_authority_rejects_stale_digest_message_and_bad_bodyr    s   vH(#==*L?GL	*+;<>FL2y)*:;::R:l#R#**R.RR*.RRRRR*.RRRRRRR1RRR1RRR:RRRRRRlRRRlRRR#RRR*RRR.RRRRRRRRMM(+M14M- .03M(B-::S:m$S$++S/SS+/SSSSS+/SSSSSSS1SSS1SSS:SSSSSSmSSSmSSS$SSS+SSS/SSSSSSSS}}X&H8@H]I&}57?HXr9%m4::F:hF&&F*FF&*FFFFF&*FFFFFFF1FFF1FFF:FFFFFFhFFFhFFFFFF&FFF*FFFFFFFFFr:   c           	     f   | dz  }t         j                  |ddi       t         j                  |ddi       |j                         j                         D cg c]!  }t         j                  j                  |      # }}|j                  } |       }|j                  }d}||z  }d}	||	k(  }
|
st        j                  d|
fd||	f      d	t        j                         v st        j                  |      rt        j                  |      nd	t        j                  |      t        j                  |      t        j                  |      t        j                  |      t        j                  |	      d
z  }dd|iz  }t        t        j                  |            d x}x}x}x}x}x}
}	|d   d   }|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 c c}w )Nzevents.jsonlr#   ABi  i  r   )zm(%(py6)s
{%(py6)s = %(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.stat
}()
}.st_mode
} & %(py8)s) == %(py12)starget)r   r   r
   r   r   r   r   r   rm   previous_event_sha256r   event_sha256r  r  r  r   )r4   append_event	read_text
splitlinesr   r   statst_moder   r   r   r   r   r   r   r   )tmp_pathr  linerowsr   r   r  r  r   r  r  r   r  r  r   r  r  s                    r8   .test_append_ledger_is_private_and_hash_chainedr    s   &FNN6Hc?+NN6Hc?++1+;+;+=+H+H+JK+J4AFFLL+JDK;;1;=1=  151 5(1E1(E1111(E11111161116111;111=111 1115111E111111117*+FtAw~/FF+/FFFFF+/FFFF+FFF/FFFFFFFF Ls   &H.c                 l   t         j                         } t        j                  |       }t         j                  j
                  j
                  dz  t         j                  z  }t         j                  }d}||k(  }|st        j                  d|fd||f      dt        j                         v st        j                  t               rt        j                  t               ndt        j                  |      t        j                  |      dz  }dd|iz  }t        t        j                  |            d x}x}}t         j                   }d	}||k(  }|st        j                  d|fd
||f      dt        j                         v st        j                  t               rt        j                  t               ndt        j                  |      t        j                  |      dz  }dd|iz  }t        t        j                  |            d x}x}}t         j"                  }d}||k(  }|st        j                  d|fd||f      dt        j                         v st        j                  t               rt        j                  t               ndt        j                  |      t        j                  |      dz  }dd|iz  }t        t        j                  |            d x}x}}t         j$                  }d}||k(  }|st        j                  d|fd||f      dt        j                         v st        j                  t               rt        j                  t               ndt        j                  |      t        j                  |      dz  }dd|iz  }t        t        j                  |            d x}x}}t         j&                  }d}||k(  }|st        j                  d|fd||f      dt        j                         v st        j                  t               rt        j                  t               ndt        j                  |      t        j                  |      dz  }dd|iz  }t        t        j                  |            d x}x}}| j(                  }d} ||      }d}	||	k(  }
|
st        j                  d|
fd||	f      dt        j                         v st        j                  |       rt        j                  |       ndt        j                  |      t        j                  |      t        j                  |      t        j                  |	      dz  }dd|iz  }t        t        j                  |            d x}x}x}x}
}	t         j*                  }t-        |      }|| v }|s?t        j                  d|fd|| f      dt        j                         v st        j                  t,              rt        j                  t,              nddt        j                         v st        j                  t               rt        j                  t               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      dz      }t-        |      }||k(  }|st        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                  |      d!z  }d"d#|iz  }t        t        j                  |            d x}x}}d$}|| v}|st        j                  d%|fd&|| f      t        j                  |      dt        j                         v st        j                  |       rt        j                  |       ndd'z  }d(d)|iz  }t        t        j                  |            d x}}y )*Ndata/customersr   r   r   r4   r   r   r   r   r   @f75856d6d986b64d3d2f083aec2f865c7aea19f5950b84ff06e519f2f6505af6)z5%(py2)s
{%(py2)s = %(py0)s.PROFILE_WHEEL
} == %(py5)s@b093aeb888ce7325cddd7d56d52a7e4a7ec8a180ac80eef21fea9453a8ef0e8e)z8%(py2)s
{%(py2)s = %(py0)s.CHECKLIST_SHA256
} == %(py5)s@acb21c8c02260497c197427cfc93417f2be65c8746768ba788bb33400e3e6e78)zA%(py2)s
{%(py2)s = %(py0)s.VALIDATION_RECEIPT_SHA256
} == %(py5)sz--checklist-evidencerm   )zK%(py6)s
{%(py6)s = %(py2)s
{%(py2)s = %(py0)s.count
}(%(py4)s)
} == %(py9)sr%  )r   r   r
   r   r   rv  r  r3  )zO%(py5)s
{%(py5)s = %(py0)s(%(py3)s
{%(py3)s = %(py1)s.CHECKLIST
})
} in %(py7)srH  )r   r  r   r   r   r   r   z--data-root)z0%(py1)s == %(py6)s
{%(py6)s = %(py3)s(%(py4)s)
}expected_data_root)r  r   r
   r   r\  r   z<CHECKLIST_EVIDENCE>r  r!  r"  r   r   )r4   r  shlexr  r  parentr  r   r   r   r   r   r   r   r   r   r   PROFILE_WHEELCHECKLIST_SHA256VALIDATION_RECEIPT_SHA256countr  rH  index)r%  	argumentsr  r   r   r   r   r   r  r   r  r  r  r   r   r  r  r  r   s                      r8   <test_current_cutover_bindings_are_exact_and_placeholder_freer    s   ooGG$I	$$++
	
%%	 
 ;;\\\;\\\\\;\\\\\\\1\\\1\\\;\\\\\\\\\\\66WWW6WWWWW6WWWWWWW1WWW1WWW6WWWWWWWWWWW??```?`````?```````1```1```?```````````c!cc!ccccc!ccccccc1ccc1cccccc!cccccccc&&l*ll&*lllll&*lllllll1lll1lll&lll*llllllll==5/5=/05A50A55550A55555575557555=555/5550555A5555555{{&3{&w&&&&w&&&&&&3&&&3&&&&&&q&&&q&&&{&&&&&&&&&w&&&w&&&&&&&Y__]3a78SC@R<SS8<SSSSS8<SSSS8SSSSSSCSSSCSSSSSS@RSSS@RSSS<SSSSSSSS!0!0000!000!0000000000000000r:   c            
        t        t        j                        } | t        j                  vr t        j                  j                  d|        t        j                  d      }t        j                  j                  j                  }|dz  }|dz  }|dz  t        j                  z  }t        j                  |j                  d      5  |j                  ||t        j                  |       d d d        |j                  ||t        j                  |      }|j                  }|j                  } |       }	|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*                  |      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}	x}x}
}|j1                  ||      }t        j                  |j                  d      5  |j3                  |||j                  ||j4                         d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nr   zcheckin_cli.customer_adminzcustomers/registry.jsondatar  z5data root does not match the registered customer rootrK  r   )z%(py6)s
{%(py6)s = %(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.data_root
}.resolve
}()
} == %(py12)s
{%(py12)s = %(py10)s
{%(py10)s = %(py8)s.resolve
}()
}runtime	canonicalr   r   r   zG1 data root)rH  r4   r  r   r  r  r  r  r  r  r,  r-  CustomerAdminError_registered_customer	data_rootresolver   r   r   r   r   r   r   r   _read_profile_registry_validate_activation_data_rootspec)r  adminprofileregistrywrongr  r   r   r   r  r   r  r  r   r  documents                   r8   Qtest_real_registered_root_resolver_rejects_profile_data_and_accepts_customer_rootr    s   !''(Gchh7###$@AE##**11G22HfE**QUU2I	  E
 	""8WaeeUC	
 ((7AEE9MG=$$=$&=)*;*;=*;*==&*=====&*=======7===7======$===&======)===)===*;===*=========++Hg>H	u//~	F,,UG--x	
 
G	F
 
 
G	Fs   #K)6*K6)K36K?c                    t        j                  d      } | j                  j                  }d} ||      }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}}d
} ||      }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}}d} ||      }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}}d} ||      }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}}d} ||      }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}}y )Nzgateway.platforms.telegramu   체크인 시작Tr   )z0%(py4)s
{%(py4)s = %(py0)s(%(py2)s)
} is %(py7)s
classifier)r   r   r
   r   r   r   r  u     오늘   체크인  checkinFr  )r  r  TelegramAdapter$_is_nutrition_customer_start_commandr   r   r   r   r   r   r   r   )telegramr  r   r   r   r  r   r  s           r8   Ntest_installed_telegram_adapter_accepts_only_production_customer_start_aliasesr    s   &&'CDH))NNJ(1:()1T1)T1111)T111111:111:111(111)111T1111111(1:()1T1)T1111)T111111:111:111(111)111T1111111.7:./747/47777/4777777:777:777.777/77747777777):i )E) E)))) E)))))):))):)))i))) )))E)))))))/9:/09E90E99990E999999:999:999/9990999E9999999r:   c            	     @   t               } t        | d       d| d   d<   t        | ddddd	d
       | d   j                  dd       d| d   d<   t        j
                  ddd}d|i| d<   t        j                  } ||       }|j                  }d}||k(  }|st        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t        j                  |      t        j                  |      t        j                  |      dz  }dd|iz  }t        t        j                  |            d x}x}x}x}}i |dd i| d   d!<   t!        j"                  t        j$                  d"#      5  t        j                  |        d d d        y # 1 sw Y   y xY w)$NTrO  rp  ry   r<   rl     rs  rY  rw   r   rv   r|  r}  r~  rs   rf   r  r  )r  r#   r_   oner   r  r   r+  r4   r   r   r   r   r_   226	duplicatezduplicate sent_audited deliveryrK  )r   r`  r   r  r4   r  r   r#   r   r   r   r   r   r   r   r   r,  r-  r.  )	r   deliveryr   r   r   r   r   r   r   s	            r8   Atest_one_delivery_is_terminal_and_duplicate_delivery_fails_closedr    s   vHxD9$+HZ!Hb#JQXY[  xA >&*HZ# !uUH#X.H\::B:hB&&B*BB&*BBBBB&*BBBBBBB1BBB1BBB:BBBBBBhBBBhBBBBBB&BBB*BBBBBBBB*KX*K|U*KH\;'	q''/P	Q	

8 
R	Q	Qs   5HHc            	     >    t         j                  dddddddg|       S )Nobservez	--profilez/authority/profilez--readyz/fresh/ready.jsonz--eventsz/fresh/events.jsonl)r4   
parse_args)extras    r8   timeout_argsr!    s7    << !		
 		
 r:   c                 b   t               } | 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}||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}}t        j                  |        y )
Ni  r   )z5%(py2)s
{%(py2)s = %(py0)s.stage_timeout
} == %(py5)sr   r   r   r   i`T  )z5%(py2)s
{%(py2)s = %(py0)s.total_timeout
} == %(py5)s)r!  stage_timeoutr   r   r   r   r   r   r   r   total_timeoutr4   validate_timeout_bounds)r   r   r   r   r   r   s         r8   7test_timeout_defaults_remain_1800_stage_and_21600_totalr&    s    ^F'4'4''''4''''''6'''6''''''4'''''''(5(5((((5((((((6(((6((((((5(((((((f%r:   c                    t        dd      } | j                  }t        j                  }||k(  }|st	        j
                  d|fd||f      dt        j                         v st	        j                  |       rt	        j                  |       ndt	        j                  |      dt        j                         v st	        j                  t              rt	        j                  t              ndt	        j                  |      dz  }dd	|iz  }t        t	        j                  |            d x}x}}| j                  }t        j                  }||k(  }|st	        j
                  d|fd
||f      dt        j                         v st	        j                  |       rt	        j                  |       ndt	        j                  |      dt        j                         v st	        j                  t              rt	        j                  t              ndt	        j                  |      dz  }dd	|iz  }t        t	        j                  |            d x}x}}t        j                  |        y )N--stage-timeout21600r   )z\%(py2)s
{%(py2)s = %(py0)s.stage_timeout
} == %(py6)s
{%(py6)s = %(py4)s.MAX_STAGE_TIMEOUT
}r   r4   r[  r\  r   )z\%(py2)s
{%(py2)s = %(py0)s.total_timeout
} == %(py6)s
{%(py6)s = %(py4)s.MAX_TOTAL_TIMEOUT
})r!  r#  r4   MAX_STAGE_TIMEOUTr   r   r   r   r   r   r   r   r$  MAX_TOTAL_TIMEOUTr%  )r   r   r  r   r  r  s         r8   ?test_six_hour_stage_timeout_is_accepted_with_existing_total_capr,    sQ   +W5F61#6#66#66666#66666666666666666666616661666#6666666661#6#66#66666#66666666666666666666616661666#66666666f%r:   r  ))r(  	21600.001)z--total-timeoutr-  c                    t        j                  t        j                  d      5  t        j	                  t        |         d d d        y # 1 sw Y   y xY w)Nztimeout bound invalidrK  )r,  r-  r4   r.  r%  r!  )r  s    r8   4test_timeout_values_above_explicit_caps_are_rejectedr/    s9     
q''/F	G	!!,	":; 
H	G	Gs   AA)r   boolr   r0  returndict[str, object])
r7   r2  rN   intr<   rH  r=   r0  r1  r2  )r1  dict[str, Any])r   r4  r^   r3  r_   r3  r`   r2  ru   rH  r1  None)r   r4  rN   r3  r1  r2  )r   r4  r1  r5  )r1  r5  )r'  rH  r1  r5  )r   r4  r1  r2  )r   r4  rP  r0  r1  r5  )r  rH  r)  rH  r1  r5  )r  r   r1  r5  )r   rH  r1  r   )r  ztuple[str, str]r1  r5  )W
__future__r   builtinsr   _pytest.assertion.rewrite	assertionrewriter   r  importlib.utilr  r   r  r   r   datetimer   pathlibr   typingr   r,  __file__r  HEREutilspec_from_file_locationr	   r   r  loaderr  r   r   r   r:  r   r  r  r   r  r   r   module_from_specr4   modulesnameexec_moduler9   rS   r   r   r   r   r   r   r   r   r   r  r
  r  r&  markparametrizer/  r;  rC  rI  rM  rb  ri  r  r  r`  r  r  r  r  r  r  r  r  r!  r&  r,  r/   r:   r8   <module>rK     s2   "        
    H~~~--T$== t t      t   t    t                     NN##D)DII      #T B #$$ $ 	$
 $ $N)d MMM M 	M M 
M(

03

M&MY>55%9&  F$!5!5HB0E*5<P,bBbBJ(*
Z55, Q!		G"G1&
6:&& <<	<<r:   