
    ^h                     b    S r SSKrSSKrSSKrSSKJr  SSKJr  SSKJ	r	  Sr
SrS r\S	 5       rg)
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            	         [        S5       n U R                  [        5        U R                  5         U R	                  5         [
        R                  U R                  /n[        R                  R                  5       nSUS'   [        R                  " X[        R                  [        R                  [        R                  S9nUR                  [        5      u  pEUR!                  S5      nUR"                  S:X  d   eSU;   d   e[        R                  S:w  a  S	U;   d   eS
U;   d   e SSS5        g! , (       d  f       g= f)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          [/home/james-whalen/.local/lib/python3.13/site-packages/IPython/terminal/tests/test_embed.pytest_ipython_embedr'   )   s    	&';	<					 ~~qvv&jjoo(+$%S!z@=='jj!||q   377d?###}}) 
=	<	<s   DD22
E c                     SSK n Sn[        R                  R                  5       nSUS'   U R	                  [
        R                  / SQUS9nS[        -  Ul        UR                  U5        S	[        -  Ul        UR                  S
5        UR                  U5        UR                  S5        UR                  S5         SnUS:w  a  UR                  US/5      nUS:w  a  M  UR                  S5        UR                  U5        UR                  S5        UR                  SS/5      S:X  d   eUR                  U5        UR                  S5        UR                  SS/5      S:X  d   eUR                  U5        UR                  S5         SnUS:w  a  UR                  US/5      nUS:w  a  M  UR                  S5        UR                  U5        UR                  S5        UR                  SS/5      S:X  d   eUR                  U5        UR                  S5        UR                  SS/5      S:X  d   eUR                  U5        UR                  S5        UR                  U5        UR                  S5        UR                  SS/5      S:X  d   eUR                  U5        UR                  S5        UR                  SS/5      S:X  d   eUR                  U5        UR                  S5        UR                  U5        UR                  S5        UR                  SS/5      S:X  d   eUR                  U5        UR                  S5        UR                  SS/5      S:X  d   eUR                  U5        UR                  S5        UR                  5         g! U R                   a  n[        U5         SnAGNSnAff = f! U R                   a  n[        U5         SnAGN4SnAff = f)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   si    J
**//
C$'C ! MM#..*O!  #E66EM	LL55EM	NN#$	LL	NN()	NN$%!m||Z$89H !m
 
NN+,	LL	NNDE<<[12a787	LL	NNRS<<[12a787	LL	NN$%!m||Z$89H !m
 
NN+,	LL	NNGH<<[12a787	LL	NNRS<<[12a787	LL	NN6	LL	NNJK<<[12a787	LL	NNRS<<[12a787	LL	NN6	LL	NNGH<<[12a787	LL	NNOP<<[12a787	LL	NN6	KKMa ?? a$ ?? as0   =!N 
!O  N='N88N= O&O!!O&)__doc__r   r   r   IPython.utils.tempdirr   IPython.testing.decoratorsr   IPython.testingr   r   r   r'   r8        r&   <module>r?      sE     
  
 ? 1 9
 	2 G Gr>   