B
    ?™cû  ã               @   s”   d Z ddlZddlZddlmZmZ ddlmZ ddlm	Z	 ddl
mZ ddlmZ G dd	„ d	eƒZG d
d„ dejƒZdd„ Zedkreeƒ ƒ dS )zTests for distutils.cmd.é    N)Úcaptured_stdoutÚrun_unittest)ÚCommand)ÚDistribution)ÚDistutilsOptionError)Údebugc               @   s   e Zd Zdd„ ZdS )ÚMyCmdc             C   s   d S )N© )Úselfr	   r	   ú)lib/python3.7/distutils/tests/test_cmd.pyÚinitialize_options   s    zMyCmd.initialize_optionsN)Ú__name__Ú
__module__Ú__qualname__r   r	   r	   r	   r   r      s   r   c               @   sL   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dS )ÚCommandTestCasec             C   s   t ƒ }t|ƒ| _d S )N)r   r   Úcmd)r
   Zdistr	   r	   r   ÚsetUp   s    zCommandTestCase.setUpc             C   s´   | j }dddg|_dddg|_tƒ |_d|_| d¡ | d¡ |  t|jd¡ |  t|jd	¡ d
|_	| d¡ |  
|j	ddg¡ ddg|_| d¡ ddg|_|  t|jd¡ d S )NZoneé   ZthreeZtwoÚokÚyes_string_listÚyes_string_list2Únot_string_listÚnot_string_list2zok,dokÚoption1ZdokÚxxxZwwwÚoption2Úoption3)r   r   r   Úobjectr   r   Zensure_string_listÚassertRaisesr   r   ÚassertEqualr   r   )r
   r   r	   r	   r   Útest_ensure_string_list   s&    








z'CommandTestCase.test_ensure_string_listc                sL   ˆ j }ˆ jt|jddddd ‡ fdd„}d|_||_|jd	d
ddd d S )Né   Ú Úfuncr	   )ZinfilesZoutfiler#   Úargsc                s   ˆ   |d¡ d S )Nzgenerating out from in)r   )r#   r$   Zexec_msgÚlevel)r
   r	   r   Ú_execute:   s    z0CommandTestCase.test_make_file.<locals>._executeTÚinÚout)r   r   Ú	TypeErrorZ	make_fileZforceZexecute)r
   r   r&   r	   )r
   r   Útest_make_file1   s    
zCommandTestCase.test_make_filec                sT   g ‰ ‡ fdd„}| j }||_d|_d|_ddg|_| ¡  dddg}|  ˆ |¡ d S )	Nc                s   ˆ   | ¡ d S )N)Úappend)Úmsgr%   )Úmsgsr	   r   Ú	_announceC   s    z4CommandTestCase.test_dump_options.<locals>._announcer!   )r   r"   r"   )r   r"   r"   zcommand options for 'MyCmd':z  option1 = 1z  option2 = 1)r   Zannouncer   r   Zuser_optionsZdump_optionsr   )r
   r.   r   Zwantedr	   )r-   r   Útest_dump_options@   s    
z!CommandTestCase.test_dump_optionsc             C   sR   | j }d|_| d¡ d |_| dd¡ |  t|dƒ¡ d|_|  t|jd¡ d S )Nr   r   r   r   r!   r   )	r   r   Zensure_stringr   Z
assertTrueÚhasattrr   r   r   )r
   r   r	   r	   r   Útest_ensure_stringP   s    
z"CommandTestCase.test_ensure_stringc             C   s0   | j }t|_| d¡ d|_|  t|jd¡ d S )Nr   r   r   )r   Ú__file__r   Zensure_filenamer   r   r   )r
   r   r	   r	   r   Útest_ensure_filename\   s
    
z$CommandTestCase.test_ensure_filenamec             C   s>   | j }tj t¡ptj|_| d¡ d|_|  	t
|jd¡ d S )Nr   r   r   )r   ÚosÚpathÚdirnamer2   Úcurdirr   Zensure_dirnamer   r   r   )r
   r   r	   r	   r   Útest_ensure_dirnamec   s
    
z#CommandTestCase.test_ensure_dirnamec          	   C   sŠ   | j }tƒ }| d¡ W d Q R X | d¡ |  | ¡ d¡ dt_z:tƒ }| d¡ W d Q R X | d¡ |  | ¡ d¡ W d dt_X d S )Nr   r   r"   Tzxxx
F)r   r   Zdebug_printÚseekr   Úreadr   ÚDEBUG)r
   r   Ústdoutr	   r	   r   Útest_debug_printj   s    

z CommandTestCase.test_debug_printN)r   r   r   r   r    r*   r/   r1   r3   r8   r=   r	   r	   r	   r   r      s   r   c               C   s
   t  t¡S )N)ÚunittestZ	makeSuiter   r	   r	   r	   r   Ú
test_suitez   s    r?   Ú__main__)Ú__doc__r>   r4   Ztest.supportr   r   Zdistutils.cmdr   Zdistutils.distr   Zdistutils.errorsr   Z	distutilsr   r   ZTestCaser   r?   r   r	   r	   r	   r   Ú<module>   s   k