ó
c’?[c           @   s  d  d l  Z  d  d l Z d  d l Z d  d l Z y d  d l m Z Wn! e k
 rg d  d l m Z n Xd  d l m	 Z	 d  d l
 m Z d  d l m Z d  d l m Z e  j j e  j j e  j j e ƒ ƒ d ƒ Z d e	 f d	 „  ƒ  YZ d
 e j f d „  ƒ  YZ d S(   iÿÿÿÿN(   t   patch(   t   ZMQTerminalInteractiveShell(   t   TemporaryDirectory(   t   skip_without(   t   Structs   writetofile.pyt   NonCommunicatingShellc           B   s   e  Z d  Z d „  Z RS(   sI   A testing shell class that doesn't attempt to communicate with the kernelc         C   s   d  S(   N(    (   t   self(    (    sG   lib/python2.7/site-packages/jupyter_console/tests/test_image_handler.pyt   init_kernel_info   s    (   t   __name__t
   __module__t   __doc__R   (    (    (    sG   lib/python2.7/site-packages/jupyter_console/tests/test_image_handler.pyR      s   t#   ZMQTerminalInteractiveShellTestCasec           B   sS   e  Z d  „  Z d „  Z e d ƒ d „  ƒ Z d „  Z d „  Z d „  Z d „  Z	 RS(   c         C   sJ   t  ƒ  |  _ d |  _ d |  _ i t j |  j ƒ j d ƒ |  j 6|  _ d  S(   Ns
   dummy datas	   image/pngt   ascii(   R   t   shellt   rawt   mimet   base64t   encodestringt   decodet   data(   R   (    (    sG   lib/python2.7/site-packages/jupyter_console/tests/test_image_handler.pyt   setUp   s    		c            sw   g  ‰  ‡  f d †  } d „  } |  j  } | | _ | | _ | | _ | | _ | j d  d  ƒ t ˆ  ƒ d k ss t ‚ d  S(   Nc            s   ˆ  j  |  ƒ d  S(   N(   t   append(   R   R   (   t   pil_called_with(    sG   lib/python2.7/site-packages/jupyter_console/tests/test_image_handler.pyt
   pil_called'   s    c          _   s   t  s t ‚ d  S(   N(   t   Falset   AssertionError(   t   argst   kwds(    (    sG   lib/python2.7/site-packages/jupyter_console/tests/test_image_handler.pyt   raise_if_called*   s    i   (	   R   t   handle_image_PILt   handle_image_streamt   handle_image_tempfilet   handle_image_callablet   handle_imaget   Nonet   lenR   (   R   R   R   R   (    (   R   sG   lib/python2.7/site-packages/jupyter_console/tests/test_image_handler.pyt   test_call_pil_by_default%   s    						t   PILc            sÞ   d d l  m } m } g  ‰  g  ‰ ‡  f d †  } ‡ f d †  } t j | d | ƒ : t j | d | ƒ  |  j j |  j |  j ƒ Wd  QXWd  QX|  j	 t
 ˆ  ƒ d ƒ |  j	 t
 ˆ ƒ d ƒ |  j	 ˆ  d j ƒ  |  j ƒ d  S(	   Niÿÿÿÿ(   t   Imaget	   ImageShowc            s   ˆ  j  |  ƒ d  S(   N(   R   (   t   arg(   t   open_called_with(    sG   lib/python2.7/site-packages/jupyter_console/tests/test_image_handler.pyt	   fake_open=   s    c            s   ˆ  j  |  ƒ d  S(   N(   R   (   t   img(   t   show_called_with(    sG   lib/python2.7/site-packages/jupyter_console/tests/test_image_handler.pyt	   fake_show@   s    t   opent   showi   i    (   R%   R&   R'   R    t   objectR   R   R   R   t   assertEqualR#   t   getvalueR   (   R   R&   R'   R*   R-   (    (   R)   R,   sG   lib/python2.7/site-packages/jupyter_console/tests/test_image_handler.pyt   test_handle_image_PIL6   s    %c      	   C   sô   |  j  } d j | ƒ } d j | ƒ } t | | ƒ s< t ‚ t | | ƒ sQ t ‚ t ƒ   } t j j | d ƒ } t j	 t
 | | g } t | | | ƒ t | | ƒ |  j |  j ƒ t | d ƒ  }	 |	 j ƒ  }
 Wd  QXWd  QX|  j |
 |  j ƒ d  S(   Ns   {0}_image_handlers   handle_image_{0}R   t   rb(   R   t   formatt   hasattrR   R   t   ost   patht   joint   syst
   executablet   SCRIPT_PATHt   setattrt   getattrR   R   R.   t   readR1   R   (   R   t   inpatht   handlerR   t
   confignamet   funcnamet   tmpdirt   outpatht   cmdt   filet   transferred(    (    sG   lib/python2.7/site-packages/jupyter_console/tests/test_image_handler.pyt   check_handler_with_fileK   s    	c         C   s   |  j  d d ƒ d  S(   Nt   -t   stream(   RI   (   R   (    (    sG   lib/python2.7/site-packages/jupyter_console/tests/test_image_handler.pyt   test_handle_image_stream^   s    c         C   s   |  j  d d ƒ d  S(   Ns   {file}t   tempfile(   RI   (   R   (    (    sG   lib/python2.7/site-packages/jupyter_console/tests/test_image_handler.pyt   test_handle_image_tempfilea   s    c         C   sa   g  } | j  |  j _ |  j j |  j |  j ƒ |  j t | ƒ d ƒ | d |  j k s] t ‚ d  S(   Ni   i    (	   R   R   t   callable_image_handlerR    R   R   R1   R#   R   (   R   t   called_with(    (    sG   lib/python2.7/site-packages/jupyter_console/tests/test_image_handler.pyt   test_handle_image_callabled   s
    (
   R   R	   R   R$   R   R3   RI   RL   RN   RQ   (    (    (    sG   lib/python2.7/site-packages/jupyter_console/tests/test_image_handler.pyR      s   					(   R7   R:   t   unittestR   t   unittest.mockR    t   ImportErrort   mockt   jupyter_console.ptshellR   t   ipython_genutils.tempdirR   t#   ipython_genutils.testing.decoratorsR   t   ipython_genutils.ipstructR   R8   R9   t   abspatht   dirnamet   __file__R<   R   t   TestCaseR   (    (    (    sG   lib/python2.7/site-packages/jupyter_console/tests/test_image_handler.pyt   <module>   s   	$