
    i                        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j                  d      Zg e_        	 d$dZd$dZd Zd	 Zd
 Zd Ze j&                  j(                  d        Ze j&                  j(                  d        Ze j&                  j(                  d        Ze j&                  j(                  d        Zej2                  j5                  e      ZdZdZdZej2                  jA                  edd      Z!dZ"ej2                  jA                  edd      Z#	 d Z$e j&                  j(                  d        Z%e j&                  j(                  d        Z&e j&                  j(                  d        Z'e j&                  j(                  d        Z(e j&                  j(                  d        Z)e j&                  j(                  d        Z*e j&                  j(                  d        Z+e j&                  j(                  d        Z,e j&                  j(                  d         Z-e j&                  j(                  d!        Z.e/d"k(  r e j`                  d#eg       yy)%    N)	CliRunner)tts_cli)
LogCapturegttsc                 @    t               j                  t        | |      S Nr   invoker   argsinputs     Q/var/www/auto_recruiter/arenv/lib/python3.12/site-packages/gtts/tests/test_cli.pyrunnerr      s    ;gtU33    c                 H    t               j                  t        | dgz   |      S )Nz--debugr	   r   s     r   runner_debugr      s     ;gtyk'95AAr   c                  \    t        g       } d| j                  v sJ | j                  dk7  sJ y)z2One of <test> (arg) and <file> <opt> should be setz<file> requiredr   Nr   output	exit_coderesults    r   test_text_no_text_or_filer      s2    "F---q   r   c                     | dz  }|j                          t        dt        |      dg      }d|j                  v sJ |j                  dk7  sJ y)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   s      r   test_text_text_and_filer#   &   sR    --HNN8S]F;<F*fmm;;;q   r   c                     | dz  }|j                          t        dt        |      g      }d|j                  v sJ |j                  dk7  sJ y)z%Exit on no text to speak (via <file>)ztext_empty.txtr   zNo text to speakr   Nr   r    s      r   test_text_emptyr%   1   sP    **HNN8S]34F...q   r   c                  `    t        g d      } d| j                  v sJ | j                  dk7  sJ y)z<file> should exist)r   znotexist.txtr   zNo such file or directoryr   Nr   r   s    r   test_file_not_existsr'   =   s3    <=F&&--777q   r   c                      t        dg      } t        j                  d| j                        sJ | j                  dk(  sJ y)z.Option <all> should return a list of languagesz--allz(\s{2}[\w-]{2,5}: .+\n?)r   N)r   rematchr   r   r   s    r   test_allr+   F   s?     WIF
 88/???q   r   c                  `    t        g d      } d| j                  v sJ | j                  dk7  sJ y)z&Invalid <lang> should display an error)--langxxr   z&xx' not in list of supported languagesr   N)r   r   r   r   s    r   test_lang_not_validr/   S   s5     ,-F3v}}DDDq   r   c                      t               5 } t        g d      }t        |       }ddd       dv sJ d|v sJ dj                  v sJ |j                  dk7  sJ y# 1 sw Y   7xY w)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   logs      r   test_lang_nocheckr6   \   sx     
 CD"g
 #%%%&&--777q    s   AA#c                      t               5 } t        g d      }t        |       }ddd       dv sJ d|v sJ d|v sJ d|v sJ d|v sJ j                  dk(  sJ y# 1 sw Y   9xY w)	z@Options should set gTTS instance arguments (read from debug log))r-   frz--tldesz--slowr1   r   Nzlang: frztld: esr2   z
slow: Truez
text: testr   )r   r   r   r   r3   s      r   test_params_setr:   k   s     
 J
 "g #%%%33q    s   AA%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.input_filesztest_cli_test_ascii.txtu   这是一个三岁的小孩
在讲述她从一系列照片里看到的东西。
对这个世界， 她也许还有很多要学的东西，
但在一个重要的任务上， 她已经是专家了：
去理解她所看到的东西。ztest_cli_test_utf8.txtc                     | j                   sydj                  | j                         D cg c]  }d|z  	 c}      S c c}w )NzNo logging captured
z
%s %s
  %s)recordsjoinactual)r4   rs     r   logcapture_strrB      s4    ::$99"))+>Qnq(>??>s   >c                      t               5 } t        dgt              }t        |       }d d d        dt        z  v sJ j                  dk(  sJ y # 1 sw Y   (xY wN-text: %sr   r   r   	textstdinrB   r   r3   s      r   test_stdin_textrI      s_    	 !seY/R ! 	!S(((q   ! !   AAc                      t               5 } t        dgt              }t        |       }d d d        dt        z  v sJ j                  dk(  sJ y # 1 sw Y   (xY wrD   r   r   textstdin_unicoderB   r   r3   s      r   test_stdin_text_unicoderN      sa    	 !se%67R ! ))S000q   ! !rJ   c                      t               5 } t        ddgt              }t        |       }d d d        dt        z  v sJ j                  dk(  sJ y # 1 sw Y   (xY wNr   rE   rF   r   rG   r3   s      r   test_stdin_filerQ      sa    	 !xoy9R ! 	!S(((q   ! !   AAc                      t               5 } t        ddgt              }t        |       }d d d        dt        z  v sJ j                  dk(  sJ y # 1 sw Y   (xY wrP   rL   r3   s      r   test_stdin_file_unicoderT      sc    	 !xo/@AR ! ))S000q   ! !rR   c                      t               5 } t        t        g      }t        |       }d d d        dt        z  v sJ j                  dk(  sJ y # 1 sw Y   (xY wNrF   r   )r   r   textrB   r   r3   s      r   	test_textrX      s]    	 !tf%R ! ###q   ! !   AAc                      t               5 } t        t        g      }t        |       }d d d        dt        z  v sJ j                  dk(  sJ y # 1 sw Y   (xY wrV   )r   r   text_unicoderB   r   r3   s      r   test_text_unicoder\      s]    	 !|n-R ! $+++q   ! !rY   c                      t               5 } t        dt        g      }t        |       }d d d        dt        z  v sJ j
                  dk(  sJ y # 1 sw Y   (xY wNr   rF   r   )r   r   textfile_asciirB   rW   r   r3   s      r   test_file_asciir`      s`    	 !x89R ! ###q   ! !rJ   c                      t               5 } t        dt        g      }t        |       }d d d        dt        z  v sJ j
                  dk(  sJ y # 1 sw Y   (xY wr^   )r   r   textfile_utf8rB   r[   r   r3   s      r   test_file_utf8rc      s`    	 !x78R ! $+++q   ! !rJ   c                  >    t        dg      } | j                  dk(  sJ y )Nr   r   )r   r   r   s    r   test_stdoutre      s$    VHF q   r   c                     | dz  }t        ddt        |      g      }|j                         j                  dkD  sJ |j                  dk(  sJ y )Nzout.mp3r   z--outputi  r   )r   r   statst_sizer   r    s      r   	test_fileri      sQ    )#HVZX78F ==?""T)))q   r   __main__z-xr   )1pytestr)   osclick.testingr   gtts.clir   loggingtestfixturesr   	getLoggerloggerhandlersr   r   r   r#   r%   r'   marknetr+   r/   r6   r:   pathdirname__file__pwdrH   rM   rW   r?   r_   r[   rb   rB   rI   rN   rQ   rT   rX   r\   r`   rc   re   ri   __name__main r   r   <module>r}      sr    	 	 # 
  #			6	" !4B
!!!! ! ! ! ! 
! 
! ! !$ 	ggooh	
% 
M c=2KL% S-1IJ@ ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! zFKKx ! r   