
    "d                     *   d dl Z d dlZd dlZd dlmZ d dlZd dlmZ d dlZd dl	m
Z
 ej                            ej                            ej                            e                    d          Z G d de
          Z G d d	ej                  ZdS )
    N)TemporaryDirectory)patch)ZMQTerminalInteractiveShellzwritetofile.pyc                       e Zd ZdZd ZdS )NonCommunicatingShellzIA testing shell class that doesn't attempt to communicate with the kernelc                     d S N selfs    Hlib/python3.11/site-packages/jupyter_console/tests/test_image_handler.pyinit_kernel_infoz&NonCommunicatingShell.init_kernel_info   s        N)__name__
__module____qualname____doc__r   r
   r   r   r   r      s)        SS    r   r   c                   8    e Zd Zd Zd Zd Zd Zd Zd Zd Z	dS )	#ZMQTerminalInteractiveShellTestCasec                     t                      | _        d| _        d| _        | j        t	          j        | j                                      d          i| _        d S )Ns
   dummy dataz	image/pngascii)r   shellrawmimebase64encodebytesdecodedatar   s    r   setUpz)ZMQTerminalInteractiveShellTestCase.setUp   sJ    *,,
 	Y 248 < < C CG L LM			r   c                     g fd}d }| j         }||_        ||_        ||_        ||_        |                    d d            t                    dk    sJ d S )Nc                 2                         |            d S r	   append)r   r   pil_called_withs     r   
pil_calledzPZMQTerminalInteractiveShellTestCase.test_call_pil_by_default.<locals>.pil_called$   s    ""4(((((r   c                      J r	   r
   )argskwdss     r   raise_if_calledzUZMQTerminalInteractiveShellTestCase.test_call_pil_by_default.<locals>.raise_if_called'   s    Lr      )r   handle_image_PILhandle_image_streamhandle_image_tempfilehandle_image_callablehandle_imagelen)r   r%   r)   r   r$   s       @r   test_call_pil_by_defaultz<ZMQTerminalInteractiveShellTestCase.test_call_pil_by_default!   s    	) 	) 	) 	) 	)	 	 	 
!+$3!&5#&5#4&&&?##q((((((r   c                 R   t          j        d           ddlm}m} g g fd}fd}t          j        |d|          5  t          j        |d|          5  | j                            | j	        | j
                   d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   |                     t                    d           |                     t                    d           |                     d                                         | j                   d S )	NPILr   )Image	ImageShowc                 2                         |            d S r	   r"   )argopen_called_withs    r   	fake_openzLZMQTerminalInteractiveShellTestCase.test_handle_image_PIL.<locals>.fake_open:       ##C(((((r   c                 2                         |            d S r	   r"   )imgshow_called_withs    r   	fake_showzLZMQTerminalInteractiveShellTestCase.test_handle_image_PIL.<locals>.fake_show=   r:   r   openshowr*   )pytestimportorskipr3   r4   r5   r   objectr   r+   r   r   assertEqualr0   getvaluer   )r   r4   r5   r9   r>   r8   r=   s        @@r   test_handle_image_PILz9ZMQTerminalInteractiveShellTestCase.test_handle_image_PIL3   s   E"""((((((((	) 	) 	) 	) 	)	) 	) 	) 	) 	) \%33 	> 	>\)VY77	> 	>J''	49===	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	-..222-..222)!,5577BBBBBs6   B#&B B#B	B#B	B##B'*B'c                 ~   | j         }d                    |          }d                    |          }t          ||          sJ t          ||          sJ t                      5 }t          j                            |d          }t          j        t          ||g}t          |||            t          ||          | j        | j                   t          |d          5 }	|	                                }
d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   |                     |
| j                   d S )Nz{0}_image_handlerzhandle_image_{0}r   rb)r   formathasattrr   ospathjoinsys
executableSCRIPT_PATHsetattrgetattrr   r   r?   readrD   r   )r   inpathhandlerr   
confignamefuncnametmpdiroutpathcmdfiletransferreds              r   check_handler_with_filez;ZMQTerminalInteractiveShellTestCase.check_handler_with_fileH   s   
(//88
%,,W55uj)))))uh'''''!! 	*Vgll6622G>;@CE:s+++$GE8$$TY	:::gt$$ *"iikk* * * * * * * * * * * * * * *	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	dh/////s7   $A;DD 4D D	DD	DDDc                 2    |                      dd           d S )N-streamr]   r   s    r   test_handle_image_streamz<ZMQTerminalInteractiveShellTestCase.test_handle_image_stream[   s    $$S(33333r   c                 2    |                      dd           d S )Nz{file}tempfilera   r   s    r   test_handle_image_tempfilez>ZMQTerminalInteractiveShellTestCase.test_handle_image_tempfile^   s    $$Xz:::::r   c                     g }|j         | j        _        | j                            | j        | j                   |                     t          |          d           |d         | j        u sJ d S )Nr*   r   )r#   r   callable_image_handlerr.   r   r   rD   r0   )r   called_withs     r   test_handle_image_callablez>ZMQTerminalInteractiveShellTestCase.test_handle_image_callablea   sk    ,7,>
)
((DI>>>[))1---1~******r   N)
r   r   r   r   r1   rF   r]   rb   re   ri   r
   r   r   r   r      s        N N N) ) )$C C C*0 0 0&4 4 4; ; ;+ + + + +r   r   )r   rK   rN   rd   r   unittestunittest.mockr   rA   jupyter_console.ptshellr   rL   rM   abspathdirname__file__rP   r   TestCaser   r
   r   r   <module>rq      s    				 



 ' ' ' ' ' '         ? ? ? ? ? ? gllGOOBGOOH--..0@B B    7   M+ M+ M+ M+ M+(*; M+ M+ M+ M+ M+r   