
    On$j                        d dl Zd dlmc mZ d dlmZmZ d dlm	Z	 d dl
mZ d dlmZ d dlmZmZ d dlmZ d dlmZmZmZmZmZmZmZmZmZmZmZ d	 Zdd
dede dz  defdZ!dddddede de dedz  de"de#fdZ$d Z%d Z&d Z'd Z(d Z)dS )    N)datetimetimezone)
TestClient)Session)get_settings)init_dbreset_db_for_tests)app)ActivityEventAnalyticsImportBatchAnalyticsPostSnapshotContentScriptExternalPostIdea	PostDraftProviderTheme
VideoAssetVideoStatusc                     t                      }d|_        | dz  |_        t          |          }t	          |           |t          t                    fS )Nz	sqlite://storage)r   database_urlstorage_rootr   r	   r   r
   )tmp_pathsettingsengines      Y/home/agent/projects/AutoShorts_Dashboard/backend/tests/test_sprint6_real_data_content.pysetup_test_dbr      sL    ~~H'H$y0HXFv:c??""    external_youtube_idsessionr!   returnc                   t          ddd          }|                     |           |                                  |                     |           t	          ddddd	d
d|j        d|t          j                  }|                     |           |                                  |                     |           |                     t          |j        t          j
        d|                     |                     t          |j        |j        |j        |j        dd                     |                     t          |j        ddd                     |                                  |S )NEveryday Red Flags
   zScam explainers)titleprioritydescription
real_videopackage_real_001prepared_packagez/tmp/video.mp4   zreal-checksum#This Small Fee Can Expose Your Card)candidate_id
package_idsource	file_path	file_sizechecksumworking_titletopic_idseriesr!   statuszYouTube CSV title)video_asset_idproviderr'   external_post_idz$A tiny delivery fee can be the trap.produced)	family_idr9   r0   r'   hookr8   zFake customs fee SMSc   idea)r6   r'   r(   r8   )r   addcommitrefreshr   idr   ready_for_reviewr   r   youtuber   r0   r5   r   )r"   r!   familyvideos       r   create_videorI   !   s   -HYZZZFKKNNOOF!%!" ;#/+  E KKNNOOEKK	H<LTg  {N  O  O  O  P  P  PKK	%(W\Wgot  pC  Jp  yC  D  D  D  E  E  EKKfi/EPR[abbbcccNNLr   Fx   )rH   is_demoviewsexternal_idr'   rH   rK   rL   c                l   t          t          j        t          dddt          j                  d|rdnd||rdnd          }|                     |           |                                  t          t          j        |||r|j	        nd |j
        ||j                  }|                     |           |                                  |                     t          |j	        t          j        |||r|j	        nd |d	d
dd|j        |j
        ||j        d                     |                                  d S )Ni     )tzinfoimporteddemozYoutube 260606)r:   snapshot_atr8   source_labelrK   import_batch_label)r:   r;   r'   r9   rT   rK   rU   (   g	@g333333'@   rising)batch_idr:   r;   r'   r9   rL   views_deltaimpression_ctr_pctretention_proxy_pctsubscribers_deltarS   rT   rK   rU   trend)r   r   rF   r   r   utcrA   rB   r   rD   rT   rU   r   rS   )r"   rM   r'   rH   rK   rL   batchposts           r   add_snapshotrb   =   s    (*:QUWXZ[dldpHqHqHq  {E  ^e  T{  TZ  TZ  k{  EL  kr  aH  ag  ag  xH  I  I  IEKKNN!1KW\y~  nImrmumu  EI  X]  Xj  t{  PU  Ph  i  i  iDKKNNKK%ux(BRepx}  [`  Oj  OT  OW  OW  fj  rw  EG  \_  uy  MN  \a  \m  |A  |N  X_  ty  tL  T\  ]  ]  ]  ^  ^  ^NNr   c                 x   t          |           \  }}t          |          5 }t          |dddd           d d d            n# 1 swxY w Y   |                    d          }|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         }
g }|
|k    }|slt          j        d|fd|
|f          t          j
        |
          t          j
        |          dz  }dd|iz  }t          t          j        |                    d x}
x}}d S )Ndemo123zFixture titleTi  )rM   r'   rK   rL   /api/analytics/video-results   ==z3%(py2)s
{%(py2)s = %(py0)s.status_code
} == %(py5)sresponsepy0py2py5assert %(py7)spy7itemsz%(py1)s == %(py4)spy1py4assert %(py6)spy6)r   r   rb   getstatus_code
@pytest_ar_call_reprcompare@py_builtinslocals_should_repr_global_name	_safereprAssertionError_format_explanationjson)r   r   clientr"   rj   @py_assert1@py_assert4@py_assert3@py_format6@py_format8@py_assert0@py_assert2@py_format5@py_format7s                 r   )test_demo_data_hidden_from_normal_resultsr   H   sF   "8,,NFF	 eGW)?TX`cdddde e e e e e e e e e e e e e ezz899H&3&3&&&&&&&&&&3&&&&&&&&&&&&8&&&&&8&&&&&&&&&&3&&&&&&&&&&&&&&&&&&&&&&&&&&&==??7#)r)#r))))))))))#r)))))#))))r)))))))))))))))))))))))))))))s   AA
Ac                 >   t          |           \  }}t          |          5 }t          |d          }t          |dd|           d d d            n# 1 swxY w Y   |                    d                                          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}||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 S )N	yt_real_1r    zCSV title should be sublinerM   r'   rH   re   rq   r   r'   r.   rg   rr   rs   rv   rw   youtube_titler0   r+   r   r   rI   rb   rx   r   rz   r{   r   r   r   )r   r   r   r"   rH   itemr   r   r   r   r   s              r   .test_display_name_prefers_linked_package_titler   Q   s   "8,,NFF	 iGW+FFFW+=Zbghhhhi i i i i i i i i i i i i i i ::455::<<WEaHD=AAA=AAAAAAAAAAA=AAAAAA=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA A$AA $AAAAAAAAAAA $AAAAAA AAAA$AAAAAAAAAAAAAAAAAAAAAAAAAAAA3!33!33333333333!3333333333!333333333333333333333333333333   %AAAc                    t          |           \  }}t          |          5 }t          |d          }t          |ddd            |j        }d d d            n# 1 swxY w Y   |                    dd|d          }|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                                          d         d         }|d         }d}	||	u }|slt          j        d|fd||	f          t          j        |          t          j        |	          dz  }dd|iz  }t          t          j        |                    d x}x}}	|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 S )Nyt_matchr    zDifferent titler   z/api/analytics/map-post)r;   r9   r   rf   rg   ri   rj   rk   ro   rp   re   rq   r   linkedTisz%(py1)s is %(py4)srs   rv   rw   r0   r+   rr   )r   r   rI   rb   rD   ra   ry   rz   r{   r|   r}   r~   r   r   r   rx   r   )r   r   r   r"   rH   video_idrj   r   r   r   r   r   r   r   r   r   r   s                    r   &test_mapping_by_youtube_video_id_worksr   \   s&   "8,,NFF	 GW*EEEW*<MUYZZZZ8               {{4PZnv;w;w{xxH&3&3&&&&&&&&&&3&&&&&&&&&&&&8&&&&&8&&&&&&&&&&3&&&&&&&&&&&&&&&&&&&&&&&&&&&::455::<<WEaHD>!T!>T!!!!!!!!!!>T!!!!!>!!!!T!!!!!!!!!!!!!!!!!!!!!!!!!!!3!33!33333333333!3333333333!333333333333333333333333333333s   ,AA!Ac                    t          |           \  }}t          |          5 }t          |d          }t          |dd|           d d d            n# 1 swxY w Y   |                    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         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         }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dh}||v }|slt          j        d|fd||f          t          j        |          t          j        |          dz  }	dd|	iz  }
t          t          j
        |
                    d x}x}}d S )Nyt_recor    CSVr   z/api/content/familiessummaryfamilies_countr-   rg   rr   rs   rv   rw   rq   r   scripts_countz!/api/content/recommendations/nextrG   r%   recommended_actionproduce_variantadd_idea)in)z%(py1)s in %(py4)sr   )r   r   r   r"   rH   familiesr   r   r   r   r   recs               r   0test_content_family_and_recommendation_endpointsr   i   s   "8,,NFF	 OGW)DDDW)5NNNNO O O O O O O O O O O O O O O zz1227799HI/05A50A55555555550A5555505555A555555555555555555555555555GQ05A50A55555555550A5555505555A555555555555555555555555555
**8
9
9
>
>
@
@Cx=000=00000000000=000000=00000000000000000000000000000000#$G):J(GG$(GGGGGGGGGGG$(GGGGGG$GGGG(GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGr   c                    t          |           \  }}t          |          5 }|                    t          ddddddi                     |                                 d d d            n# 1 swxY w Y   |                    dd	d
d          }|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         d         }
d
}|
|u }|slt          j        d|fd|
|f          t          j        |
          t          j        |          dz  }dd|iz  }t          t          j        |                    d x}
x}}|                    d                                          d         }|sedddt          j
                    v st          j        |          rt          j        |          ndiz  }t          t          j        |                    |d          d!         }
|
j        }d} ||          }d"}||k    }|st          j        d|fd#||f          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}}d S )'NrH   v1metadata_savedzMetadata savedtokensecret)entity_type	entity_id
event_typelabelpayload_jsonz/api/settingsz&TrueTraceShorts/Analyse/Youtube 260606F)google_drive_analytics_folder	demo_moder   rf   rg   ri   updatedrk   ro   rp   r   r   r   r   rs   rv   rw   z	/api/logsrq   zassert %(py0)srl   logsr   payloadz
[REDACTED])zJ%(py7)s
{%(py7)s = %(py3)s
{%(py3)s = %(py1)s.get
}(%(py5)s)
} == %(py10)s)rt   py3rn   rp   py10zassert %(py12)spy12)r   r   rA   r   rB   patchry   rz   r{   r|   r}   r~   r   r   r   r   rx   )r   r   r   r"   r   r   r   r   r   r   r   r   r   r   r   @py_format1@py_assert6@py_assert9@py_assert8@py_format11@py_format13s                        r    test_settings_and_logs_endpointsr   v   s   "8,,NFF	 GMgRbjz  KR  T\  J]  ^  ^  ^  	_  	_  	_               ll?S{  KP  2Q  2Ql  R  RG%#%#%%%%%%%%%%#%%%%%%%%%%%%7%%%%%7%%%%%%%%%%#%%%%%%%%%%%%%%%%%%%%%%%%%%%<<>>*%k2;e;2e;;;;;;;;;;2e;;;;;2;;;;e;;;;;;;;;;;;;;;;;;;;;;;;;;;::k""''))'2DKKKKKKKKKKKK4KKKKK4KKKKKKKKKKKKKKKK79:!:':!!'**:l:*l::::::::::*l:::::::::!::::'::::*::::l:::::::::::::::::::::::::::::::::::s   >A,,A03A0)*builtinsr|   _pytest.assertion.rewrite	assertionrewriterz   r   r   fastapi.testclientr   sqlmodelr   app.core.configr   app.db.sessionr   r	   app.mainr
   app.models.corer   r   r   r   r   r   r   r   r   r   r   r   strrI   boolintrb   r   r   r   r   r    r   r   <module>r      s%                 ' ' ' ' ' ' ' ' ) ) ) ) ) )       ( ( ( ( ( ( 6 6 6 6 6 6 6 6                               # # # IM   ' 3: Q[    8 `duz  JM   ' 3 s :X\K\ nr   DG    * * *4 4 4
4 
4 
4
H 
H 
H
; 
; 
; 
; 
;r   