o
    5‘ði¶  ã                   @   st   d Z ddlZddlmZ ddlmZ ddlmZ ddlm	Z	 ddl
Z
G dd„ deƒZe
jd	d
„ ƒZG dd„ dƒZdS )zTests for distutils.cmd.é    N)Údebug)ÚCommand)ÚDistribution)ÚDistutilsOptionErrorc                   @   s   e Zd Zdd„ ZdS )ÚMyCmdc                 C   s   d S ©N© )Úselfr   r   úc/root/parts/websockify/install/lib/python3.10/site-packages/setuptools/_distutils/tests/test_cmd.pyÚinitialize_options   s   zMyCmd.initialize_optionsN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r
   r      s    r   c                 C   s
   t tƒ ƒS r   )r   r   )Úrequestr   r   r
   Úcmd   s   
r   c                   @   sD   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S )ÚTestCommandc                 C   s  g d¢|_ g d¢|_tƒ |_d|_| d¡ | d¡ t t¡� | d¡ W d   ƒ n1 s0w   Y  t t¡� | d¡ W d   ƒ n1 sJw   Y  d|_	| d	¡ |j	dd
gks`J ‚ddg|_
| d¡ ddg|_t t¡� | d¡ W d   ƒ d S 1 s…w   Y  d S )N)Úoneé   Úthree)r   Útwor   ÚokÚyes_string_listÚyes_string_list2Únot_string_listÚnot_string_list2zok,dokÚoption1ÚdokÚxxxÚwwwÚoption2r   Úoption3)r   r   Úobjectr   r   Úensure_string_listÚpytestÚraisesr   r   r   r    ©r	   r   r   r   r
   Útest_ensure_string_list   s*   



ÿÿ



"ÿz#TestCommand.test_ensure_string_listc                 C   sf   t  t¡� |jddddd� W d   ƒ n1 sw   Y  dd„ }d|_||_|jdd	ddd� d S )
NTÚ Úfuncr   )ÚinfilesÚoutfiler(   Úargsc                 S   s   |dksJ ‚d S )Nzgenerating out from inr   )r(   r+   Úexec_msgÚlevelr   r   r
   Ú_execute6   s   z,TestCommand.test_make_file.<locals>._executeÚinÚout)r#   r$   Ú	TypeErrorÚ	make_fileÚforceÚexecute)r	   r   r.   r   r   r
   Útest_make_file0   s   ÿzTestCommand.test_make_filec                    sL   g ‰ ‡ fdd„}||_ d|_d|_ddg|_| ¡  g d¢}ˆ |ks$J ‚d S )Nc                    s   ˆ   | ¡ d S r   )Úappend)Úmsgr-   ©Úmsgsr   r
   Ú	_announce@   s   z0TestCommand.test_dump_options.<locals>._announceé   )r   r'   r'   )r   r'   r'   )zcommand options for 'MyCmd':z  option1 = 1z  option2 = 1)Úannouncer   r   Úuser_optionsÚdump_options)r	   r   r:   Úwantedr   r8   r
   Útest_dump_options=   s   
zTestCommand.test_dump_optionsc                 C   sp   d|_ | d¡ d |_| dd¡ t|dƒsJ ‚d|_t t¡� | d¡ W d   ƒ d S 1 s1w   Y  d S )Nr   r   r   r   r;   r    )r   Úensure_stringr   Úhasattrr    r#   r$   r   r%   r   r   r
   Útest_ensure_stringL   s   
"ÿzTestCommand.test_ensure_stringc                 C   sP   t |_| d¡ d|_t t¡� | d¡ W d   ƒ d S 1 s!w   Y  d S ©Nr   r   r   )Ú__file__r   Úensure_filenamer   r#   r$   r   r%   r   r   r
   Útest_ensure_filenameX   s   
"ÿz TestCommand.test_ensure_filenamec                 C   s^   t j t¡pt j|_| d¡ d|_t 	t
¡� | d¡ W d   ƒ d S 1 s(w   Y  d S rD   )ÚosÚpathÚdirnamerE   Úcurdirr   Úensure_dirnamer   r#   r$   r   r%   r   r   r
   Útest_ensure_dirname_   s   
"ÿzTestCommand.test_ensure_dirnamec                 C   sJ   |  d¡ | ¡ jdksJ ‚| tdd¡ |  d¡ | ¡ jdks#J ‚d S )Nr   r'   ÚDEBUGTzxxx
)Údebug_printÚ
readouterrr0   Úsetattrr   )r	   r   ÚcapsysÚmonkeypatchr   r   r
   Útest_debug_printf   s
   

zTestCommand.test_debug_printN)
r   r   r   r&   r5   r@   rC   rG   rM   rT   r   r   r   r
   r      s    r   )Ú__doc__rH   Ú	distutilsr   Údistutils.cmdr   Údistutils.distr   Údistutils.errorsr   r#   r   Úfixturer   r   r   r   r   r
   Ú<module>   s    
