o
    GEDi                     @   sv  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dZer/edkr9e Zee
  nedkrAe Zned	krIe
 Znd
d edD ZeZejjejjde ee ddd Zejjdd Zdd Zdd Zejjdd Zejjdd Zejjdd Zdd Zdd  Z ejjd!d" Z!ejjd#d$ Z"e#d%kre$d&e%g dS dS )'    N)Mock)gTTS	gTTSError)_main_langs)_extra_langs
TEST_LANGSallmainextrac                 C   s   i | ]}|r||qS  r   ).0lr   r   b/var/www/www-root/data/www/ovozai.pdev.uz/venv/lib/python3.10/site-packages/gtts/tests/test_tts.py
<dictcomp>$   s    r   ,lang)idsc                 C   sN   d}	 dD ]}| d | }t|||dd}|| | jdks$J qdS )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ttsr   r   r   test_TTS(   s   
r   c                  C   sJ   d} d}d}t t t|| |d W d   dS 1 sw   Y  dS )z>Raise ValueError on unsupported language (with language check)xxLorem ipsumTr   r   r   N)pytestraises
ValueErrorr   )r   r   checkr   r   r   test_unsupported_language_check9   s   "r%   c                  C   s>   d} t t t| d W d   dS 1 sw   Y  dS )z$Raise AssertionError on empty string r   N)r!   r"   AssertionErrorr   r'   r   r   r   test_empty_stringC   s   "r)   c                 C   sP   d}t t | d }t|d}|| W d   dS 1 s!w   Y  dS )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   r   r   r   test_no_text_partsJ   s   
"r*   c                  C   sD   t dd} tt | d W d   dS 1 sw   Y  dS )z=Raise TypeError if fp is not a file-like object (no .write())testr'      N)r   r!   r"   	TypeErrorwrite_to_fpr   r   r   r   test_bad_fp_typeV   s   
"r0   c                 C   s2   | d }t dd}|| | jdksJ dS )zSave .mp3 file successfullysave.mp3r+   r'   i  N)r   r   r   r   )r   r   r   r   r   r   	test_save_   s   

r2   c                  C   s6   t dddd} |  d }d|v sJ d|v sJ dS )zget request bodies listr+   comen)r   tldr   r   z%5C%22en%5C%22N)r   
get_bodies)r   bodyr   r   r   test_get_bodiesk   s   r8   c                  C   s.   t d} d| jksJ t  }|jdu sJ dS )zQTest gTTsError internal exception handling
    Set exception message successfullyr+   N)r   msg)error1error2r   r   r   test_msgu   s   r<   c                  C   s   t dd} t| d}|jdksJ t  }t ddd}t||d}|jd	ks'J t d
dd}t ddd}t||d}|jdks@J t  }t ddd}	t||	d}
|
jdksVJ t  }t ddd}t||d}|jdkslJ dS )z+Infer message successfully based on contextinvalid)r5   r/   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   r9   )ttsTLDerrorTLDtts403response403error403tts200response404error200tts500response500error500tts100response100error100r   r   r   test_infer_msg   s6   

rU   c                 C   s^   d}	 d}d}t t | d }t|||d}|| W d   dS 1 s(w   Y  dS )zTest Web Requestsr   r   Fzxx.txtr    N)r!   r"   r   r   r   )r   r   r   r$   r   r   r   r   r   test_WebRequest   s   "rV   c                 C   s   t dd}|jd u sJ d}t d|d}|j|ksJ t ddd}| d }tt || W d    d S 1 s;w   Y  d S )Nr+   r'   g333333?)r   timeoutgư>r1   )r   rW   r!   r"   r   r   )r   r   rW   r   r   r   r   test_timeout   s   
"rX   __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*   r0   r2   r8   r<   rU   rV   rX   __name__r	   __file__r   r   r   r   <module>   sN   
	


	
1

