
    7bht	                        	 d dl Z d dlmZ d dlZd dlZ eed      s e j                  d      ej                  Zdev rdez   dz   Z ej                          G d de j                               Zed	k(  r e j                          yy)
    N)supportpopenzneed os.popen() "c                   0    e Zd Zd Zd Zd Zd Zd Zd Zy)	PopenTestc                     d}|t         |fz  }t        j                  |      5 }|j                         }d d d        t	              dd  }| j                  ||       y # 1 sw Y   *xY w)Nz&%s -c "import sys; print(sys.argv)" %s   )pythonosr   readevalassertEqual)selfcmdlineexpectedcmdpdatagots          9/opt/python-3.12.12/usr/lib/python3.12/test/test_popen.py_do_test_commandlinezPopenTest._do_test_commandline   sZ    6VW%%XXc]a668D 4jnh' ]s   AA&c                     | j                  t        t        j                         | j	                  dddg       | j	                  dg d       | j	                  dg d       t        j                          y )Nzfoo barfoobarz foo "spam and eggs" "silly walk")r   zspam and eggsz
silly walkzfoo "a \"quoted\" arg" bar)r   za "quoted" argr   )assertRaises	TypeErrorr   r   r   r   reap_children)r   s    r   
test_popenzPopenTest.test_popen!   sh    )RXX.!!EN	
 	!!.2	
 	!!*,	
 	    c                 F   | j                  t        j                  d      j                         d        t        j                  d      j                         }t        j                  dk(  r| j                  |d       y | j                  t        j
                  |      d       y )Nzexit 0zexit 42nt*   )r   r   r   closenamewaitstatus_to_exitcode)r   statuss     r   test_return_codezPopenTest.test_return_code1   sq    (+113T:)$**,77d?VR(R66v>Cr    c                    t        j                  d      5 }| j                  |j                         d       | j	                  |j
                         d d d        | j                  j
                         y # 1 sw Y   %xY wN
echo hellohello
r   r   r   r   assertFalseclosed
assertTruer   fs     r   test_contextmanagerzPopenTest.test_contextmanager9   sX    XXl#qQVVXy1QXX& $ 	! $#s   <A66A?c                     t        j                  d      5 }| j                  t        |      dg       | j	                  |j
                         d d d        | j                  j
                         y # 1 sw Y   %xY wr*   )r   r   r   listr.   r/   r0   r1   s     r   test_iteratingzPopenTest.test_iterating?   sX    XXl#qT!Wyk2QXX& $ 	! $#s   8A22A;c                 
   t        j                  ddd      5 }| j                  |j                         d       | j	                  |j
                         d d d        | j                  j
                         y # 1 sw Y   %xY w)Nr+   r)r   mode	bufferingr,   r-   r1   s     r   test_keywordszPopenTest.test_keywordsE   s^    XX,SB?1QVVXy1QXX& @ 	! @?s   <A99BN)	__name__
__module____qualname__r   r   r(   r3   r6   r<    r    r   r   r      s!    (  D"""r    r   __main__)unittesttestr   r   syshasattrSkipTest
executabler   requires_subprocessTestCaser   r=   mainr@   r    r   <module>rK      s   
   r7
(

-
.. 
&=6\CF2"!! 2" 2"j zHMMO r    