o
    û›hA  ã                   @   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   ól   d} t  | ddg¡}|sJ ddkgƒ‚d} t  | ddg¡}|s&J ddkgƒ‚t  | dg¡}|dgks4J ‚d S )	Nz/foo/bar.pyúa.txtúb.txtz
/foo/a.txtz
/foo/b.txtz/fooz/a.txtz/b.txt©ÚttÚ	full_path©ÚspathÚresult© r   úVc:\Users\shubh\Videos\agent\nova\Lib\site-packages\IPython/testing/tests/test_tools.pyÚtest_full_path_posix   ó   r   c                  C   r   )	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'   r   r   c                  C   sL   d} d}d}| ||fD ]\}}}t  |¡\}}||ksJ ‚||ks#J ‚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_output)ÚerrZfailZbothÚtxtZnerrZnfailZnerr1Znfail1r   r   r   Útest_parser3   s   ýr   c                  C   sb   d} t  | ¡}tj |¡sJ ‚t|dd��}| ¡ }W d   ƒ n1 s$w   Y  || ks/J ‚d S )Nzpass
zutf-8)Úencoding)r   Ztemp_pyfileÚosÚpathÚisfileÚ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   óH   t  d¡� tdƒ tdƒ tdƒ W d   ƒ d S 1 sw   Y  d S )NÚabcÚabcdÚdefó   ghi©r   ZAssertPrintsÚprint©Úselfr   r   r   Útest_passingF   ó
   
"ýzTestAssertPrints.test_passingc                 C   s   dd„ }|   t|¡ d S )Nc                   S   r    )Nr!   Zacdr#   r$   r%   r   r   r   r   ÚfuncM   r*   z+TestAssertPrints.test_failing.<locals>.func)ÚassertRaisesÚAssertionError)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   ó    |   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   ó   
z#Test_ipexec_validate.test_main_pathc                 C   r3   )zGTest with only stdout results, expecting windows line endings.
        r4   úA
BNr6   r7   r   r   r   Útest_main_path2`   r:   z$Test_ipexec_validate.test_main_path2c                 C   ó$   |   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)
r5   zC
D©Zexpected_outZexpected_errNr6   r7   r   r   r   Útest_exception_pathi   ó   
z(Test_ipexec_validate.test_exception_pathc                 C   r=   )zSTest exception path in exception_validate, expecting windows line endings.
        r>   r;   zC
Dr?   Nr6   r7   r   r   r   Útest_exception_path2u   rA   z)Test_ipexec_validate.test_exception_path2c                 C   s   t j | ¡ d S )N)r   ÚTempFileMixinÚtearDownr'   r   r   r   rD   ‚   s   zTest_ipexec_validate.tearDownN)r/   r0   r1   r9   r<   r@   rB   rD   r   r   r   r   r2   V   s    		r2   )Ú__doc__r   ZunittestZIPython.testingr   Údecr   r   Z
skip_win32r   Zskip_if_not_win32r   r   r   ZTestCaser   rC   r2   r   r   r   r   Ú<module>   s   


