
    j	&                    P   d dl mZ d dlZd dlmc mZ d dlZd dl	Z
d dlZd dlmZ d dlmZ d dlZ ee      j$                  Ze
j(                  j+                  dedz        Zg ZeZerej2                  ZeZesddd	 ej6                         v s ej8                  e      r ej:                  e      nd	iz  Zej?                  e       er`d
d	 ej6                         v s ej8                  e      r ej:                  e      nd	 ej:                  e      dz  Z ej?                  e         ejB                  ed       i z  Z"dde"iz  Z# e$ ejJ                  e#            dxZxZZe
j(                  jM                  e      Z'e'ejP                  ejR                  <   ej2                  jU                  e'       ddd#dZ+dd d	 	 	 	 	 	 	 d$dZ,d%dZ-	 	 	 	 	 	 	 	 	 	 d&dZ.d'dZ/d'dZ0d'dZ1d'dZ2d'dZ3ejh                  jk                  dg d      d(d       Z6d'dZ7d'dZ8d'd Z9d'd!Z:d)d"Z;y)*    )annotationsN)Path)Anycontinuous_v3zcontinuous_lifecycle.pyz%(py2)spy2SPECz#%(py6)s
{%(py6)s = %(py4)s.loader
})py4py6zassert %(py9)spy9moderateactivityc                    i ddddddddd	| d
d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dS ) Ndate_of_birthz
1996-08-01equation_sex_basismale	height_cm180	weight_kg80activity_categoryactivity_rationaleu   주 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   기본 조리 가능u   보통      없음)eating_disorder_riskcooking_accessbudget_band
meal_countschedule_constraints r   s    /home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-continuous-lifecycle-observer-v3-e2f1699e/test_continuous_lifecycle.pyanswersr1      s   f 	U 	T	
 	X 	5 	Z 	D 	t 	4 	6B7 	'6B(G 	Vb9 	&2> 	"5  	&26!" 	"5#$ !&0 (-     resolved)statecurrent_indexc          
         g }|dk(  s|rddddg}d|t         j                  |       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_versionr4   answers_digestadvisoryrB   r5   digest)mcanonical_digest)valuer4   r5   rB   records        r0   reconciliationrK   0   s     /1N -#L
 >,,U30 !#&(,
 )&!F ))&1F8Mr2   c                    t               } dt        j                  |       dd}t        j                  ddd|d}dd	t        j                  t        j                  d
dt        j
                  t        j
                  dgddd| t        | d      dgd|i |dt        j
                  dgdgg d g g i i g d}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}}t        j                   j#                  |j%                               j'                         }	|	|d   d   d<   |	|d    d!   d   d<   |S )"Ncustomer_attestation@aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)r4   rD   body_digest   	COMMITTED   
session_id
generationr4   
message_idpayloadAWAITING_ACTIVATION   )r4   rU   rT   sid_hashF0)enabledroute      r5      )r4   cursorr1   rK   consumed_updatescustomerroler]   )	bootstraprd   workflowpublicationoutboxowner_callbackswizardgenerationscardsdrafts
deliveries
activationrh   is notz%(py0)s is not %(py3)stextpy0py3assert %(py5)spy5ri   rW   rO   rj   r   )r1   rG   rH   SESSIONSIDCUSTOMERrK   candidate_attestation_text
@pytest_ar_call_reprcompare@py_builtinslocals_should_repr_global_name	_safereprAssertionError_format_explanationhashlibsha256encode	hexdigest)
rI   rW   ri   snapshotru   @py_assert2@py_assert1@py_format4@py_format6rO   s
             r0   baser   O   s   IE',,U3G iiK +))	
 !&QZZ0MN+,U!D!$
 #"**c*
 ; H> ''(<eQGD4t4t44t))""4;;=1;;=K8CH]I&}56AHXq)$]3Or2   c                    t         j                  |d||d}|| d<   | d   j                  i |dt         j                  dgd       y )NrQ   rS   ri   rj   rd   r[   re   )rG   r{   appendr}   )srU   rV   rW   ri   s        r0   publishr      sS     ii  K #AmhKV+VzQZZQTDUVWr2   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@e2f1699e8586ed3f835eaa2a3eaeaecaf5e52a4ad82aa931caade0ed377077ce==)z1%(py2)s
{%(py2)s = %(py0)s.SUCCESSOR
} == %(py5)srG   rw   r   rz   assert %(py7)spy7@b025a71695b620555f701f1c248545bd343428c430db37b2d8bd16148e0b0b7a)z,%(py2)s
{%(py2)s = %(py0)s.CORE
} == %(py5)s@bd5f44592e95b152cc466446fcbb607df586dc13482d0d3413fed80a476d2a70)z-%(py2)s
{%(py2)s = %(py0)s.WHEEL
} == %(py5)s)rG   	SUCCESSORr   r   r   r   r   r   r   r   COREWHEEL)r   @py_assert4@py_assert3r   @py_format8s        r0   test_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Xr2   c            	     6   t               } | d   j                  ddddi       i | d   dt        j                  dgd	g| 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 )Nri         r4   
collecting)rU   rV   rW   rd   r[   re   rj   "WAIT_MATCHING_CUSTOMER_PUBLICATIONr   zk%(py7)s
{%(py7)s = %(py5)s
{%(py5)s = %(py2)s
{%(py2)s = %(py0)s.classify
}(%(py3)s)
}.status
} == %(py10)srG   r   rw   r   rx   rz   r   py10assert %(py12)spy12)r   updaterG   r}   classifyr   r   r   r   r   r   r   r   r   r   r   r   @py_assert6@py_assert9@py_assert8@py_format11@py_format13s           r0   (test_q22_stale_session_publication_waitsr      s   Am#/F   Xa&W
ajjRUEVWXAhK::G:a=G=G#GG#GGGGG#GGGGGGG1GGG1GGG:GGGGGGaGGGaGGG=GGGGGG#GGGGGGGGGr2   c                    t               } | d   d   }t        |d      | d   d<   dt        t        j	                  |            ddd	}g | 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}}|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 )Nrh   r1   r7   )r4   rK   rM   @bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbr   )r4   rD   rO   clarification_fieldrj         READY_CUSTOMER_CLARIFICATIONr   z.%(py2)s
{%(py2)s = %(py0)s.status
} == %(py5)spromptr   r   r   205z2%(py2)s
{%(py2)s = %(py0)s.message_id
} == %(py5)sz&submit_clarification:activity_categoryz.%(py2)s
{%(py2)s = %(py0)s.action
} == %(py5)s)r   rK   strrG   rH   r   r   r   r   r   r   r   r   r   r   r   rV   action)	r   rI   rW   r   r   r   r   r   r   s	            r0   +test_committed_clarification_is_field_boundr      s   AjM)$E&4U,&OAjM"#'a00782	"G AhKAr3 ZZ]F==:::=:::::=:::::::6:::6:::=:::::::::::%%%%%%%%%%%%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Dr2   c            	        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}}y )N@0000000000000000000000000000000000000000000000000000000000000000ri   rW   rD   rj   r   r   r   r   rG   r   r   r   r   )r   rG   r   r   r   r   r   r   r   r   r   r   r   s           r0   0test_resolved_authority_before_publication_waitsr      s    A4<AmY 012:AhKN9./::G:a=G=G#GG#GGGGG#GGGGGGG1GGG1GGG:GGGGGGaGGGaGGG=GGGGGG#GGGGGGGGGr2   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}||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}}	d}| j                  }||v }|st	        j
                  d|fd||f      t	        j                  |      dt        j                         v st	        j                  |       rt	        j                  |       ndt	        j                  |      dz  }dd|iz  }t        t	        j                  |            d x}x}}y )NREADY_CUSTOMER_ATTESTr   r   r   r   r   r   207r   attestrP   )zv%(py2)s
{%(py2)s = %(py0)s.action
} == %(py12)s
{%(py12)s = %(py6)s
{%(py6)s = %(py4)s.callback
}(%(py8)s, %(py10)s)
}rG   )rw   r   r	   r
   py8r   r   assert %(py14)spy14z,candidate-render-bound Korean summary passedinz.%(py1)s in %(py5)s
{%(py5)s = %(py3)s.detail
}py1rx   rz   )rG   r   r   r   r   r   r   r   r   r   r   r   rV   r   callbackdetail)r   r   r   r   r   r   @py_assert5@py_assert7r   @py_assert11r   @py_format15@py_assert0r   s                 r0   9test_resolved_matching_publication_authorizes_attestationr      s2   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49JV]]J9]JJJJ9]JJJ9JJJJJJVJJJVJJJ]JJJJJJJr2   fault)r9   rF   rU   messageuncommittedc                   t               }| dk(  rd|d   d   d<   d|d   d   d   d<   nC| dk(  rd	|d   d   d
<   d	|d   d   d   d
<   n$| dk(  r	d|d   d<   n| dk(  r	d|d   d<   nd|d   d<   t        j                  } ||      }|j                  }|j                  }d} ||      }| }|s&ddt        j                         v st        j                  t              rt        j                  t              ndt        j                  |      dt        j                         v st        j                  |      rt        j                  |      ndt        j                  |      t        j                  |      t        j                  |      t        j                  |      t        j                  |      dz  }	t        t        j                  |	            d x}x}x}x}x}x}}y )Nr9   r   ri   rW   r   rj   r   rF   @ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffrD   rU   r   r      rV   PREPAREDr4   r   zassert not %(py13)s
{%(py13)s = %(py9)s
{%(py9)s = %(py7)s
{%(py7)s = %(py5)s
{%(py5)s = %(py2)s
{%(py2)s = %(py0)s.classify
}(%(py3)s)
}.status
}.startswith
}(%(py11)s)
}rG   r   )rw   r   rx   rz   r   r   py11py13)r   rG   r   r   
startswithr   r   r   r   r   r   r   )
r   r   r   r   r   r   @py_assert10@py_assert12@py_assert14r   s
             r0   test_mismatch_fails_closedr      s    	A=H-#$9:;F(Ay!"78	(	8@-#$456>(Ay!"23	,	)+-&	)	),-&$.-!zzGz!}G}##G#..G/FG./FGGGGGGGGGGGqGGGqGGGzGGGGGG!GGG!GGG}GGG#GGG.GGG/FGGGGGGGGGGGr2   c                    t               } | d   j                  t        j                  | d   d                t	        j
                  t        j                  d      5  t        j                  |        d d d        t               }t               }d|d   d<   t	        j
                  t        j                  d      5  t        j                  ||       d d d        y # 1 sw Y   jxY w# 1 sw Y   y xY w)	Nrj   r   zduplicate publication)matchr   ri   rU   	regressed)
r   r   copydeepcopypytestraisesrG   LifecycleErrorr   validate_transition)r   abs      r0   9test_duplicate_and_non_monotonic_publications_fail_closedr      s    AhKt}}Qx[^45	q''/F	G	

1 
HAA%'Am\"	q''{	;	a# 
<	; 
H	G
 
<	;s   C<C(C%(C1c                    t               } d| d   d   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}}d}|j                  }||v }|st	        j
                  d|fd||f      t	        j                  |      d
t        j                         v st	        j                  |      rt	        j                  |      nd
t	        j                  |      dz  }dd|iz  }t        t	        j                  |            d x}x}}y )Nr   ri   rW   rO   rj   r   STOP_CUSTOMER_SUMMARY_QUALITYr   r   r   r   r   r   zrender-boundr   r   r   )r   rG   r   r   r   r   r   r   r   r   r   r   r   )	r   r   r   r   r   r   r   r   r   s	            r0   Ftest_candidate_surface_quality_rejects_internal_stale_and_unbound_copyr      s   A19AmY./7AhKN9m,ZZ]F==;;;=;;;;;=;;;;;;;6;;;6;;;=;;;;;;;;;;;*V]]*>]****>]***>******V***V***]*******r2   c                    t               } t        d      }|| d   d<   t        |d      | d   d<   t        j	                  |      }|| d   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                  }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}}d}	|j                   }|	|v }
|
st        j                  d|
fd|	|f      t        j                  |	      dt        j                         v st        j                  |      rt        j                  |      ndt        j                  |      dz  }dd|iz  }t        t        j                  |            d x}	x}
}y )N,   활동 수준: 보통. 주 3회 근력운동r   rh   r1   r_   r`   rK   ri   rW   rD   rj   r   r   r   r   r   r   r   r   zdo-not-attestr   r   r   r   r   )r   r1   rK   rG   rH   r   r   r   r   r   r   r   r   r   r   r   r   )r   rI   rF   r   r   r   r   r   r   r   r   s              r0   3test_clarified_free_text_activity_is_not_attestabler      s   AKLE$AjM)&4U!&LAjM"#&F4:AmY 0128AhKN9./ZZ]F==;;;=;;;;;=;;;;;;;6;;;6;;;=;;;;;;;;;;;==+O+=O++++=O++++++6+++6+++=+++O+++++++&&:&&&&:&&&:&&&&&&&&&&&&&&&&&&&r2   c            	        t               } t        d      }|| d   d<   t        |d      | d   d<   t        j	                  |      }|| d   d	   d
<   || d   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   }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}}|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}}t        j                  d$   }d}||k(  }|slt        j                  d|fd||f      t        j                  |      t        j                  |      dz  }d d!|iz  }t        t        j                  |            d x}x}}y )%Nr   r   rh   r1   r_   r`   rK   ri   rW   rD   rj   r   rr   rt   handoffrv   ry   rz   r   reviserP   r   )zY%(py1)s == %(py11)s
{%(py11)s = %(py5)s
{%(py5)s = %(py3)s.callback
}(%(py7)s, %(py9)s)
}rG   )r   rx   rz   r   r   r   zassert %(py13)sr   
next_fieldr.   z%(py1)s == %(py4)sr   r	   assert %(py6)sr
   
next_valuer)   )r   r1   rK   rG   rH   candidate_revision_handoffr   r   r   r   r   r   r   r   r   FIELDS)r   rI   rF   r   r   r   r   r   r   r   r   r   r   @py_format12@py_format14r   @py_format5@py_format7s                     r0   Etest_normal_customer_revision_reopens_only_last_field_with_same_valuer     s   AKLE$AjM)&4U!&LAjM"#&F4:AmY 0128AhKN9./**1-G7$7$77$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8< :$:: $::::: $:::: :::$::::::::< ,H, H,,,, H,,, ,,,H,,,,,,,88B<111<11111<1111<11111111111r2   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)rw   r   r	   r
   r   r   r   r   r_   previous_event_sha256r   event_sha256r  r  r  r
   )rG   append_event	read_text
splitlinesjsonloads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                    r0   .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.)r   r   returndict[str, object])rI   r  r4   r   r5   intr  r  )r  dict[str, Any])
r   r!  rU   r   rV   r   rW   r  r  None)r  r"  )r   r   r  r"  )r  r   r  r"  )<
__future__r   builtinsr   _pytest.assertion.rewrite	assertionrewriter   r   importlib.util	importlibsyspathlibr   typingr   r   __file__parentHEREutilspec_from_file_locationr   r   r   loaderr   r   r   r   @py_format3r   r  _format_boolopr   @py_format10r   r   module_from_specrG   modulesnameexec_moduler1   rK   r   r   r   r   r   r   r   markparametrizer   r   r   r   r  r  r/   r2   r0   <module>r<     s   "     
   H~~~--T55 t t      t   t    t                     NN##D)DII       * 8 /9q(+IL>2jXX#&X47XBSX	XYHE$HK HHH"	$+'2 Gr2   