Ë
    F·j  ã            	       ó¬  — 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         úa/var/www/html/ai-video-generator/backend/venv/lib/python3.12/site-packages/gtts/tests/test_tts.pyÚtest_TTSr   (   sh   € ð
 €DØ.Øò .ˆØ˜n×3Ñ3°DÓ9Ñ9ˆä˜ 4¨d¸uÔ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Ü�$˜T¨eÕ4÷5÷ 5ñ 5ús	    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Ø‡H�HˆXÔð �=‰=‹?×"Ñ" 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Ô
1€CØ�>‰>Ó˜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Ø�V—Z‘ZÒÐÐä‹[€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ô ‹V€FÜ 3¨uÔ5€KÜ˜V¨kÔ:€Hà�‰ØVò	Wðð	Wô
 �t¨Ô.€FÜ 3¨uÔ5€KÜ˜V¨kÔ:€Hà�‰Økò	lðð	lô
 ‹V€FÜ 3¨uÔ5€KÜ˜V¨kÔ:€Hà�‰ØYò	Zðð	Zô
 ‹V€FÜ 3¨uÔ5€KÜ˜V¨kÔ:€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Ñ&ˆä˜ 4°EÔ:ˆØ�‰�Ô÷	÷ ñ ú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Ü
�F GÔ
,€CØ�;‰;˜'Ò!Ð!Ð!ô �F HÔ
-€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¿  ðã 	Û Ý ç $Ý "Ý "ðð 	‡j�j‡n�n�\Ó"€Ù
ˆc�UŠlÙ‹M€EØ	‡L�L‘“Õ ØˆF‚]Ù‹M�EØˆG‚^Ù‹N�Eà"Ÿy™y¨›~Ö3˜!²��A‘Ò3€IØ€Eð ‡�‡�Ø‡�×Ñ˜ §¡£±4¸¿¹»Ó3GÐÓHñ.ó Ió ð.ð ‡�‡�ñ5ó ð5òòð ‡�‡�ñó ðð ‡�‡�ñ*ó ð*ð ‡�‡�ñ$ó ð$òò.Mðb ‡�‡�ñó ðð  ‡�‡�ñó ðð" ˆzÒØ€F‡K�K��xÐ Õ!ð ùò_ 4s   ÂGÂG