B
     S]                 @   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