o
    id                  
   @   s   d Z ddlZddlZddlZddlZdejd< ejdejejej	e
 ddlmZ ddlmZmZmZ ddlmZ ddlmZ dd	lmZ dd
lmZ ejejdd edZdd Zedkroee  dS dS )zj
Standalone mock E2E test: seeds videos, runs worker, verifies results.
Run: python -m tests.run_mock_e2e
    Ntrue	MOCK_MODE)	EnvConfig)MockDB	VideoTaskWorkerStats)R2Client)AIStudioProvider)OpenRouterProvider)Pipelinez1%(asctime)s [%(levelname)s] %(name)s: %(message)s)levelformatmock_e2ec               	      s
  t ddd} t }t| }tddd}tddd}t }tdddd	td
ddd	tdddd	g}|| t	dt
| d |dddddiI d H  t| ||||d|d}d}	 |dI d H }	|	d u rin;t	dd  t	d|	j d|	j d t	d  ||	I d H }
|
r|d7 }t	d|	j d|
rdnd  q\t	dd  t	d t	d  t	d | d!t
|  t	d"|j  t	d#|j  t	d$|j  t	d%|j  t	d&|j  t	d'|j  t	d(t
|j  t	d)t
|j  td*d+ |jD }t	d,|  |jrNd-d. |jD }t|t
| }t	d/|d0 t	d1t|jd    |t
|ksaJ d2t
| d3| |shJ d4|jdksrJ d5t
|jdks~J d6t	d7 d S )8NTze2e-test-worker)	mock_mode	worker_idfake)api_keyr   mock_telugu_001te   )video_idlanguagesegment_countmock_hindi_002himock_english_003enzSeeded z mock videosaistudiozmock-gputest)configdbr2primary_providerfallback_providerr   statsr   
z<============================================================zProcessing video: z (lang=)   zVideo z: SUCCESSFAILEDz=== E2E TEST SUMMARY ===zVideos processed: /zTotal segments sent: zTotal segments completed: zTotal segments failed: zTotal 429s: zTotal cache hits: zTotal batches: zDB results count: zDB flags count: c                 s   s    | ]}|j d kV  qdS )doneN)status).0v r/   ./home/ubuntu/transcripts/tests/run_mock_e2e.py	<genexpr>R   s    zrun.<locals>.<genexpr>zAll videos marked done: c                 S   s   g | ]}| d dqS )quality_scorer   )get)r-   rr/   r/   r0   
<listcomp>W   s    zrun.<locals>.<listcomp>zAverage quality score: z.3fzSample result keys: z	Expected z processed, got zNot all videos marked donezNo segments completedzNo results in DBz
*** ALL E2E CHECKS PASSED ***)r   r   r   r	   r
   r   r   seed_videosloggerinfolenregister_workerr   claim_videor   r   process_videosegments_sentsegments_completedsegments_failedsegments_429
cache_hitsbatches_completedresultsflagsallvideo_queuesumlistkeys)r   r    r!   primaryfallbackr$   videospipeline	processedtasksuccessall_donequality_scoresavg_qualityr/   r/   r0   run   sp   
 
&rT   __main__)__doc__asynciologgingsysosenvironpathinsertdirnameabspath__file__
src.configr   src.dbr   r   r   src.r2_clientr   src.providers.aistudior	   src.providers.openrouterr
   src.pipeliner   basicConfigINFO	getLoggerr7   rT   __name__r/   r/   r/   r0   <module>   s&    
&
L