
    i              	          d dl Z d dlZd dlmZ d dlmZmZ d dlmZ d dl	m
Z
 	 e j                  j                  d      Zeredk(  r e       Zej                   e
              n?edk(  r e       Zn2ed	k(  r e
       Zn%ej!                  d
      D  ci c]  } | s| | 
 c} ZeZej$                  j&                  ej$                  j)                  dej+                          eej/                                     d               Zej$                  j&                  d        Zd Zd Zej$                  j&                  d        Zej$                  j&                  d        Zej$                  j&                  d        Zd Zd Z ej$                  j&                  d        Z!ej$                  j&                  d        Z"e#dk(  r ejH                  de%g       yyc c} w )    N)Mock)gTTS	gTTSError)_main_langs)_extra_langs
TEST_LANGSallmainextra,lang)idsc                     d}	 dD ]U  }| dj                  |      z  }t        |||d      }|j                  |       |j                         j                  dkD  rUJ  y)z*Test all supported languages and file savezThis is a test)FTztest_{}_.mp3F)textr   slow
lang_checki  N)formatr   savestatst_size)tmp_pathr   r   r   filenamettss         Q/var/www/auto_recruiter/arenv/lib/python3.12/site-packages/gtts/tests/test_tts.pytest_TTSr   (   sh    
 D. .n33D994duE }}&&---.    c                      d} d}d}t        j                  t              5  t        || |       ddd       y# 1 sw Y   yxY w)z>Raise ValueError on unsupported language (with language check)xxLorem ipsumTr   r   r   N)pytestraises
ValueErrorr   )r   r   checks      r   test_unsupported_language_checkr%   9   s@     DDE	z	" 5$Te45 5 5s	   8Ac                  |    d} t        j                  t              5  t        |        ddd       y# 1 sw Y   yxY w)z$Raise AssertionError on empty string r   N)r!   r"   AssertionErrorr   r(   s    r   test_empty_stringr*   C   s/    D	~	& $  s   2;c                     d}t        j                  t              5  | dz  }t        |      }|j	                  |       ddd       y# 1 sw Y   yxY w)zBRaises AssertionError on no content to send to API (no text_parts)zn                                                                                                          ..,
zno_content.txtr(   N)r!   r"   r)   r   r   )r   r   r   r   s       r   test_no_text_partsr,   J   sH    |D	~	& ..o  s   #AAc                      t        d      } t        j                  t              5  | j	                  d       ddd       y# 1 sw Y   yxY w)z=Raise TypeError if fp is not a file-like object (no .write())testr(      N)r   r!   r"   	TypeErrorwrite_to_fpr   s    r   test_bad_fp_typer3   V   s;     F
C	y	!   s   AA
c                     | dz  }t        d      }|j                  |       |j                         j                  dkD  sJ y)zSave .mp3 file successfullysave.mp3r.   r(   i  N)r   r   r   r   )r   r   r   s      r   	test_saver6   _   s@     *$H
F
CHHX ==?""T)))r   c                  ^    t        ddd      } | j                         d   }d|v sJ d|v sJ y)zget request bodies listr.   comen)r   tldr   r   z%5C%22en%5C%22N)r   
get_bodies)r   bodys     r   test_get_bodiesr=   k   s=     FD
1C>>ADT>>t###r   c                  l    t        d      } d| j                  k(  sJ t               }|j                  J y)zQTest gTTsError internal exception handling
    Set exception message successfullyr.   N)r   msg)error1error2s     r   test_msgrB   u   s7     vFVZZ[F::r   c                     t        d      } t        |       }|j                  dk(  sJ t               }t        dd      }t        ||      }|j                  d	k(  sJ t        d
d      }t        dd      }t        ||      }|j                  dk(  sJ t               }t        dd      }	t        ||	      }
|
j                  dk(  sJ t               }t        dd      }t        ||      }|j                  dk(  sJ y)z+Infer message successfully based on contextinvalid)r:   r2   z\Failed to connect. Probable cause: Host 'https://translate.google.invalid/' is not reachablei  aaa)status_codereason)r   responsezI403 (aaa) from TTS API. Probable cause: Bad token or upstream API changesr   F)r   r      bbbz^200 (bbb) from TTS API. Probable cause: No audio stream in response. Unsupported language 'xx'i  ccczL500 (ccc) from TTS API. Probable cause: Upstream API error. Try again later.d   dddz/100 (ddd) from TTS API. Probable cause: UnknownN)r   r   r?   )ttsTLDerrorTLDtts403response403error403tts200response404error200tts500response500error500tts100response100error100s                 r   test_infer_msgr\      s     i FV$Hi	j	j VF3u5KVk:HV	W	W
 t.F3u5KVk:Hk	l	l
 VF3u5KVk:HY	Z	Z
 VF3u5KVk:H<<LLLLr   c                     d}	 d}d}t        j                  t              5  | dz  }t        |||      }|j	                  |       ddd       y# 1 sw Y   yxY w)zTest Web Requestsr   r   Fzxx.txtr    N)r!   r"   r   r   r   )r   r   r   r$   r   r   s         r   test_WebRequestr^      s[     DJDE	y	! h&4E:	  s   %AAc                    t        d      }|j                  J d}t        d|      }|j                  |k(  sJ t        dd      }| dz  }t        j                  t              5  |j                  |       d d d        y # 1 sw Y   y xY w)Nr.   r(   g333333?)r   timeoutgư>r5   )r   r`   r!   r"   r   r   )r   r   r`   r   s       r   test_timeoutra      s     F
C;; G
FG
,C;;'!!! FH
-C*$H	y	!   s   &BB
__main__z-x)&osr!   unittest.mockr   gtts.ttsr   r   
gtts.langsr   	gtts.langr   environgetenvlangsupdatesplit	env_langsmarknetparametrizekeyslistvaluesr   r%   r*   r,   r3   r6   r=   rB   r\   r^   ra   __name__r
   __file__)ls   0r   <module>rx      s   	   $ " " 	jjnn\"
cUlME	LL F]MEG^NE"yy~3!A3IE 43GH. I . 5 5   * * $ $.Mb     " zFKKx ! _ 4s   GG