
    j                     N    d dl Z d dlZd dlZd Zd Zd Zd Zd Zd Zd Z	d	 Z
dS )
    Nc                      ddd}|                     |            |                    dt          j        |                     |S )Nchicho
2026-05-19)subject
local_datefingerprint)update
setdefaultservercanonical_fingerprint)kwargsbases     test_server.pyrecr      sE    |<<DKKOOM6#?#E#EFFFK    c            	          t          ddddddd          } t          dd	d
ddd          }t          j        |           d         dk    sJ t          j        |          d         dk    sJ d S )Nexercisecom.hevy70Min-Maxu   abtypesourceexercise_typetitleminutesstartendcom.google.android.apps.fitness79)   cdr   r   r   r   r    r!   classexplicit_workoutauto_activity)r   r   classify_record)hevyfits     r   +test_classifies_hevy_vs_google_fit_exerciser.      s    JzY`ckntwxxxD
:&GW[egorx{
|
|
|C!$''04FFFFF!#&&w/?BBBBBBr   c            
         t          dddddd          t          dd	d
dddd          t          dddddd          g} t          j        |           \  }}|d         dk    sJ |d         dk    sJ |d         dk    sJ |d         dk    sJ |d         dk    sJ |d         dk    sJ d|d         v sJ d|d         v sJ d S )Ndaily_aggregatehealth_connecti-  ir+  r   i  )r   r   steps
distance_mactive_kcal
total_kcalr   r   r   r   r   z2026-05-19T18:23:32Zz2026-05-19T20:20:51Zr   r"   r#   r$   z2026-05-19T15:24:07Zz2026-05-19T16:06:00Zr'   r2   workout_minutesauto_activity_minutesexercise_minutes   workout_count   auto_activity_count	by_metricr   r   compute_daily_summaryrecordssummary
provenances      r   5test_summary_splits_workout_and_auto_activity_minutesrD      sO   "+;5UZhivz{{{Jd)]`h~  E[  	\  	\  	\$EUYce  nD  J`  	a  	a  	aG
 !6w??GZ7u$$$$$%,,,,*+r1111%&#----?#q((((()Q....
; 77777"j&=======r   c                  N   t          dddddd          } t          dddddd          }t          j        |          }|| d	<   ||d	<   t          j        | |g          \  }}|d
         dk    sJ t	          |d                   dk    sJ |d         d         d         dk    sJ d S )Nr   r1   r#      z2026-05-19T12:00:00Zz2026-05-19T12:20:00Zr'   r"   r   r7   ignoredr;   r   r   )r   r   r   r?   len)legacygooglefprB   rC   s        r   :test_dedup_prefers_named_source_over_legacy_health_connectrL   &   s    j)9WYaw  ~T  U  U  UFj)JZ^hj  sI  Oe  f  f  fF		%f	-	-BF=F= 67GHHGZ*+r1111z)$%%****i #H-1AAAAAAAr   c                      t          ddddd          t          ddd	d
dddd          g} t          j        |           \  }}|d         dk    sJ |d         dk    sJ |d         d	k    sJ |d         d
k    sJ d S )Nr0   r1   iq  r   i  )r   r   r5   r4   r2   	nutritionzcom.myfitnesspal.androidiX  -   F   rF   z2026-05-19T13:00:00Zz2026-05-19T13:10:00Z)r   r   energy_kcal	protein_gcarbs_gfat_gr    r!   caloriesr5   nutrition_kcalrR   r>   )rA   rB   _s      r   7test_nutrition_intake_does_not_mix_with_burned_caloriesrX   3   s    "+;Z[cghhh%?S\^hjrt  }S  Yo  	p  	p  	pG -g66JGQ:$&&&&< D((((#$++++;2%%%%%%r   c            	         t          dddddd          t          ddd	d
dd          g} t          j        |           \  }}|d         dk    sJ |d         dk    sJ |d         d
k    sJ |d         d         d         dk    sJ d S )N
aggregatedr1   is i4  z2026-05-11T22:44:38Zz2026-05-18T22:44:38Z)r   r   r2   r5   period_start
period_endr   r#      z2026-05-11T23:34:38Zz2026-05-12T00:02:12Zr'   r2   r   r5   r7   rG   reasonstale_wide_aggregater>   r@   s      r   %test_legacy_wide_aggregate_is_ignoredr`   ?   s    &6ePUdz  H^  	_  	_  	_$4DRT\r  yO  	P  	P  	PG !6w??GZ7q    < A%%%%*+r1111i #H-1GGGGGGGr   c                    t          j        | dz            }|                    d           |                    t          dt          | dz                       |                                 t	          j                    }t          dddd          t          d	d
ddddd          g}|D ]}t	          j	        |t          j
        d          }|                    d|d         |d         |d         |d         |d         t          d                              |d                   f           |                                 t	          j        |dd           |                    d                                          }|dk    sJ d S )N	health.dbzPRAGMA journal_mode=WALDB_PATHr0   r1   
   rF   )r   r   r2   r3   r   r   r   Lift   z2026-05-19T10:00:00Zz2026-05-19T10:30:00Zr   r   znINSERT INTO raw_data (subject, data_type, record_key, local_date, source, data_json) VALUES (?, ?, ?, ?, ?, ?)r   	data_type
record_keyr   r   jsonrecordr   zSELECT steps, workout_minutes, auto_activity_minutes, exercise_minutes, workout_count FROM daily_summary WHERE subject='chicho' AND date='2026-05-19')rd   rf   r   rf   r;   )sqlite3connectexecutesetattrr   strcloseinit_dbr   _normalize_recordDEFAULT_TIMEZONE
__import__dumpscommit_rebuild_daily_summaryfetchone)tmp_pathmonkeypatchdbrA   rnrows          r   'test_rebuild_summary_writes_new_columnsr   K   s   	K/	0	0BJJ()))	3x+/E+F+FGGGHHJJJ			B"+;2RTUUUJd&Z\dz  AW  	X  	X  	XG  
 
$Q(?JJ


|y\1[>1\?AlOQx[ZdekZlZlZrZrstu}s~ZZ  A	
 	
 	
 	
 IIKKK
!"h===
**  m  n  n  w  w  y  yC$$$$$$$r   c                    |                     t          dt          | dz                       t          j                    }|                    dd           |                    dd                    t          j                   d                                          }t          j        |          }|d         d	k    sJ |d
         dk    sJ |d         dk    sJ |d         dk    sJ d S )Nrc   rb   zINSERT INTO daily_summary (subject, date, steps, total_kcal, workout_minutes, auto_activity_minutes, exercise_minutes, workout_count, auto_activity_count) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?))	r   r   rd        @@rf   (   rP   r;      zSELECT z, z* FROM daily_summary WHERE subject='chicho'r2   rd   r5   r   r6   rf   r7   r   )	rn   r   ro   rq   rm   joinSUMMARY_COLUMNSrx   _summary_dict)ry   rz   r{   r~   r&   s        r   @test_summary_dict_uses_explicit_column_order_for_migrated_schemar   a   s    	3x+/E+F+FGGG			BJJ 	H>   **ltyy)?@@lll
m
m
v
v
x
xCS!!AW:\?f$$$$2%%%%$%++++++r   )osrk   r   r   r.   rD   rL   rX   r`   r   r    r   r   <module>r      s    				    C C C> > >"
B 
B 
B	& 	& 	&	H 	H 	H% % %,, , , , ,r   