
    ҫfi                     6   d dl Z d dlZd dlmZmZmZ d dlmZ d dlZd dlZd dl	m
Z
 ej                  j                  d        Zej                  j                  d        Zej                  j                  ej                  j                  d      d	               Zy)
    N)BrowserContextPage
Playwright)	TikTokApi)stealth_asyncc            	      ,  K   dgdt         dt        ffd} t               4 d {   }|j                  ddt	        j
                  dd      d| 	       d {    d
   dk(  sJ d d d       d {    y 7 Q7 !7 	# 1 d {  7  sw Y   y xY ww)NFpreturnc                    K   t        j                         }|j                  }| j                  j	                  |d       d {   }dd<   |S 7 w)NFheadlessTr   )tempfileTemporaryDirectorynamechromiumlaunch_persistent_context)r	   user_data_dir_tempdiruser_data_dirctxcontext_created_in_factorys       [/home/homepc/tiktok-worker/venv/lib/python3.12/site-packages/tests/test_custom_launchers.pybrowser_context_factoryz=test_browser_context_factory.<locals>.browser_context_factory   sT      ( ; ; =-22JJ88QV8WW(,"1%
 Xs   AAAA      TIKTOK_BROWSERr   )num_sessionssleep_afterbrowserr   r   r   T)r   r   r   create_sessionsosgetenv)r   apir   s     @r   test_browser_context_factoryr#      s      #(   { 5 5c!!II.
;$; " 
 	
 	
 *!,4445 5 5	
5 5 5 5V   $BA9B.A?A;A?(B3A=4B;A?=B?BBBBc            	      ,  K   dgdt         dt        ffd} t               4 d {   }|j                  ddt	        j
                  dd      d| 	       d {    d
   dk(  sJ d d d       d {    y 7 Q7 !7 	# 1 d {  7  sw Y   y xY ww)NFr   r
   c                    K   | j                          d {   }|j                  d       d {   }dd<   |S 7 $7 w)Nzhttps://tiktok.comTr   )new_pagegoto)r   page_page_created_in_factorys      r   page_factoryz'test_page_factory.<locals>.page_factory'   s@     \\^#))011%)" $1s   A <A >A A r   r   r   r   )r   r   r   r   r,   r   T)r   r   r   r   r    r!   )r,   r"   r+   s     @r   test_page_factoryr-   "   s       %g 4  { 2 2c!!II.
;% " 
 	
 	
 'q)T1112 2 2	
2 2 2 2r$   znot enabled for TikTokAPI CI/CD)reasonc            	      @  K   ddl m dt        dt        ffd} dt        dt        fd}t               4 d {   }|j                  dd	t        j                  d
d      d||        d {    d d d       d {    y 7 H7 7 	# 1 d {  7  sw Y   y xY ww)Nr   )$make_async_playwright_solver_contextr	   r
   c                 \   K    | t         j                  d   d       d {   }|S 7 w)NAPI_KEYFr   )r    environ)r	   r   r0   s     r   captcha_solver_context_factoryzQtest_custom_login_flow_with_captcha_solve.<locals>.captcha_solver_context_factoryA   s2     8rzz)$u
 
 

s    ,*,r   c                   K   | j                          d {   }t        |       d {    |j                  d       d {   }t        j                  d       d {    |j                  d      j                  t        j                  d          d {    t        j                  d       d {    |j                  d      j                  t        j                  d          d {    t        j                  d       d {    |j                  d      j                          d {    t        j                  d       d {    |S 7 @7 07 7 7 7 7 v7 [7 67 w)	Nz1https://www.tiktok.com/login/phone-or-email/email   z)xpath=//input[contains(@name,"username")]TIKTOK_USERNAME   PasswordTIKTOK_PASSWORDz,//button[contains(@data-e2e,"login-button")])r'   r   r(   asynciosleeplocatortyper    r3   get_by_placeholderclick)r   r)   r*   s      r   login_page_factoryzEtest_custom_login_flow_with_captcha_solve.<locals>.login_page_factoryG   s$    \\^#D!!!))OPPmmAllFGLLJJ()
 	
 	
 mmA%%j166rzzBS7TUUUmmAllIJPPRRRmmA $!P	
 	URs   E-EE-EE-EE-E 8E-E!E-5E#68E-.E%/E-E'&E-2E)3E-E+E-E-E-E-!E-#E-%E-'E-)E-+E-r   r   r   r   F)r   r   r   r   r,   r   )	tiktok_captcha_solverr0   r   r   r   r   r   r    r!   )r4   rA   r"   r0   s      @r   )test_custom_login_flow_with_captcha_solverC   8   s      K
 ~ n   { 
 
c!!II.
;+$B " 
 	
 	

 
 
	

 
 
 
sV   7BBB/B	-B.B	2B=B>BB	B	BBBB)r   r;   playwright.async_apir   r   r   r   r    pytestTikTokApi.stealth.stealthr   markr#   r-   skiprC        r   <module>rK      s      A A  	  3 5 5, 2 2* :;$
 < $
rJ   