B
    18\                 @   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	   \/oak/stanford/groups/akundaje/marinovg/programs/Python-3.7.3/Lib/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
   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 )None   three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   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	   )infilesoutfiler(   argsc                s     |d d S )Nzgenerating out from in)r$   )r(   r+   exec_msglevel)r
   r	   r   _execute:   s    z0CommandTestCase.test_make_file.<locals>._executeTinout)r   r#   	TypeError	make_fileforce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   announcer   r   user_optionsdump_optionsr$   )r
   r9   r   wantedr	   )r8   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   ensure_stringr   
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   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dirnamerC   curdirr   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   debug_printseekr$   readr   DEBUG)r
   r   stdoutr	   r	   r   test_debug_printj   s    

z CommandTestCase.test_debug_printN)r   r   r   r   r%   r5   r>   rB   rE   rK   rQ   r	   r	   r	   r   r      s   r   c               C   s
   t tS )N)unittest	makeSuiter   r	   r	   r	   r   
test_suitez   s    rT   __main__)__doc__rR   rF   Ztest.supportr   r   distutils.cmdr   distutils.distr   Zdistutils.errorsr   	distutilsr   r   TestCaser   rT   r   r	   r	   r	   r   <module>   s   k