o
    Þ­j‹  ã                   @   sÎ  d dl Z d dlZd dlZd dlmZ d dlmZ d dlZd dlm	Z	 e 
d¡Zg e_	 d9dd„Zd9dd	„Zd
d„ Z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e jjdd„ ƒZej e¡ZdZdZdZej  edd¡Z!dZ"ej  edd ¡Z#	 d!d"„ Z$e jjd#d$„ ƒZ%e jjd%d&„ ƒZ&e jjd'd(„ ƒZ'e jjd)d*„ ƒZ(e jjd+d,„ ƒZ)e jjd-d.„ ƒZ*e jjd/d0„ ƒZ+e jjd1d2„ ƒZ,e jjd3d4„ ƒZ-e jjd5d6„ ƒZ.e/d7kråe  0d8eg¡ dS dS ):é    N)Ú	CliRunner)Útts_cli)Ú
LogCaptureÚgttsc                 C   s   t ƒ  t| |¡S ©N©r   Úinvoker   ©ÚargsÚinput© r   úP/var/www/html/CropPilot/venv/lib/python3.10/site-packages/gtts/tests/test_cli.pyÚrunner   s   r   c                 C   s   t ƒ  t| dg |¡S )Nz--debugr   r	   r   r   r   Úrunner_debug   s   r   c                  C   s(   t g ƒ} d| jv sJ ‚| jdksJ ‚dS )z2One of <test> (arg) and <file> <opt> should be setz<file> requiredr   N©r   ÚoutputÚ	exit_code©Úresultr   r   r   Útest_text_no_text_or_file   s   r   c                 C   sB   | d }|  ¡  tdt|ƒdgƒ}d|jv sJ ‚|jdksJ ‚dS )z8<test> (arg) and <file> <opt> should not be set togetherztest_and_file.txtú--fileÚtestz<file> can't be used togetherr   N©Útouchr   Ústrr   r   ©Útmp_pathÚfilenamer   r   r   r   Útest_text_text_and_file&   s
   r   c                 C   s@   | d }|  ¡  tdt|ƒgƒ}d|jv sJ ‚|jdksJ ‚dS )z%Exit on no text to speak (via <file>)ztext_empty.txtr   zNo text to speakr   Nr   r   r   r   r   Útest_text_empty1   s
   r   c                  C   ó,   t g d¢ƒ} d| jv sJ ‚| jdksJ ‚dS )z<file> should exist)r   znotexist.txtr   zNo such file or directoryr   Nr   r   r   r   r   Útest_file_not_exists=   s   r!   c                  C   s.   t dgƒ} t d| j¡sJ ‚| jdksJ ‚dS )z.Option <all> should return a list of languagesz--allz(\s{2}[\w-]{2,5}: .+\n?)r   N)r   ÚreÚmatchr   r   r   r   r   r   Útest_allF   s   
r$   c                  C   r    )z&Invalid <lang> should display an error)ú--langÚxxr   z&xx' not in list of supported languagesr   N)r   r   r   r   r   r   r   Útest_lang_not_validS   s   r'   c                  C   sr   t ƒ �} tg d¢ƒ}t| ƒ}W d  ƒ n1 sw   Y  d|v s#J ‚d|v s)J ‚d|jv s0J ‚|jdks7J ‚dS )zIInvalid <lang> (with <nocheck>) should display an error message from gtts)r%   r&   ú	--nocheckr   Nzlang: xxúlang_check: FalsezUnsupported language 'xx'r   )r   r   r   r   r   ©Úlcr   Úlogr   r   r   Útest_lang_nocheck\   s   
ýr-   c                  C   sˆ   t ƒ �} tg d¢ƒ}t| ƒ}W d  ƒ n1 sw   Y  d|v s#J ‚d|v s)J ‚d|v s/J ‚d|v s5J ‚d|v s;J ‚|jdksBJ ‚dS )	z@Options should set gTTS instance arguments (read from debug log))r%   Úfrz--tldÚesz--slowr(   r   Nzlang: frztld: esr)   z
slow: Truez
text: testr   )r   r   r   r   r*   r   r   r   Útest_params_setk   s   ÿ
ûr0   zstdin
test
123uP   ä½ å�ƒé¥­äº†å�—ï¼Ÿ
ä½ æœ€å–œæ¬¢å“ªéƒ¨ç”µå½±ï¼Ÿ
æˆ‘é¥¿äº†ï¼Œæˆ‘è¦�åŽ»å�šé¥­äº†ã€‚z¼Can you make pink a little more pinkish can you make pink a little more pinkish, nor can you make the font bigger?
How much will it cost the website doesn't have the theme i was going for.Úinput_filesztest_cli_test_ascii.txtuç   è¿™æ˜¯ä¸€ä¸ªä¸‰å²�çš„å°�å­©
åœ¨è®²è¿°å¥¹ä»Žä¸€ç³»åˆ—ç…§ç‰‡é‡Œçœ‹åˆ°çš„ä¸œè¥¿ã€‚
å¯¹è¿™ä¸ªä¸–ç•Œï¼Œ å¥¹ä¹Ÿè®¸è¿˜æœ‰å¾ˆå¤šè¦�å­¦çš„ä¸œè¥¿ï¼Œ
ä½†åœ¨ä¸€ä¸ªé‡�è¦�çš„ä»»åŠ¡ä¸Šï¼Œ å¥¹å·²ç»�æ˜¯ä¸“å®¶äº†ï¼š
åŽ»ç�†è§£å¥¹æ‰€çœ‹åˆ°çš„ä¸œè¥¿ã€‚ztest_cli_test_utf8.txtc                 C   s"   | j sdS d dd„ |  ¡ D ƒ¡S )NzNo logging capturedÚ
c                 S   s   g | ]}d | ‘qS )z
%s %s
  %sr   )Ú.0Úrr   r   r   Ú
<listcomp>¤   s    z"logcapture_str.<locals>.<listcomp>)ÚrecordsÚjoinÚactual)r+   r   r   r   Úlogcapture_str    s   r9   c                  C   ó\   t ƒ �} tdgtƒ}t| ƒ}W d   ƒ n1 sw   Y  dt |v s%J ‚|jdks,J ‚d S ©Nú-útext: %sr   ©r   r   Ú	textstdinr9   r   r*   r   r   r   Útest_stdin_text§   ó   
þr@   c                  C   r:   r;   ©r   r   Útextstdin_unicoder9   r   r*   r   r   r   Útest_stdin_text_unicode±   rA   rD   c                  C   ó^   t ƒ �} tddgtƒ}t| ƒ}W d   ƒ n1 sw   Y  dt |v s&J ‚|jdks-J ‚d S ©Nr   r<   r=   r   r>   r*   r   r   r   Útest_stdin_file»   ó   
þrG   c                  C   rE   rF   rB   r*   r   r   r   Útest_stdin_file_unicodeÅ   rH   rI   c                  C   óZ   t ƒ �} ttgƒ}t| ƒ}W d   ƒ n1 sw   Y  dt |v s$J ‚|jdks+J ‚d S ©Nr=   r   )r   r   Útextr9   r   r*   r   r   r   Ú	test_textÏ   ó   

þrM   c                  C   rJ   rK   )r   r   Útext_unicoder9   r   r*   r   r   r   Útest_text_unicodeÙ   rN   rP   c                  C   ó\   t ƒ �} tdtgƒ}t| ƒ}W d   ƒ n1 sw   Y  dt |v s%J ‚|jdks,J ‚d S ©Nr   r=   r   )r   r   Útextfile_asciir9   rL   r   r*   r   r   r   Útest_file_asciiã   rA   rT   c                  C   rQ   rR   )r   r   Útextfile_utf8r9   rO   r   r*   r   r   r   Útest_file_utf8í   rA   rV   c                  C   s   t dgƒ} | jdksJ ‚d S )Nr   r   )r   r   r   r   r   r   Útest_stdout÷   s   
rW   c                 C   s>   | d }t ddt|ƒgƒ}| ¡ jdksJ ‚|jdksJ ‚d S )Nzout.mp3r   z--outputiÐ  r   )r   r   ÚstatÚst_sizer   r   r   r   r   Ú	test_file   s   rZ   Ú__main__z-xr   )1Úpytestr"   ÚosÚclick.testingr   Úgtts.clir   ÚloggingÚtestfixturesr   Ú	getLoggerÚloggerÚhandlersr   r   r   r   r   r!   ÚmarkÚnetr$   r'   r-   r0   ÚpathÚdirnameÚ__file__Úpwdr?   rC   rL   r7   rS   rO   rU   r9   r@   rD   rG   rI   rM   rP   rT   rV   rW   rZ   Ú__name__Úmainr   r   r   r   Ú<module>   sp   


	




	
	
	
	
	
	
	
	


ÿ