
    <e&                     ~   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k    r ej        d          ere 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j                     dS dS )    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                   h    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dS )SimplePipeTestsc                 F    t           t          fD ]}t          |           d S N)r   TESTFN2r   )selffs     &/usr/lib/python3.11/test/test_pipes.pytearDownzSimplePipeTests.tearDown   s-    '" 	 	A1IIII	 	    c                    t          j        d          |                     d           t                                          }|                    t          t          j                   |                    t          d          5 }|
                    d           d d d            n# 1 swxY w Y   t          t                    5 }|                     |                                d           d d d            d S # 1 swxY w Y   d S )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   sP   <%MM/000NN	E.///VVFC   	&AGG$%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&&\\ 	9QQVVXX'7888	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9s$   B%%B),B))C::C>C>c                 H   t          j        d          |                     d           t          t          d          5 }|                    d           d d d            n# 1 swxY w Y   t                                          }|                    t          dz   t          j
                   |                    t          t                     t          t                    5 }|                     |                                d           d d d            d S # 1 swxY w Y   d S )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&   se   <%MM/000&# 	&!GG$%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&NN	_,e.BCCC	vw']] 	9aQVVXX'7888	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9s#   A!!A%(A%!)DDDc                 @   t          j        d          |                     d           t          t          d          5 }|                    d           d d d            n# 1 swxY w Y   t                                          }|                    t          dz   t          j
                   |                    t          d          }	 |                     |                                d           |                                 d S # |                                 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00&# 	&!GG$%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&NN	X%u':;;;FF63	QVVXX'7888GGIIIIIAGGIIIIs   A!!A%(A%	(D Dc                 .   d}t          t          d          5 }|                    |           d d d            n# 1 swxY w Y   t          t          d          5 }|                    d           d d d            n# 1 swxY w Y   t                                          }|                    t          t                     t          t                    5 }|                     |                                |           d d d            d S # 1 swxY w Y   d S )Nzempty pipeline test COPYr    )	r!   r   r"   r   r   r   r+   r#   r$   r   dr   r%   s       r   testEmptyPipeline1z"SimplePipeTests.testEmptyPipeline1>   s   &&# 	!GGAJJJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	'3 	1GGBKKK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
..

	vw']] 	*aQVVXXq)))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*s1   :>>A<<B B )D

DDc                    d}t          t          d          5 }|                    |           d d d            n# 1 swxY w Y   t                                          }|                     t          d          }	 |                     |                                |           |                                 d S # |                                 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    &&# 	!GGAJJJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
..

FF63	QVVXXq)))GGIIIIIAGGIIIIs   :>>:(B8 8Cc                 v   d}t                                           }|                    t          d          5 }|                    |           d d d            n# 1 swxY w Y   t          t                    5 }|                     |                                |           d d d            d S # 1 swxY w Y   d S )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GGAJJJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	&\\ 	*QQVVXXq)))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*s#   AA A8)B..B25B2c                    t                                           }|                     t          |          d           |                    dt           j                   |                     t          |          d           d S )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_   sw    NNa"ABBB	u1222aG	I 	I 	I 	I 	Ir   c                     t                                           }|                    d           |                     |j        d           |                    d           |                     |j        d           d S )NFT)r   r   debugr#   	debuggingr?   s     r   testSetDebugzSimplePipeTests.testSetDebugf   se    NN	e,,,	d+++++r   c                     t                                           }|                    dt           j                   |                     t
          |j        dd           d S )Nboguscmd	bogusfiler/   )r   r   r   SINKassertRaises
ValueErrorr!   r?   s     r   testReadOpenSinkz SimplePipeTests.testReadOpenSinkm   sK     NN	UZ(((*afk3?????r   c                     t                                           }|                    dt           j                   |                     t
          |j        dd           d S )NrF   rG   r   )r   r   prependSOURCErI   rJ   r!   r?   s     r   testWriteOpenSourcez#SimplePipeTests.testWriteOpenSourcet   sK     NN			*el+++*afk3?????r   c                    t                                           }|                     t          |j        dt           j                   |                     t          |j        dd           |                     t          |j        dt           j                   t                                           }|                    dt           j                   |                     t          |j        dt           j                   t                                           }|                     t          |j        dt           j	                   t                                           }|                     t          |j        dt           j
                   t                                           }|                     t          |j        dt           j	                   t                                           }|                     t          |j        dt           j                   d S )N   rF   xxboguscmd $OUTboguscmd $IN)r   r   rI   	TypeErrorr   r    rJ   rN   rH   r*   r0   STDIN_FILEOUTr?   s     r   testBadAppendOptionsz$SimplePipeTests.testBadAppendOptions{   s   NN 	)QXq%2DEEE 	*ah
DAAA 	*ah
ELIII NN	UZ(((*ah
EJGGG NN*ah /	1 	1 	1NN*ah
 .	0 	0 	0 NN*ah /	1 	1 	1NN*ah
 .	0 	0 	0 	0 	0r   c                    t                                           }|                     t          |j        dt           j                   |                     t          |j        dd           |                     t          |j        dt           j                   t                                           }|                    dt           j                   |                     t          |j        dt           j                   t                                           }|                     t          |j        dt           j	                   t                                           }|                     t          |j        dt           j
                   t                                           }|                     t          |j        dt           j	                   t                                           }|                     t          |j        dt           j                   d S )NrQ   r=   rR   rF   rS   rT   )r   r   rI   rU   rM   r    rJ   rH   rN   r*   r0   rV   r?   s     r   testBadPrependOptionsz%SimplePipeTests.testBadPrependOptions   s   NN 	)QY53EFFF 	*aitDDD 	*aiUZHHH NN			*el+++*aiU\JJJ NN*ai /	1 	1 	1NN*ai .	0 	0 	0 NN*ai /	1 	1 	1NN*ai .	0 	0 	0 	0 	0r   c                 |    t                                           }|                     t          |j        dd           d S )NrG   x)r   r   rI   rJ   r!   r?   s     r   testBadOpenModezSimplePipeTests.testBadOpenMode   s3    NN*afk3?????r   c                    t                                           }|                    dt           j                   |                                }|                     t          |          t          |                     |                     |j        |j                   |                     t          |j                  t          |j                             |                     |j	        |j	                   d S )Nr=   )
r   r   r   r    cloneassertNotEqualidr#   stepsrC   )r   r%   us      r   	testClonezSimplePipeTests.testClone   s    NN	u1222GGIIBqEE2a55)))!'***BqwKKAG555ak22222r   N)__name__
__module____qualname__r   r&   r-   r2   r7   r9   r;   r@   rD   rK   rO   rW   rY   r\   rc    r   r   r   r      s         9 9 9	9 	9 	9  
* 
* 
*
 
 
* * *I I I, , ,@ @ @@ @ @0 0 0D0 0 0B@ @ @3 3 3 3 3r   r   c                  "    t                       d S r   )r   rg   r   r   tearDownModuleri      s    OOOOOr   __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 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 : : : : : :'"" 7g
(
>
?
?? =rw~~j11 =
(
;
<
<<
3, !000&2H2HI	s3 s3 s3 s3 s3h' s3 s3 s3l   zHMOOOOO r   