o
    vZh                     @   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re 0d8eg dS dS ):    N)	CliRunner)tts_cli)
LogCaptureZgttsc                 C   s   t  t| |S Nr   Zinvoker   argsinput r
   B/var/www/auris/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   Z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   
r-   zstdin
test
123uP   你吃饭了吗？
你最喜欢哪部电影？
我饿了，我要去做饭了。zCan 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.Z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   r5   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   	textstdinr5   r   r'   r
   r
   r   test_stdin_text      
r<   c                  C   r6   r7   r   r   textstdin_unicoder5   r   r'   r
   r
   r   test_stdin_text_unicode   r=   r@   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   r8   r9   r   r:   r'   r
   r
   r   test_stdin_file      
rC   c                  C   rA   rB   r>   r'   r
   r
   r   test_stdin_file_unicode   rD   rE   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 Nr9   r   )r   r   textr5   r   r'   r
   r
   r   	test_text      

rI   c                  C   rF   rG   )r   r   text_unicoder5   r   r'   r
   r
   r   test_text_unicode   rJ   rL   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   r9   r   )r   r   textfile_asciir5   rH   r   r'   r
   r
   r   test_file_ascii   r=   rP   c                  C   rM   rN   )r   r   textfile_utf8r5   rK   r   r'   r
   r
   r   test_file_utf8   r=   rR   c                  C   s   t dg} | jdksJ d S )Nr   r   )r   r   r   r
   r
   r   test_stdout   s   
rS   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   rV   __main__z-xr   )1Zpytestr   osZclick.testingr   Zgtts.clir   loggingZtestfixturesr   	getLoggerloggerhandlersr   r   r   r   r   r   marknetr!   r$   r*   r-   pathdirname__file__pwdr;   r?   rH   r3   rO   rK   rQ   r5   r<   r@   rC   rE   rI   rL   rP   rR   rS   rV   __name__mainr
   r
   r
   r   <module>   sp   


	




	
	
	
	
	
	
	
	


