
    &e=                         d Z ddlZddlZddlmZ ddlmZ ej        d             Z	ej
        d             Zd Zd Z G d	 d
ej                  Z G d dej                  ZdS )z
Tests for testing.tools
    N)
decorators)toolsc                      d} t          j        | ddg          }|sJ ddk    g            d} t          j        | ddg          }|sJ ddk    g            t          j        | d          }|dgk    sJ 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results     @lib/python3.11/site-packages/IPython/testing/tests/test_tools.pytest_full_path_posixr      s    E\%'7!344F11LL01111E\%'7!344F))H())))\%))FhZ    c                      d} t          j        | ddg          }|sJ ddk    g            d} t          j        | ddg          }|sJ ddk    g            t          j        | d          }|dgk    sJ 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   s     r   test_full_path_win32r   '   s    E\%'7!344F99$(889999E\%'7!344F//K;.////\%))Fk]""""""r   c                  x    d} d}d}| ||fD ]-\  }}}t          j        |          \  }}||k    sJ ||k    sJ .d S )N)zFAILED (errors=1)   r   )zFAILED (failures=1)r   r   )zFAILED (errors=1, failures=1)r   r   )r	   parse_test_output)errfailbothtxtnerrnfailnerr1nfail1s           r   test_parserr   3   sh    
%C(D2D $-  T5,S11vu}}}} r   c                      d} t          j        |           }t          j                            |          sJ t          |d          5 }|                                }d d d            n# 1 swxY w Y   || k    sJ d S )Nzpass
zutf-8)encoding)r	   temp_pyfileospathisfileopenread)srcfnamefh2src2s       r   test_temp_pyfiler+   =   s    
CN3E7>>%     	eg	&	&	& #xxzz              3;;;;;;s   	A**A.1A.c                       e Zd Zd Zd ZdS )TestAssertPrintsc                     t          j        d          5  t          d           t          d           t          d           d d d            d S # 1 swxY w Y   d S )Nabcabcddef   ghir	   AssertPrintsprintselfs    r   test_passingzTestAssertPrints.test_passingF   s    _U## 	 	&MMM%LLL&MMM	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	   .AAAc                 B    d }|                      t          |           d S )Nc                      t          j        d          5  t          d           t          d           t          d           d d d            d S # 1 swxY w Y   d S )Nr/   acdr1   r2   r3    r   r   funcz+TestAssertPrints.test_failing.<locals>.funcM   s    ''  eef                 r9   )assertRaisesAssertionError)r7   r>   s     r   test_failingzTestAssertPrints.test_failingL   s/    	 	 	 	.$/////r   N)__name__
__module____qualname__r8   rA   r=   r   r   r-   r-   E   s2          0 0 0 0 0r   r-   c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )Test_ipexec_validatec                 h    |                      d           d}t          j        | j        |           dS )z'Test with only stdout results.
        print('A')
print('B')
A
BNmktmpr	   ipexec_validater(   r7   outs     r   test_main_pathz#Test_ipexec_validate.test_main_pathW   sA     	

 " 	 	 	 
4:s+++++r   c                 h    |                      d           d}t          j        | j        |           dS )zGTest with only stdout results, expecting windows line endings.
        rH   A
BNrJ   rM   s     r   test_main_path2z$Test_ipexec_validate.test_main_path2`   sA     	

 " 	 	 	 
4:s+++++r   c                 l    |                      d           d}t          j        | j        |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)
rI   zC
Dexpected_outexpected_errNrJ   rM   s     r   test_exception_pathz(Test_ipexec_validate.test_exception_pathi   sF     	

 3 	 	 	 
4:CfMMMMMMr   c                 l    |                      d           d}t          j        | j        |d           dS )zSTest exception path in exception_validate, expecting windows line endings.
        rT   rQ   zC
DrU   NrJ   rM   s     r   test_exception_path2z)Test_ipexec_validate.test_exception_path2u   sF     	

 3 	 	 	 
4:ChOOOOOOr   c                 D    t           j                            |            d S )N)r	   TempFileMixintearDownr6   s    r   r]   zTest_ipexec_validate.tearDown   s!     	!!$'''''r   N)rB   rC   rD   rO   rR   rX   rZ   r]   r=   r   r   rF   rF   V   se        , , ,, , ,
N 
N 
N
P 
P 
P( ( ( ( (r   rF   )__doc__r"   unittestIPython.testingr   decr   r	   
skip_win32r   skip_if_not_win32r   r   r+   TestCaser-   r\   rF   r=   r   r   <module>re      s    
			  - - - - - - ' ' ' ' ' '       # # #    0 0 0 0 0x( 0 0 0"/( /( /( /( /(2+ /( /( /( /( /(r   