ó
0¾I]c           @   s  d  Z  d d l Z d d l Z d d l m Z d d l Z d d l Z d d l Z d d l m	 Z	 e	 d „  ƒ Z
 d Z d „  Z d „  Z d	 „  Z d
 „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d S(   s   Test Image widgetiÿÿÿÿN(   t   Image(   t   contextmanagerc          c   sl   t  j d d ƒ }  t j ƒ  \ } } t j | ƒ t | d ƒ  } | j |  ƒ Wd  QX| Vt j | ƒ d  S(   Ns   ipywidgets.widgets.testss!   data/jupyter-logo-transparent.pngt   wb(	   t   pkgutilt   get_datat   tempfilet   mkstempt   ost   closet   opent   writet   remove(   t	   LOGO_DATAt   handlet   fnamet   f(    (    sI   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_widget_image.pyt   get_logo_png   s    		t@   3ff9eafd7197083153e83339a72e7a335539bae189c33554c680e4382c98af02c           C   s   t  ƒ  d  S(   N(   R    (    (    (    sI   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_widget_image.pyt   test_empty_image%   s    c          C   s   d }  t  d |  ƒ d  S(   Ns   eÊ€Íšk#§t   value(   R    (   t   random_bytes(    (    sI   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_widget_image.pyt   test_image_value*   s    c           C   s+   t  d d ƒ t  d d ƒ t  d d ƒ d  S(   Nt   formatt   pngt   jpegt   url(   R    (    (    (    sI   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_widget_image.pyt   test_image_format0   s    c          C   s5   t  ƒ  & }  t j |  ƒ } t | j t ƒ Wd  QXd  S(   N(   R   R    t	   from_filet   assert_equal_hashR   t   LOGO_PNG_DIGEST(   t   LOGO_PNGt   img(    (    sI   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_widget_image.pyt   test_from_filename9   s    c          C   s<   t  ƒ  }  t ƒ  $ } |  j | ƒ t |  j t ƒ Wd  QXd  S(   N(   R    R   t   set_value_from_fileR   R   R   (   R   R   (    (    sI   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_widget_image.pyt   test_set_from_filename@   s    	c          C   sM   t  ƒ  > }  t |  d ƒ & } t j | ƒ } t | j t ƒ Wd  QXWd  QXd  S(   Nt   rb(   R   R	   R    R   R   R   R   (   R   R   R   (    (    sI   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_widget_image.pyt   test_from_fileH   s    c          C   sT   t  ƒ  }  t ƒ  < } t | d ƒ $ } |  j | ƒ t |  j t ƒ Wd  QXWd  QXd  S(   NR#   (   R    R   R	   R!   R   R   R   (   R   R   R   (    (    sI   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_widget_image.pyt   test_set_value_from_fileO   s
    	c          C   s(   t  j d ƒ }  |  j d k s$ t ‚ d  S(   Nu(   https://jupyter.org/assets/main-logo.svgs(   https://jupyter.org/assets/main-logo.svg(   R    t   from_urlR   t   AssertionError(   R   (    (    sI   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_widget_image.pyt   test_from_url_unicodeW   s    c          C   s(   t  j d ƒ }  |  j d k s$ t ‚ d  S(   Ns(   https://jupyter.org/assets/main-logo.svg(   R    R&   R   R'   (   R   (    (    sI   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_widget_image.pyt   test_from_url_bytes\   s    c          C   s\   t  j d d d t ƒ ) }  |  j } |  j ƒ  t j | ƒ } Wd  QX| j d k sX t ‚ d  S(   Nt   suffixs   .svgt   deletes   svg+xml(	   R   t   NamedTemporaryFilet   Falset   nameR   R    R   R   R'   (   R   R.   R   (    (    sI   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_widget_image.pyt   test_format_inference_filenameb   s
    	
c          C   sI   t  j d d d t ƒ + }  t j |  ƒ } | j d k s? t ‚ Wd  QXd  S(   NR*   s   .gifR+   t   gif(   R   R,   R-   R    R   R   R'   (   R   R   (    (    sI   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_widget_image.pyt   test_format_inference_filek   s    c          C   s7   t  j d ƒ }  t j |  ƒ } | j d k s3 t ‚ d  S(   Nt    R   (   t   iot   BytesIOR    R   R   R'   (   t   fstreamR   (    (    sI   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_widget_image.pyt   test_format_inference_streamr   s    c          C   s   t  j d ƒ }  t j |  ƒ } | j ƒ  } t | d t t f ƒ sI t ‚ t | d ƒ | d <t ƒ  } | j	 | ƒ | j
 | j
 k s‹ t ‚ d  S(   Nt   123R   (   R3   R4   R    R   t	   get_statet
   isinstancet   bytest
   memoryviewR'   t	   set_stateR   (   R5   R   t	   img_statet   img_copy(    (    sI   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_widget_image.pyt   test_serializez   s    	c          C   sb   t  j d d d t ƒ / }  |  j } |  j ƒ  t j | d d ƒ} Wd  QX| j d k s^ t ‚ d  S(   NR*   s   .svgR+   R   R0   (	   R   R,   R-   R.   R   R    R   R   R'   (   R   R.   R   (    (    sI   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_widget_image.pyt!   test_format_inference_overridable‹   s
    	
c       
   C   sv   t  ƒ  g }  t |  d ƒ O } t j | ƒ } t | j ƒ  ƒ d k  sK t ‚ | j ƒ  j d ƒ sf t ‚ Wd  QXWd  QXd  S(   NR#   ix   s   ...')(   R   R	   R    R   t   lent   __repr__R'   t   endswith(   R   R   R   (    (    sI   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_widget_image.pyt   test_value_repr_length”   s
    c          C   s+   t  j d ƒ }  d |  j ƒ  k s' t ‚ d  S(   Ns(   https://jupyter.org/assets/main-logo.svg(   R    R&   RB   R'   (   R   (    (    sI   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_widget_image.pyt   test_value_repr_urlœ   s    c         C   s&   t  j d ƒ } | j |  ƒ | j ƒ  S(   Nt   sha256(   t   hashlibt   newt   updatet	   hexdigest(   t   byte_strt   m(    (    sI   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_widget_image.pyt   get_hash_hex£   s    c         C   s   t  |  ƒ | k s t ‚ d  S(   N(   RM   R'   (   RK   t   digest(    (    sI   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_widget_image.pyR   «   s    (   t   __doc__R3   R   t
   ipywidgetsR    RG   R   R   t
   contextlibR   R   R   R   R   R   R    R"   R$   R%   R(   R)   R/   R1   R6   R?   R@   RD   RE   RM   R   (    (    (    sI   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_widget_image.pyt   <module>   s6   																				