U
    uiR                     @   s   d Z ddlZddlZddlmZ ddlmZ ddlmZ ddl	Z	zddl
Z
W n ek
rd   dZ
Y nX ejeZejG dd dejZdS )z"Tests for distutils.command.check.    N)check)DistutilsSetupError)supportc                   @   sF   e Zd ZdddZdd Zdd Zdd	 Zd
d Zdd Zdd Z	dS )	TestCheckNc           
      K   s   |d kri }|d k	r&t  }t | | jf |\}}t|}|  | D ]\}}	t|||	 qN|  |	  |d k	rt | |S )N)
osgetcwdchdircreate_distr   initialize_optionsitemssetattrensure_finalizedrun)
selfmetadatacwdoptionsZold_dirpkg_infodistcmdnamevalue r   J/tmp/pip-unpacked-wheel-9osl9suo/setuptools/_distutils/tests/test_check.py_run   s    

zTestCheck._runc              	   C   s   |   }|jdkstdddddd}|  |}|jdks>ttt | j i fddi W 5 Q R X | j |dd}|jdkstdddddd	d
d}|  |}|jdkstd S )N   xxx)urlauthorauthor_emailr   versionr   strictT)r!   u   Éricu   Something about esszet ßu   More things about esszet ß)r   r   r   r   r    descriptionlong_description)r   	_warningsAssertionErrorpytestraisesr   )r   r   r   r   r   r   test_check_metadata'   s0    
	
zTestCheck.test_check_metadatac              	   C   s   dD ]}dd|d dddddi}|  |}|jdks8td	||d < |  |}|jdks\td
||< ||d = |  |}|jdkstqd S )N)r   
maintainerr   r   Z_emailzName <name@email.com>r   r    r   zname@email.comName)r   r$   r%   )r   kindr   r   r   r   r   test_check_author_maintainerQ   s&        



z&TestCheck.test_check_author_maintainerc                 C   s^   t d |  \}}t|}d}||}t|dks<td}||}t|dksZtd S )Ndocutilstitle
===

testr   ztitle
=====

testr   )r&   importorskipr	   r   _check_rst_datalenr%   )r   r   r   r   broken_restmsgsrestr   r   r   test_check_documenti   s    


zTestCheck.test_check_documentc              	   C   s   t d d}| j|d\}}t|}|  |jdks<tddddd|d}t t | j	|fddd W 5 Q R X d|d	< | j	|d
d
d}|jdkstd|d	< | j	|t
d
d
d}|jdkstd S )Nr-   r.   r#   r   r   )r   r   r   r   r    r#   r!   restructuredtextu   title
=====

test ßr#   Tr   z)title
=====

.. include:: includetest.rst)r   r!   r8   )r&   r/   r	   r   check_restructuredtextr$   r%   r'   r   r   HERE)r   r2   r   r   r   r   r   r   r   test_check_restructuredtextx   s*    
z%TestCheck.test_check_restructuredtextc                 C   s   t d tdtdg}|D ]p}| j|d\}}t|}|  ||}td k	rjt	|dkst
q"t	|dkszt
t|d d dks"t
q"d S )Nr-   z}            Here's some code:

            .. code:: python

                def foo():
                    pass
            z            Here's some code:

            .. code-block:: python

                def foo():
                    pass
            r6   r   r   z0Cannot analyze code. Pygments package not found.)r&   r/   textwrapdedentr	   r   r9   r0   pygmentsr1   r%   str)r   Zexample_rst_docsZrest_with_coder   r   r   r3   r   r   r   1test_check_restructuredtext_with_syntax_highlight   s(    


z;TestCheck.test_check_restructuredtext_with_syntax_highlightc              	   C   s.   t t | ji fddd W 5 Q R X d S )Nr   r7   )r&   r'   r   r   )r   r   r   r   test_check_all   s    zTestCheck.test_check_all)NN)
__name__
__module____qualname__r   r(   r,   r5   r;   r@   rA   r   r   r   r   r      s   
*)r   )__doc__r   r<   Zdistutils.command.checkr   distutils.errorsr   Zdistutils.testsr   r&   r>   ImportErrorpathdirname__file__r:   Zcombine_markersZTempdirManagerr   r   r   r   r   <module>   s   
