
    $jN*                        d dl Zd dlmc mZ d dlZd dl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 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 d d
lm Z  d Z!ddZ"d Z#d Z$d Z%d Z&d Z'd Z(d Z)d Z*d Z+d Z,d Z-d Z.d Z/dS )    N)datetimetimezone)Path)
TestClient)Session)get_settings)init_dbreset_db_for_tests)app)AnalyticsImportBatchAnalyticsPostSnapshotExternalPostProviderTheme
VideoAssetVideoStatus)mapping_candidates_forc                     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      Z/home/agent/projects/AutoShorts_Dashboard/backend/tests/test_sprint7_csv_website_bridge.pysetup_test_dbr      sL    ~~H'H$y0HXFv:c??""    Real CSV Title*   c                 >    d| d|  d| d                                 S )Nu   Videos,Videotitel,Veröffentlichungszeitpunkt des Videos,Dauer,Aufrufe,Wiedergabezeit (Stunden),Abonnenten,Impressionen,Klickrate der Impressionen (%)
Gesamt,,,,z,0.1,0,10,1.0
yt_real,z,"Jun 5, 2026",39,z,0.07,1,10,2.5
)encode)titleviewss     r   	csv_videor$      sJ    JJ JJ J27J J JKQ688Tr   c                      dS )Ns   Datum,Aufrufe
2026-06-05,42
 r&   r   r   	csv_dailyr'      s    ,,r   c                      dS )Ns   Datum,Videos,Videotitel,Veröffentlichungszeitpunkt des Videos,Dauer,Aufrufe
2026-06-05,yt_real,Real CSV Title,Jun 5, 2026,39,42
r&   r&   r   r   	csv_chartr)   #   s     X  Xr   c                    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}||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 )Nz/api/settingsr   google_drive_analytics_folderz'TrueTraceShorts/Analysen/260606 Youtube==z%(py1)s == %(py4)spy1py4assert %(py6)spy6youtube_analytics_import_folderzstorage/imports/youtube/260606website_branchzwebsite-mvp-v0)r   getjson
@pytest_ar_call_reprcompare	_safereprAssertionError_format_explanation)	r   _clientr   @py_assert0@py_assert3@py_assert2@py_format5@py_format7s	            r   'test_settings_use_correct_sprint7_pathsrD   '   sE   h''IAvzz/**//11*=H34a8aa48aaaaaaaaaaa48aaaaaa4aaaa8a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56Z:ZZ6:ZZZZZZZZZZZ6:ZZZZZZ6ZZZZ:ZZZZZZZZZZZZZZZZZZZZZZZZZZZZ$%9)99%)99999999999%)999999%9999)999999999999999999999999999999r   c                    t          |           \  }}| dz  }|                                 |dz                      t          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}||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}||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         }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         }||v }|slt          j        d|fd ||f          t          j        |          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# |
d$         D             }t          |          }|sd%d&t          j	                    v st          j
        t                    rt          j        t                    nd&t          j        |          t          j        |          d'z  }t          t          j        |                    d x}}|                    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,         }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}||u }|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importszopaque-google-file-id.csv#This Small Fee Can Expose Your Cardx   ,/api/analytics/import/youtube-folder?folder=&source_label=Youtube%20260606   r,   z3%(py2)s
{%(py2)s = %(py0)s.status_code
} == %(py5)sresponsepy0py2py5assert %(py7)spy7batchsource_labelYoutube 260606r.   r/   r2   r3   is_demoFisz%(py1)s is %(py4)sstatusimported_with_warningscreated_snapshots   Tabellendatenrecognized_filesinz%(py1)s in %(py4)sGesamtwertemissing_filesc              3      K   | ]}d |v V  	dS )zGesamtwerte.csv missingNr&   ).0warnings     r   	<genexpr>z\test_youtube_folder_imports_id_named_tabellendaten_with_optional_warnings.<locals>.<genexpr>=   s(      TT(G3TTTTTTr   warningsz,assert %(py4)s
{%(py4)s = %(py0)s(%(py2)s)
}anyrO   rP   r1   /api/analytics/video-resultsitemsr   r"   r#   )r   mkdirwrite_bytesr$   poststatus_coder8   r9   @py_builtinslocals_should_repr_global_namer:   r;   r<   r7   rk   r6   r   r=   r>   folderrM   @py_assert1@py_assert4r@   @py_format6@py_format8bodyr?   rA   rB   rC   resultss                   r   Itest_youtube_folder_imports_id_named_tabellendaten_with_optional_warningsr~   /   sV   h''IAv	!F
LLNNN))66yAfhk7l7lmmm{{p&pppqqH&3&3&&&&&&&&&&3&&&&&&&&&&&&8&&&&&8&&&&&&&&&&3&&&&&&&&&&&&&&&&&&&&&&&&&&&==??D=(<,<<(,<<<<<<<<<<<(,<<<<<<(<<<<,<<<<<<<<<<<<<<<<<<<<<<<<<<<<=#,u,#u,,,,,,,,,,#u,,,,,#,,,,u,,,,,,,,,,,,,,,,,,,,,,,,,,,=">&>>"&>>>>>>>>>>>"&>>>>>>">>>>&>>>>>>>>>>>>>>>>>>>>>>>>>>>>#$))$))))))))))$)))))$)))))))))))))))))))))))))))))))6d#566?66666666666?666666?666666666666666666666666666666661D11=11111111111=111111=11111111111111111111111111111111TT4
CSTTTT3TTTTTTTTTTTTTTTT3TTTTT3TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTjj788==??HG1: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G1:g%#%#%%%%%%%%%%#%%%%%%%%%#%%%%%%%%%%%%%%%%%%%%%%%%%%%1:i )E) E)))))))))) E))))) ))))E)))))))))))))))))))))))))))))r   c                    t          |           \  }}| dz  }|                                 |dz                      t                                 |                    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         }|
|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 )NrF   260606_Gesamtwerte.csvrI   rJ   i  r,   rL   rM   rN   rR   rS   zTabellendaten CSV is requireddetailmessagera   rc   r/   r2   r3   )r   ro   rp   r'   rq   rr   r8   r9   rs   rt   ru   r:   r;   r<   r7   )r   r=   r>   rw   rM   rx   ry   r@   rz   r{   r?   rA   rB   rC   s                 r   0test_youtube_folder_blocks_without_tabellendatenr   D   s   h''IAv	!F
LLNNN&&33IKK@@@{{p&pppqqH&3&3&&&&&&&&&&3&&&&&&&&&&&&8&&&&&8&&&&&&&&&&3&&&&&&&&&&&&&&&&&&&&&&&&&&&*Rhmmooh.G	.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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Rr   c                    t          |           \  }}| dz  }|                                 |dz                      t          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}||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         }||v }|slt          j        d|fd||f          t          j        |          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 S )NrF   
opaque.csvzHeader Detected	   z,/api/analytics/youtube-folder-status?folder=rK   r,   rL   rM   rN   rR   rS   
recognizedr_   	file_namer.   r/   r2   r3   rd   missingra   rc   Diagrammdaten)r   ro   rp   r$   r6   rr   r8   r9   rs   rt   ru   r:   r;   r<   r7   )r   r=   r>   rw   rM   rx   ry   r@   rz   r{   r|   r?   rA   rB   rC   s                  r   Btest_youtube_folder_status_reports_recognized_missing_and_warningsr   N   sY   h''IAv	!F
LLNNNl''	2CQ(G(GHHHzzQQQRRH&3&3&&&&&&&&&&3&&&&&&&&&&&&8&&&&&8&&&&&&&&&&3&&&&&&&&&&&&&&&&&&&&&&&&&&&==??Do.{;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KKKKKKKKKKKKK+DO+=O++++++++++=O+++++=++++O+++++++++++++++++++++++++++-d9o-?o----------?o-----?----o-----------------------------r   c           
         | dz  }| dz  }|                                  |                                  |dz                      t          dd                     t          t                                                    j        d         dz  dz  }t          j        d	t          |          d
t          |          dt          |          ddgddd          }t          j        |j                  }|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z  }|j        } |            }|sddt'          j                    v st          j        |          rt          j        |          ndt          j        |          t          j        |          dz  }	t!          t          j        |	                    d x}}|j        } |            }d}||z  }|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        |          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}x}x}}d S )Nsourcetargetzgoogle-file-id.csvzCanonical Title7      scriptszcanonicalize_youtube_csvs.pypythonz--source-dirz--target-dirz--date-prefix260606T)textcapture_outputcheckr   r_   r,   r.   r/   r2   r3   260606_Tabellendaten.csvzAassert %(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.exists
}()
}	canonicalrl   )z%(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.read_bytes
}()
} == %(py13)s
{%(py13)s = %(py11)s
{%(py11)s = (%(py6)s / %(py8)s).read_bytes
}()
})rO   rP   r1   r3   py8py11py13zassert %(py15)spy15)ro   rp   r$   r   __file__resolveparents
subprocessrunstrr7   loadsstdoutr8   r9   r:   r;   r<   existsrs   rt   ru   
read_bytes)r   r   r   scriptresultreportr?   r@   rA   rB   rC   r   rx   @py_assert7@py_assert9@py_assert10@py_assert12@py_assert5@py_format14@py_format16s                       r   0test_canonicalizer_copies_id_named_csv_by_headerr   [   s    F F
LLNNN
LLNNN""//	:KR0P0PQQQ(^^##%%-a09<?]]F^	3v;;F^SQW[[Zikst	  F Z&&F,0: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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33I99Q!!Q/CQf/C&CQ&C%OQ%O%O%Q%QQ!%QQQQQQQQQQQ!%QQQQQQQQQQQQQ9QQQQQ9QQQQQQQQQQ!QQQQQQQQQQQfQQQQQfQQQQQQ/CQQQQ%OQQQQ%QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQr   c                    t          |           \  }}| dz  }|                                 |dz                      t                                 |dz                      t	                                 |dz                      t          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}||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         }|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}||u }|slt          j	        d|fd ||f          t          j        |          t          j        |          dz  }dd|iz  }t          t          j        |                    d x}x}}d S )!NrF   z260606_Diagrammdaten.csvr   r   rG   rH   rI   rJ   rK   r,   rL   rM   rN   rR   rS   rT   rU   rV   r.   r/   r2   r3   r]   r^   rm   rn   r   r"   rW   FrX   rZ   )r   ro   rp   r)   r'   r$   rq   rr   r8   r9   rs   rt   ru   r:   r;   r<   r7   r6   rv   s                   r   ?test_youtube_folder_imports_exact_three_real_files_and_not_demor   o   sy   h''IAv	!F
LLNNN((55ikkBBB&&33IKK@@@((55i@egj6k6klll{{p&pppqqH&3&3&&&&&&&&&&3&&&&&&&&&&&&8&&&&&8&&&&&&&&&&3&&&&&&&&&&&&&&&&&&&&&&&&&&&==??D=(<,<<(,<<<<<<<<<<<(,<<<<<<(<<<<,<<<<<<<<<<<<<<<<<<<<<<<<<<<<#$))$))))))))))$)))))$)))))))))))))))))))))))))))))))jj788==??HG1: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G1:i )E) E)))))))))) E))))) ))))E)))))))))))))))))))))))))))))r   c                     t          d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         }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         }||v }|slt          j        d|fd||f          t          j        |          t          j        |          d
z  }dd|iz  }t	          t          j        |                    d x}x}}t          d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         }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          d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         }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 )Nu,   Your Page Will Be Deleted? Don’t Click YetjBVo4l5vdEY   )limitr   
confidencehighr,   r.   r/   r2   r3   website_slugfake-page-deletion-warningzYouTube video IDreasonra   rc   z This Delivery Fee Text Is a TrapziDqRkqmL-QYzdelivery-sms-trapz"Never Read This Bank Code Out LoudQXqtLy7r4kccandidate_idzerf-003-bank-code-scam)r   r8   r9   r:   r;   r<   )website_candidater?   r@   rA   rB   rC   markdownaudits           r   Ttest_mapping_sources_match_website_candidate_markdown_and_upload_audit_by_youtube_idr      s   ./]_ltuvvvQ-77-7777777777-77777-7777777777777777777777777777777Q/O3OO/3OOOOOOOOOOO/3OOOOOO/OOOO3OOOOOOOOOOOOOOOOOOOOOOOOOOOO?!21!5h!??!???????????!??????????!????????????????????????????%&H-_`aaaHA;|$..$..........$.....$...............................A;~&=*==&*===========&*======&====*============================"#G^_```E8L!+V+!V++++++++++!V+++++!++++V+++++++++++++++++++++++++++8N#?'??#'???????????#'??????#????'??????????????????????????????r   c           	         t          |           \  }}| dz  }|                                 d                                }|dz                      |           |j        }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        |          t          j        |          t          j        |          t          j        |	          d
z  }dd|iz  }t          t          j        |                    d x}x}x}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         }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         }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         }t!          d |D                       }|d          }|s:d!d"t          j        |          iz  }t          t          j        |                    d }|d#         }|s:d!d"t          j        |          iz  }t          t          j        |                    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!          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 S )*NrF   up  Videos,Videotitel,Veröffentlichungszeitpunkt des Videos,Dauer,Aufrufe,Wiedergabezeit (Stunden),Abonnenten,Impressionen,Klickrate der Impressionen (%)
Gesamt,,,,121,0.1,0,10,1.0
jBVo4l5vdEY,Your Page Will Be Deleted? Don’t Click Yet #cybersecurity #onlinesafety,"Jun 5, 2026",39,80,0.07,1,10,2.5
unknown123,Very Fuzzy Unknown Title,"Jun 5, 2026",39,41,0.07,0,10,2.5
r   rI   rJ   rK   r,   )zl%(py8)s
{%(py8)s = %(py6)s
{%(py6)s = %(py2)s
{%(py2)s = %(py0)s.post
}(%(py4)s)
}.status_code
} == %(py11)sr>   )rO   rP   r1   r3   r   r   zassert %(py13)sr   z /api/analytics/auto-link-previewcountr^   r.   r/   r2   r3   rn   r   external_post_idr   z(/api/analytics/auto-link-high-confidencelinked_countz/api/analytics/simplemappinglinkedunlinkedrm   c              3   2   K   | ]}|d          dk    |V  dS )
youtube_idr   Nr&   rg   items     r   ri   zLtest_auto_link_preview_and_bulk_link_high_confidence_only.<locals>.<genexpr>   s1      VVt$|2D2U2Ud2U2U2U2UVVr   topic_titleassert %(py1)sr0   script_titler   r   c              3   2   K   | ]}|d          dk    |V  dS )r   
unknown123Nr&   r   s     r   ri   zLtest_auto_link_preview_and_bulk_link_high_confidence_only.<locals>.<genexpr>   s1      RRDtL/A\/Q/Q4/Q/Q/Q/QRRr   FrX   rZ   )r   ro   r!   rp   rq   rr   r8   r9   rs   rt   ru   r:   r;   r<   r6   r7   next)r   r=   r>   rw   csvrx   r@   r   r   r   r   @py_format12r   previewr?   rA   rB   rC   r   simpler}   
linked_row@py_format2unknowns                           r   9test_auto_link_preview_and_bulk_link_high_confidence_onlyr      s   h''IAv	!F
LLNNN	T fhh  l'',,,;  Alflll  A;;lmm  Amy  A  ~A  Ay  ~A  A  A  A  A  A  A  A  A  A  Ay  ~A  A  A  A  A  A  A  A  A  A  A  A  A6  A  A  A  A  A6  A  A  A  A  A  A;  A  A  A  Al  A  A  A  Am  A  A  A  Ay  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jj;<<AACCG7 q q          q         q                           7A12CmC2mCCCCCCCCCC2mCCCCC2CCCCmCCCCCCCCCCCCCCCCCCCCCCCCCCC[[CDDIIKKF.!&Q&!Q&&&&&&&&&&!Q&&&&&!&&&&Q&&&&&&&&&&&&&&&&&&&&&&&&&&&ZZ/005577F)X&+!+&!++++++++++&!+++++&++++!+++++++++++++++++++++++++++)Z(-A-(A----------(A-----(----A---------------------------jj788==??HGVVwVVVVVJm$$$$$$$$$$$$$$$$$$$$$$$$$n%%%%%%%%%%%%%%%%%%%%%%%%%n%E)EE%)EEEEEEEEEEE%)EEEEEE%EEEE)EEEEEEEEEEEEEEEEEEEEEEEEEEEERRGRRRRRG8%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%r   c                 H   t          |           \  }}|                    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	}
|
|	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}
}|	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 S )N/api/website/statusrK   r,   rL   rM   rN   rR   rS   	auto_pushra   )z%(py1)s in %(py3)sr|   )r0   py3zassert %(py5)srQ   FrX   rZ   r/   r2   r3   )r   r6   rr   r8   r9   rs   rt   ru   r:   r;   r<   r7   )r   r=   r>   rM   rx   ry   r@   rz   r{   r|   r?   rA   @py_format4rB   rC   s                  r   5test_website_status_shows_pending_update_without_pushr      s   h''IAvzz/00H&3&3&&&&&&&&&&3&&&&&&&&&&&&8&&&&&8&&&&&&&&&&3&&&&&&&&&&&&&&&&&&&&&&&&&&&==??D;$;$;$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%r   c                 	   t          |           \  }}t          |          5 }t          d          }t          ddddddd	|j        t
          j        
	  	        }t          t          j	        ddd          }|
                    |           |
                    |           |
                    |           |                                 |                    |           |                    |           |                    |           t          t          j	        dd	dd          }t          |j        t          j	        dd	dddt          j        t"          j                            }|
                    |           |
                    |           |                                 |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  }t7          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  }t7          t+          j        |                    d x}x}}|                    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  }t7          t+          j        |                    d x}x}}|                    d'                                          d(         }g }||k    }|slt+          j        d|fd ||f          t+          j        |          t+          j        |          d!z  }d"d#|iz  }t7          t+          j        |                    d x}x}}d S ))NzEveryday Red Flags)r"   v1p1prepared_package
/tmp/v.mp4r^   c1zPrepared Package)	r   
package_idr   	file_path	file_sizechecksumworking_titletopic_idr[   rV   Fimported)providerrU   rW   r[   yt_unlinked)r   r   r"   rU   rW   
   )batch_idr   r   r"   r#   rU   rW   snapshot_atz/api/analytics/map-post-family)r   r   )r7   rK   r,   rL   rrN   rR   rS   rq   mapping_statusfamily_onlyr.   r/   r2   r3   z/api/analytics/ignore-postznot relevant)r   r   z/api/analytics/unlinked-postsrn   )r   r   r   r   idr   ready_for_reviewr   r   youtubeaddcommitrefreshr   r   r   nowr   utcrq   rr   r8   r9   rs   rt   ru   r:   r;   r<   r7   r6   )r   r   r>   sessionfamilyvideorT   rq   snap	family_idr   rx   ry   r@   rz   r{   r?   rA   rB   rC   s                       r   &test_mapping_family_and_ignore_actionsr     s   "8,,NFF	 G1222FXdp|}  IM  ]o  z@  zC  LW  Lh  i  i  i$h.>M]glu  A  A  AFW[[///U1C1C1CW^^EUEUEUW^WfWfgmWnWnWnpwpp  AF  qG  qG  qG  IP  IX  IX  Y^  I_  I_  I_X%5]o  O  Y^  _  _  _$ehAQdq  zL  TV  eu  D  RZ  R^  _g  _k  Rl  Rl  m  m  mD7;;t,,,gnn.>.>.>I	               	4P]kt;u;uvvA=C=C=C11=C6688F,->>->>>>>>>>>>->>>>>->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>0Mes7t7tuuA=C=C=C11=C::566;;==gFL"LF"LLLLLLLLLLF"LLLLLFLLLL"LLLLLLLLLLLLLLLLLLLLLLLLLLLLLs   FF::F>F>c                 p   t          |           \  }}t          |          5 }t          dddddddt          j                  }|                    |           |                                 |                    |           |j        }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| 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}	||	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 }	||	u }|slt          j        d|fd||	f          t          j        |          t          j        |	          dz  }dd|iz  }t#          t          j        |                    d x}x}}	|d         }|s:dd t          j        |          iz  }t#          t          j        |                    d }d S )!Nzerf-027-small-feer   r   r   r^   web1zSmall delivery fee scam)r   r   r   r   r   r   r   r[   r   rK   r,   rL   r[   rN   rR   rS   z/api/website/companions/z/prepare-payloadrM   payloadslugzsmall-delivery-fee-scamr.   r/   r2   r3   videoUrlrX   rZ   	checklistr   r0   )r   r   r   r   r   r   r   r   r   r6   rr   r8   r9   rs   rt   ru   r:   r;   r<   rq   r7   )r   r   r>   r   r  video_idr[   rx   ry   r@   rz   r{   rM   r  r?   rA   rB   rC   r   s                      r   'test_website_status_and_prepare_payloadr     s   "8,,NFF	 ZG(;Ugs  LM  X^  nG  P[  Pl  m  m  mEGNN,,,gooe.D.D.DQVQYhZ Z Z Z Z Z Z Z Z Z Z Z Z Z Z ZZ-..F$$$$$$$$$$$$$$$$$$$$$$$$6$$$$$6$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$${{PhPPPQQH&3&3&&&&&&&&&&3&&&&&&&&&&&&8&&&&&8&&&&&&&&&&3&&&&&&&&&&&&&&&&&&&&&&&&&&&mmooi(G6?777?77777777777?777777?77777777777777777777777777777777:&$&$&&&&&&&&&&$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&;s   A'BBB)r   r   )0builtinsrs   _pytest.assertion.rewrite	assertionrewriter8   r7   r   r   r   pathlibr   fastapi.testclientr   sqlmodelr   app.core.configr   app.db.sessionr	   r
   app.mainr   app.models.corer   r   r   r   r   r   r   app.services.analytics_mappingr   r   r$   r'   r)   rD   r~   r   r   r   r   r   r   r   r  r  r&   r   r   <module>r     s	                     ' ' ' ' ' ' ' '       ) ) ) ) ) )       ( ( ( ( ( ( 6 6 6 6 6 6 6 6                         A A A A A A# # #T T T T- - -X X X: : :* * **S S S
. 
. 
.R R R(* * *"@ @ @& & &:& & &M M M&         r   