
    &e                     j    d Z ddlZddlZddlZddlmZ ddlmZ ddlm	Z	 dZ
dZd Zed	             ZdS )
zTest embedding of IPython    N)NamedFileInTemporaryDirectory)
skip_win32)IPYTHON_TESTING_TIMEOUT_SCALEsO   
import IPython

a = 3
b = 14
print(a, '.', b)

IPython.embed()

print('bye!')
s   exitc                  x   t          d          5 } |                     t                     |                                  |                                  t
          j        | j        g}t          j	        
                                }d|d<   t          j        ||t          j        t          j        t          j                  }|                    t                    \  }}|                    d          }|j        dk    sJ d|v sJ t          j        dk    rd	|v sJ d
|v sJ 	 ddd           dS # 1 swxY w Y   dS )z!test that `IPython.embed()` workszfile_with_embed.py1IPY_TEST_SIMPLE_PROMPT)envstdinstdoutstderrzUTF-8r   z3 . 14ntIPythonzbye!N)r   write_sample_embedflushclosesys
executablenameosenvironcopy
subprocessPopenPIPEcommunicate_exitdecode
returncode)fcmdr	   pouterrstds          Alib/python3.11/site-packages/IPython/terminal/tests/test_embed.pytest_ipython_embedr'   )   sf   	&';	<	< 									 ~qv&joo(+$%Sc!z@ @ @==''Sjj!!|q    37d??####}}}}})                 s   DD//D36D3c                  	   ddl } d}t          j                                        }d|d<   |                     t
          j        g d|          }dt          z  |_        |	                    |           d	t          z  |_        |
                    d
           |	                    |           |
                    d           |
                    d           	 d}|dk    r|	                    |dg          }|dk    n&# | j        $ r}t          |           Y d}~nd}~ww xY w|
                    d           |	                    |           |
                    d           |	                    ddg          dk    sJ |	                    |           |
                    d           |	                    ddg          dk    sJ |	                    |           |
                    d           	 d}|dk    r|	                    |dg          }|dk    n&# | j        $ r}t          |           Y d}~nd}~ww xY w|
                    d           |	                    |           |
                    d           |	                    ddg          dk    sJ |	                    |           |
                    d           |	                    ddg          dk    sJ |	                    |           |
                    d           |	                    |           |
                    d           |	                    ddg          dk    sJ |	                    |           |
                    d           |	                    ddg          dk    sJ |	                    |           |
                    d           |	                    |           |
                    d           |	                    ddg          dk    sJ |	                    |           |
                    d           |	                    ddg          dk    sJ |	                    |           |
                    d           |                                 dS )z'test that `IPython.embed()` is nestabler   Nz]:r   r   )z-mr   z--colors=nocolor)r	         zimport IPythonzip0 = get_ipython()zIPython.embed()z
zembed1 = get_ipython()z/print('true' if embed1 is not ip0 else 'false')ztrue
zfalse
z=print('true' if IPython.get_ipython() is embed1 else 'false')zembed2 = get_ipython()z2print('true' if embed2 is not embed1 else 'false')z=print('true' if embed2 is IPython.get_ipython() else 'false')exitz5print('true' if get_ipython() is embed1 else 'false')z2print('true' if get_ipython() is ip0 else 'false')z:print('true' if IPython.get_ipython() is ip0 else 'false'))pexpectr   r   r   spawnr   r   r   timeoutexpectsendlineTIMEOUTprintr   )r-   
ipy_promptr	   childpromptedes         r&   test_nest_embedr8   B   s    NNNJ
*//

C$'C ! MM#.*O*O*O!  # #E66EM	LL55EM	NN#$$$	LL	NN()))	NN$%%%!mm||Z$899H !mm?   a 
NN+,,,	LL	NNDEEE<<[122a7777	LL	NNRSSS<<[122a7777	LL	NN$%%%!mm||Z$899H !mm?   a 
NN+,,,	LL	NNGHHH<<[122a7777	LL	NNRSSS<<[122a7777	LL	NN6	LL	NNJKKK<<[122a7777	LL	NNRSSS<<[122a7777	LL	NN6	LL	NNGHHH<<[122a7777	LL	NNOPPP<<[122a7777	LL	NN6	KKMMMMMs0   %C< <
DDD0%H 
H9 H44H9)__doc__r   r   r   IPython.utils.tempdirr   IPython.testing.decoratorsr   IPython.testingr   r   r   r'   r8        r&   <module>r?      s      
			     



 ? ? ? ? ? ? 1 1 1 1 1 1 9 9 9 9 9 9
 	  2 G G G G Gr>   