U
    -e=                     @   s   d Z ddlZddlZddlmZ ddlmZ ejdd Z	ej
dd Zd	d
 Zdd ZG dd dejZG dd dejZdS )z
Tests for testing.tools
    N)
decorators)toolsc                  C   sj   d} t | ddg}|s&tddkgd} t | ddg}|sLtddkgt | d}|dgksftd S )	Nz/foo/bar.pya.txtb.txtz
/foo/a.txtz
/foo/b.txtz/fooz/a.txtz/b.txttt	full_pathAssertionErrorZspathresult r   a/var/www/html/Darija-Ai-Train/env/lib/python3.8/site-packages/IPython/testing/tests/test_tools.pytest_full_path_posix   s    r   c                  C   sj   d} t | ddg}|s&tddkgd} t | ddg}|sLtddkgt | d}|dgksftd S )	Nzc:\foo\bar.pyr   r   zc:\foo\a.txtzc:\foo\b.txtzc:\foozc:\a.txtzc:\b.txtr   r
   r   r   r   test_full_path_win32'   s    r   c                  C   sL   d} d}d}| ||fD ]0\}}}t |\}}||ks:t||kstqd S )N)zFAILED (errors=1)   r   )zFAILED (failures=1)r   r   )zFAILED (errors=1, failures=1)r   r   )r   Zparse_test_outputr	   )errZfailZbothtxtZnerrZnfailZnerr1Znfail1r   r   r   test_parser3   s    r   c               	   C   sN   d} t | }tj|stt|dd}| }W 5 Q R X || ksJtd S )Nzpass
zutf-8)encoding)r   Ztemp_pyfileospathisfiler	   openread)srcfnameZfh2Zsrc2r   r   r   test_temp_pyfile=   s    
r   c                   @   s   e Zd Zdd Zdd ZdS )TestAssertPrintsc              	   C   s2   t d td td td W 5 Q R X d S )Nabcabcddef   ghir   ZAssertPrintsprintselfr   r   r   test_passingF   s    zTestAssertPrints.test_passingc                 C   s   dd }|  t| d S )Nc                	   S   s2   t d td td td W 5 Q R X d S )Nr   Zacdr    r!   r"   r   r   r   r   funcM   s    z+TestAssertPrints.test_failing.<locals>.func)assertRaisesr	   )r%   r'   r   r   r   test_failingL   s    zTestAssertPrints.test_failingN)__name__
__module____qualname__r&   r)   r   r   r   r   r   E   s   r   c                   @   s4   e Zd Zdd Zdd Zdd Zdd Zd	d
 ZdS )Test_ipexec_validatec                 C   s    |  d d}t| j| dS )z'Test with only stdout results.
        print('A')
print('B')
A
BNZmktmpr   Zipexec_validater   r%   outr   r   r   test_main_pathW   s    
z#Test_ipexec_validate.test_main_pathc                 C   s    |  d d}t| j| dS )zGTest with only stdout results, expecting windows line endings.
        r.   A
BNr0   r1   r   r   r   test_main_path2`   s    
z$Test_ipexec_validate.test_main_path2c                 C   s$   |  d d}tj| j|dd dS )z3Test exception path in exception_validate.
        Yimport sys
print('A')
print('B')
print('C', file=sys.stderr)
print('D', file=sys.stderr)
r/   zC
DZexpected_outZexpected_errNr0   r1   r   r   r   test_exception_pathi   s    
z(Test_ipexec_validate.test_exception_pathc                 C   s$   |  d d}tj| j|dd dS )zSTest exception path in exception_validate, expecting windows line endings.
        r6   r4   zC
Dr7   Nr0   r1   r   r   r   test_exception_path2u   s    
z)Test_ipexec_validate.test_exception_path2c                 C   s   t j|  d S )N)r   TempFileMixintearDownr$   r   r   r   r;      s    zTest_ipexec_validate.tearDownN)r*   r+   r,   r3   r5   r8   r9   r;   r   r   r   r   r-   V   s
   		r-   )__doc__r   ZunittestZIPython.testingr   decr   r   Z
skip_win32r   Zskip_if_not_win32r   r   r   ZTestCaser   r:   r-   r   r   r   r   <module>   s   


