
    daf&                        d dl Z d dlZd dlZd dlZd dlmZmZ d dlmZm	Z	 d dl
mZ  ed      Ze j                  dk7  r ej                  d      ere j                  j!                  e      s ej                  d      ed	z   Zd
ej$                  dej&                  Z G d dej*                        Zd Zedk(  r ej2                          yy)    N)reap_children
unix_shell)TESTFNunlink)import_deprecatedpipesposixz pipes module only works on posixzpipes module requires a shell2ztr  c                   f    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zy)SimplePipeTestsc                 <    t         t        fD ]  }t        |        y N)r   TESTFN2r   )selffs     */root/Python-3.12.4/Lib/test/test_pipes.pytearDownzSimplePipeTests.tearDown   s    '" 	A1I	    c                    t        j                  d      | j                  d       t        j	                         }|j                  t        t        j                         |j                  t        d      5 }|j                  d       d d d        t        t              5 }| j                  |j                         d       d d d        y # 1 sw Y   BxY w# 1 sw Y   y xY w)Ntrtr is not availablewzhello world #1zHELLO WORLD #1)shutilwhichskipTestr   Templateappend	s_commandSTDIN_STDOUTopenr   writeassertEqualread)r   tr   s      r   testSimplePipe1zSimplePipeTests.testSimplePipe1   s    <<%MM/0NN	E../VVFC  	&AGG$%	&&\ 	9QQVVX'78	9 	9	& 	&	9 	9s   5C!CCCc                    t        j                  d      | j                  d       t        t        d      5 }|j                  d       d d d        t        j                         }|j                  t        dz   t        j                         |j                  t        t               t        t              5 }| j                  |j                         d       d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nr   r   r   hello world #2z < $IN > $OUTHELLO WORLD #2)r   r   r   r!   r   r"   r   r   r   r   FILEIN_FILEOUTcopyr   r#   r$   r   r   r%   s      r   testSimplePipe2zSimplePipeTests.testSimplePipe2&   s    <<%MM/0&# 	&!GG$%	&NN	_,e.B.BC	vw'] 	9aQVVX'78	9 	9	& 	&
	9 	9s   C5!C+C(+C4c                    t        j                  d      | j                  d       t        t        d      5 }|j                  d       d d d        t        j                         }|j                  t        dz   t        j                         |j                  t        d      }	 | j                  |j                         d       |j                          y # 1 sw Y   xY w# |j                          w xY w)Nr   r   r   r(   z < $INrr)   )r   r   r   r!   r   r"   r   r   r   r   FILEIN_STDOUTr#   r$   closer,   s      r   testSimplePipe3zSimplePipeTests.testSimplePipe31   s    <<%MM/0&# 	&!GG$%	&NN	X%u':':;FF63	QVVX'78GGI	& 	& GGIs   C# C  C C2c                    d}t        t        d      5 }|j                  |       d d d        t        t        d      5 }|j                  d       d d d        t        j                         }|j                  t        t               t        t              5 }| j                  |j                         |       d d d        y # 1 sw Y   xY w# 1 sw Y   |xY w# 1 sw Y   y xY w)Nzempty pipeline test COPYr    )	r!   r   r"   r   r   r   r+   r#   r$   r   dr   r%   s       r   testEmptyPipeline1z"SimplePipeTests.testEmptyPipeline1>   s    &&# 	!GGAJ	'3 	1GGBK	
..
	vw'] 	*aQVVXq)	* 	*	 		 		* 	*s"   B>C
!C>C
CCc                 T   d}t        t        d      5 }|j                  |       d d d        t        j	                         }|j                  t        d      }	 | j                  |j                         |       |j                          y # 1 sw Y   exY w# |j                          w xY w)Nzempty pipeline test READr   r/   )r!   r   r"   r   r   r#   r$   r1   r5   s       r   testEmptyPipeline2z"SimplePipeTests.testEmptyPipeline2J   s    &&# 	!GGAJ	
..
FF63	QVVXq)GGI	 	 GGIs   B	 B 	BB'c                 0   d}t         j                         }|j                  t        d      5 }|j	                  |       d d d        t        t              5 }| j                  |j                         |       d d d        y # 1 sw Y   BxY w# 1 sw Y   y xY w)Nzempty pipeline test WRITEr   )r   r   r!   r   r"   r#   r$   )r   r6   r%   r   s       r   testEmptyPipeline3z"SimplePipeTests.testEmptyPipeline3V   s|    'NNVVFC  	AGGAJ	&\ 	*QQVVXq)	* 	*	 		* 	*s   B !B B	Bc                     t         j                         }| j                  t        |      d       |j	                  dt         j
                         | j                  t        |      d       y )Nz<Template instance, steps=[]>
tr a-z A-Zz1<Template instance, steps=[('tr a-z A-Z', '--')]>)r   r   r#   reprr   r    r   r%   s     r   testReprzSimplePipeTests.testRepr_   sO    NNa"AB	u112aG	Ir   c                     t         j                         }|j                  d       | j                  |j                  d       |j                  d       | j                  |j                  d       y )NFT)r   r   debugr#   	debuggingr?   s     r   testSetDebugzSimplePipeTests.testSetDebugf   sL    NN	e,	d+r   c                     t         j                         }|j                  dt         j                         | j	                  t
        |j                  dd       y )Nboguscmd	bogusfiler/   )r   r   r   SINKassertRaises
ValueErrorr!   r?   s     r   testReadOpenSinkz SimplePipeTests.testReadOpenSinkm   s:     NN	UZZ(*affk3?r   c                     t         j                         }|j                  dt         j                         | j	                  t
        |j                  dd       y )NrF   rG   r   )r   r   prependSOURCErI   rJ   r!   r?   s     r   testWriteOpenSourcez#SimplePipeTests.testWriteOpenSourcet   s:     NN			*ell+*affk3?r   c                    t         j                         }| j                  t        |j                  dt         j
                         | j                  t        |j                  dd       | j                  t        |j                  dt         j                         t         j                         }|j	                  dt         j                         | j                  t        |j                  dt         j                         t         j                         }| j                  t        |j                  dt         j                         t         j                         }| j                  t        |j                  dt         j                         t         j                         }| j                  t        |j                  dt         j                         t         j                         }| j                  t        |j                  dt         j                         y )N   rF   xxboguscmd $OUTboguscmd $IN)r   r   rI   	TypeErrorr   r    rJ   rN   rH   r*   r0   STDIN_FILEOUTr?   s     r   testBadAppendOptionsz$SimplePipeTests.testBadAppendOptions{   sZ   NN 	)QXXq%2D2DE 	*ahh
DA 	*ahh
ELLI NN	UZZ(*ahh
EJJG NN*ahh //	1NN*ahh
 ..	0 NN*ahh //	1NN*ahh
 ..	0r   c                    t         j                         }| j                  t        |j                  dt         j
                         | j                  t        |j                  dd       | j                  t        |j                  dt         j                         t         j                         }|j	                  dt         j                         | j                  t        |j                  dt         j                         t         j                         }| j                  t        |j                  dt         j                         t         j                         }| j                  t        |j                  dt         j                         t         j                         }| j                  t        |j                  dt         j                         t         j                         }| j                  t        |j                  dt         j                         y )NrQ   r=   rR   rF   rS   rT   )r   r   rI   rU   rM   r    rJ   rH   rN   r*   r0   rV   r?   s     r   testBadPrependOptionsz%SimplePipeTests.testBadPrependOptions   sZ   NN 	)QYY53E3EF 	*aiitD 	*aiiUZZH NN			*ell+*aiiU\\J NN*aii //	1NN*aii ..	0 NN*aii //	1NN*aii ..	0r   c                 p    t         j                         }| j                  t        |j                  dd       y )NrG   x)r   r   rI   rJ   r!   r?   s     r   testBadOpenModezSimplePipeTests.testBadOpenMode   s&    NN*affk3?r   c                    t         j                         }|j                  dt         j                         |j	                         }| j                  t        |      t        |             | j                  |j                  |j                         | j                  t        |j                        t        |j                               | j                  |j                  |j                         y )Nr=   )
r   r   r   r    cloneassertNotEqualidr#   stepsrC   )r   r%   us      r   	testClonezSimplePipeTests.testClone   s    NN	u112GGIBqE2a5)!''*BqwwKAGG5akk2r   N)__name__
__module____qualname__r   r&   r-   r2   r7   r9   r;   r@   rD   rK   rO   rW   rY   r\   rc    r   r   r   r      sS    9	9
*
*I,@@0D0B@3r   r   c                      t                y r   )r   rg   r   r   tearDownModuleri      s    Or   __main__)osstringunittestr   test.supportr   r   test.support.os_helperr   r   test.support.warnings_helperr   r   nameSkipTestpathexistsr   ascii_lowercaseascii_uppercaser   TestCaser   ri   rd   mainrg   r   r   <module>ry      s    	    2 1 :'" 77g
(

>
??rww~~j1
(

;
<<
3, !00&2H2HI	s3h'' s3l zHMMO r   