Sindbad~EG File Manager
�
'Μgn � � � d Z ddlZddlmZ ddlZddlZ eed� s ej d� �ej Z de v rde z dz Z ej � G d� d ej � � Ze
d
k( r ej � yy)zQBasic tests for os.popen()
Particularly useful for platforms that fake popen.
� N)�support�popenzneed os.popen()� �"c �0 � e Zd Zd� Zd� Zd� Zd� Zd� Zd� Zy)� PopenTestc �� � d}|t |fz }t j |� 5 }|j � }d d d � t � dd }| j ||� y # 1 sw Y �*xY w)Nz&%s -c "import sys; print(sys.argv)" %s� )�python�osr �read�eval�assertEqual)�self�cmdline�expected�cmd�p�data�gots �,/usr/local/lib/python3.12/test/test_popen.py�_do_test_commandlinezPopenTest._do_test_commandline sZ � �6���V�W�%�%��
�X�X�c�]�a��6�6�8�D� ��4�j���n������h�'� �]�s �A�A&c �� � | j t t j � | j dddg� | j dg d�� | j dg d�� t j � y )Nzfoo bar�foo�barz foo "spam and eggs" "silly walk")r z
spam and eggsz
silly walkzfoo "a \"quoted\" arg" bar)r za "quoted" argr )�assertRaises� TypeErrorr r r r �
reap_children�r s r �
test_popenzPopenTest.test_popen! sh � ����)�R�X�X�.��!�!��
�E�N�
�
�!�!�.�2�
�
�!�!�*�,�
� ���� c �F � | j t j d� j � d � t j d� j � }t j dk( r| j |d� y | j t j
|� d� y )N�exit 0zexit 42�nt�* )r r r �close�name�waitstatus_to_exitcode)r �statuss r �test_return_codezPopenTest.test_return_code1 sq � �������(�+�1�1�3�T�:����)�$�*�*�,��
�7�7�d�?����V�R�(����R�6�6�v�>��Cr! c � � t j d� 5 }| j |j � d� d d d � y # 1 sw Y y xY w�Nz
echo hellozhello
)r r r r
�r �fs r �test_contextmanagerzPopenTest.test_contextmanager9 s2 � �
�X�X�l�
#�q����Q�V�V�X�y�1� $�
#�
#�s �!A � A c � � t j d� 5 }| j t |� dg� d d d � y # 1 sw Y y xY wr, )r r r �listr- s r �test_iteratingzPopenTest.test_iterating= s2 � �
�X�X�l�
#�q����T�!�W�y�k�2� $�
#�
#�s �<�Ac �` � t j ddd�� 5 d d d � y # 1 sw Y y xY w)Nr# �w���)r �mode� buffering)r r r s r �
test_keywordszPopenTest.test_keywordsA s! � �
�X�X�(���
;�� <�
;�
;�s �$�-N) �__name__�
__module__�__qualname__r r r* r/ r2 r8 � r! r r r s! � �(� � D�2�3�r! r �__main__)�__doc__�unittest�testr r �sys�hasattr�SkipTest�
executabler �requires_subprocess�TestCaser r9 �mainr<