ó
0¾I]c           @  s‹  d  Z  d d l m Z y d d l m Z Wn! e k
 rM d d l m Z n Xd d l Z d d l m	 Z	 d d l
 Z
 d d l Z d d l m Z d d l m Z m Z m Z m Z m Z d d l m Z d	 d
 l m Z m Z d „  Z g  a e
 j ƒ  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  „  Z0 d! „  Z1 d" „  Z2 d# „  Z3 d$ „  Z4 d% „  Z5 d& „  Z6 d' „  Z7 d( „  Z8 d) „  Z9 d* „  Z: d+ „  Z; d, „  Z< d- „  Z= d. „  Z> d/ „  Z? d0 „  Z@ d1 „  ZA d2 „  ZB d3 „  ZC d4 „  ZD d5 „  ZE d6 „  ZF d7 „  ZG d S(8   s   Test interact and interactive.iÿÿÿÿ(   t   print_function(   t   patchN(   t   OrderedDict(   t
   TraitError(   t   interactt   interact_manualt   interactivet   interactiont   Output(   t   annotatei   (   t   setupt   teardownc          K  s   d  S(   N(    (   t   kwargs(    (    sH   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_interaction.pyt   f   s    c           C  s
   g  a  d  S(   N(   t	   displayed(    (    (    sH   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_interaction.pyt   clear_display"   s    c          G  s   t  j |  ƒ d  S(   N(   R   t   extend(   t   args(    (    sH   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_interaction.pyt   record_display'   s    c         K  sà   xÙ | j  ƒ  D]Ë \ } } | d k r= |  j | k sØ t ‚ q t |  | ƒ } | | k sz t d |  j j | | | f ƒ ‚ t | t t f ƒ r t | ƒ } t | ƒ } | | k sØ t d |  j j | | | f ƒ ‚ q q Wd S(   s$   Check a single widget against a dictt   clss   %s.%s = %r != %rs   type(%s.%s) = %r != %rN(	   t   itemst	   __class__t   AssertionErrort   getattrt   __name__t
   isinstancet   intt   floatt   type(   t   wt   dt   attrt   expectedt   valuet   tvt   te(    (    sH   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_interaction.pyt   check_widget.   s    .c         K  s}   i  } x0 |  j  D]% } t | t ƒ s | | | j <q q Wx= | j ƒ  D]/ \ } } | | k sd t ‚ t | | |  qF Wd S(   s*   Check that widgets are created as expectedN(   t   childrenR   R   t   descriptionR   R   R$   (   t	   containert   to_checkt   widgetsR   t   keyR   (    (    sH   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_interaction.pyt   check_widgets=   s    c          C  sH   d }  t  t d |  ƒ} | j d } t | d t j d d d |  ƒd  S(   Nu   hellot   ai    R   R&   R!   (   R   R   R%   R$   R)   t   Text(   R,   t   cR   (    (    sH   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_interaction.pyt   test_single_value_stringJ   s    		c       	   C  sY   xR t  t f D]D }  t t d |  ƒ} | j d } t | d t j d d d |  ƒq Wd  S(   NR,   i    R   R&   R!   (   t   Truet   FalseR   R   R%   R$   R)   t   Checkbox(   R,   R.   R   (    (    sH   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_interaction.pyt   test_single_value_boolT   s    		c          C  s±   xª d D]¢ }  |  s" d } d } n1 |  d k rB |  } d |  } n d |  } |  } t  t d |  ƒ} | j d } t | d t j d	 d d
 |  d | d | d d d t ƒq Wd  S(   Ng      @g      ð?g      Àg        i    i   R,   R   R&   R!   t   mint   maxt   stepgš™™™™™¹?t   readout(   g      @g      ð?g      Àg        (   R   R   R%   R$   R)   t   FloatSliderR0   (   R,   t   expected_mint   expected_maxR.   R   (    (    sH   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_interaction.pyt   test_single_value_float^   s&    	
		c          C  sÌ   xÅ d D]½ }  |  s" d } d } n1 |  d k rB |  } d |  } n d |  } |  } t  t d |  ƒ} t | j ƒ d k s€ t ‚ | j d } t | d t j d	 d d
 |  d | d | d d d t ƒq Wd  S(   Ni   i   iýÿÿÿi    i   R,   i   R   R&   R!   R4   R5   R6   R7   (   i   i   iýÿÿÿi    (	   R   R   t   lenR%   R   R$   R)   t	   IntSliderR0   (   R,   R9   R:   R.   R   (    (    sH   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_interaction.pyt   test_single_value_intu   s(    	
		c          C  s–   d d d g }  |  d } t  t d |  ƒ} t | j ƒ d k sF t ‚ t d t j d | d	 t |  ƒ d
 t |  ƒ d t |  ƒ ƒ } t	 | d | ƒd  S(   Nt   hellot   theret   guyi    t   lisi   R   R!   t   optionst   _options_labelst   _options_values(
   R   R   R<   R%   R   t   dictR)   t   Dropdownt   tupleR+   (   t   valuest   firstR.   R   (    (    sH   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_interaction.pyt   test_list_str   s    
	c          C  s    d d d g }  |  d } t  t d |  ƒ} t | j ƒ d k sF t ‚ t d t j d | d t |  ƒ d	 t d
 „  |  Dƒ ƒ d t |  ƒ ƒ } t	 | d | ƒd  S(   Ni   i   i   i    RB   R   R!   RC   RD   c         s  s   |  ] } t  | ƒ Vq d  S(   N(   t   str(   t   .0t   v(    (    sH   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_interaction.pys	   <genexpr>¤   s    RE   (
   R   R   R<   R%   R   RF   R)   RG   RH   R+   (   RI   RJ   R.   R   (    (    sH   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_interaction.pyt   test_list_int›   s    
	c          C  sŽ   d d d g }  |  d d } t  t d |  ƒ} t | j ƒ d k sJ t ‚ t d	 t j d
 | d t |  ƒ d d d d ƒ } t	 | d | ƒd  S(   Ni   i,  i   id   i   iÈ   i    RB   R   R!   RC   RD   t   3t   1t   2RE   (   i   i,  (   i   id   (   i   iÈ   (   RP   RQ   RR   (   i,  id   iÈ   (
   R   R   R<   R%   R   RF   R)   RG   RH   R+   (   RI   RJ   R.   R   (    (    sH   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_interaction.pyt   test_list_tuple©   s    		c       	   C  sJ   xC d g D]8 }  t  j t ƒ ! t |  ƒ t t d |  ƒ} Wd  QXq
 Wd  S(   Nt   tup(    (   t   pytestt   raisest
   ValueErrort   printR   R   (   t   badR.   (    (    sH   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_interaction.pyt   test_list_tuple_invalid·   s
    
c          C  s¿   x¸ t  d d ƒ t  d d d d d t  ƒ g D]Œ }  t t d |  ƒ} | j d } t  d t j d d d	 t t |  j ƒ  ƒ ƒ d
 |  d t	 |  j
 ƒ  ƒ d t	 |  j ƒ  ƒ ƒ } t | |  q+ Wd  S(   NR,   i   t   bR.   R   i    R   R&   R!   RC   RD   RE   (   RF   R   R   R%   R)   RG   t   nextt   iterRI   RH   t   keysR$   (   R   R.   R   t   check(    (    sH   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_interaction.pyt	   test_dict¿   s    "	c          C  s¤   d d l  m }  d d d g } | d	 d } |  | ƒ } t t d
 | ƒ} t | j ƒ d k sf t ‚ t d t j	 d | d | d d d d ƒ } t
 | d
 | ƒd  S(   Niÿÿÿÿ(   R   i   i,  i   id   i   iÈ   i    RB   R   R!   RC   RD   RP   RQ   RR   RE   (   i   i,  (   i   id   (   i   iÈ   (   RP   RQ   RR   (   i,  id   iÈ   (   t   collectionsR   R   R   R<   R%   R   RF   R)   RG   R+   (   R   R   RJ   RI   R.   R   (    (    sH   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_interaction.pyt   test_ordereddictÑ   s    		c          C  s†   d „  }  t  |  ƒ  ƒ } t t d |  ƒ  ƒ} t | j ƒ d k sH t ‚ t d t j d | d d d	 d d d ƒ } t	 | d | ƒd  S(   Nc           s  s   d Vd Vd Vd  S(   Ni   i   i   (    (    (    (    sH   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_interaction.pyt   yield_valuesâ   s    RB   i   R   R!   RC   i   i   RD   RP   RQ   RR   RE   (   i   i   i   (   RP   RQ   RR   (   i   i   i   (
   R\   R   R   R<   R%   R   RF   R)   RG   R+   (   Rc   RJ   R.   R   (    (    sH   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_interaction.pyt   test_iterableá   s    			c          C  s”   d d d g }  |  d d } t  t d t |  ƒ ƒ} t | j ƒ d k sP t ‚ t d	 t j d
 | d t	 |  ƒ d d d d ƒ } t
 | d | ƒd  S(   Ni   i,  i   id   i   iÈ   i    RB   R   R!   RC   RD   RP   RQ   RR   RE   (   i   i,  (   i   id   (   i   iÈ   (   RP   RQ   RR   (   i,  id   iÈ   (   R   R   R]   R<   R%   R   RF   R)   RG   RH   R+   (   RI   RJ   R.   R   (    (    sH   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_interaction.pyt   test_iterable_tupleò   s    		c          C  sÆ   d d l  m }  m } d |  f d „  ƒ  Y} d d d g } | d d } | | ƒ } t t d | ƒ} t | j ƒ d	 k s‚ t ‚ t d t	 j
 d | d t | ƒ d d d d ƒ } t | d | ƒd  S(   Niÿÿÿÿ(   t   MappingR   t   TestMappingc           B  s5   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         S  s   | |  _  d  S(   N(   RI   (   t   selfRI   (    (    sH   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_interaction.pyt   __init__  s    c         S  s
   t  ‚ d  S(   N(   t   NotImplementedError(   Rh   (    (    sH   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_interaction.pyt   __getitem__  s    c         S  s
   t  ‚ d  S(   N(   Rj   (   Rh   (    (    sH   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_interaction.pyt   __len__  s    c         S  s
   t  ‚ d  S(   N(   Rj   (   Rh   (    (    sH   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_interaction.pyt   __iter__	  s    c         S  s   |  j  S(   N(   RI   (   Rh   (    (    sH   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_interaction.pyR     s    (   R   t
   __module__Ri   Rk   Rl   Rm   R   (    (    (    sH   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_interaction.pyRg     s
   				i   i,  i   id   i   iÈ   i    RB   R   R!   RC   RD   RP   RQ   RR   RE   (   i   i,  (   i   id   (   i   iÈ   (   RP   RQ   RR   (   i,  id   iÈ   (   Ra   Rf   R   R   R   R<   R%   R   RF   R)   RG   RH   R+   (   Rf   R   Rg   R   RJ   RI   R.   R   (    (    sH   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_interaction.pyt   test_mapping   s    		c          C  s€   t  d d ƒ d d d „ ƒ }  t |  ƒ } t | d t d t j d d ƒ d t d t j d d ƒ d	 t d t j d d ƒ ƒd  S(
   Nt   ni
   g      @i   c         S  s   d  S(   N(    (   Rp   R   t   g(    (    sH   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_interaction.pyR     s    R   R!   R   Rq   (   R	   R   R+   RF   R)   R=   R8   (   R   R.   (    (    sH   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_interaction.pyt   test_defaults  s    						c          C  sø   t  d d d d d d d t d d g ƒ d d d g ƒ d d
 d d d „ ƒ }  t |  ƒ } t | d t d t j d d ƒ d t d t j d d ƒ d t d t j d d ƒ d t d t j d t d d g ƒ d d ƒ d t d t j d d d d ƒ ƒd  S(   NRp   i
   R   i    g      $@Rq   i   t   hR,   i   R[   i   t   jt   hiR@   g      @c         S  s   d  S(   N(    (   Rp   R   Rq   Rs   Rt   (    (    sH   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_interaction.pyR   3  s    R   R!   RC   (   i    g      $@(   R,   i   (   R[   i   (   R,   i   (   R[   i   (   Ru   R@   (	   R	   R   R   R+   RF   R)   R=   R8   RG   (   R   R.   (    (    sH   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_interaction.pyt   test_default_values2  s*    6										c          C  s¯   t  d d d i d d 6d d d	 g ƒ d d
 d d „ ƒ }  t |  ƒ } t | d t d t j d d ƒ d t d t j d i d d 6d d ƒ d t d t j d d d d ƒ ƒd  S(   NR   i    g      $@Rs   i   R,   Rt   Ru   R@   i   t   otherc         S  s   d  S(   N(    (   R   Rs   Rt   (    (    sH   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_interaction.pyR   R  s    R   R!   g      @RC   (   i    g      $@(   Ru   R@   (   R	   R   R+   RF   R)   R8   RG   (   R   R.   (    (    sH   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_interaction.pyt   test_default_out_of_boundsQ  s    %						c          C  sh   t  d d d t j ƒ  ƒ d „  ƒ }  t |  ƒ } t | d t d t j d d ƒ d t d t j ƒ ƒd  S(   NRp   i
   R   c         S  s   d  S(   N(    (   Rp   R   (    (    sH   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_interaction.pyR   i  s    R   R!   (   R	   R)   t	   FloatTextR   R+   RF   R=   (   R   R.   (    (    sH   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_interaction.pyt   test_annotationsh  s    $			c       
   C  sw   t  d d d d ƒ d d d d „ ƒ }  t |  d d ƒ} t | d t d t j d d ƒ d t d t j d d ƒ ƒd  S(   NR	   t   kwargt   defaultc         S  s   d  S(   N(    (   R{   R	   R|   (    (    sH   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_interaction.pyR   y  s    R   R!   (   R	   R   R+   RF   R)   R-   (   R   R.   (    (    sH   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_interaction.pyt   test_priorityx  s    				c         C  sz   t  j t d t ƒ  t d d ƒ d „  ƒ } Wd  QXt t ƒ d k sL t ‚ t d j d } t	 | d t
 j d d ƒd  S(	   Nt   displayR,   i   c         S  s   d  S(   N(    (   R,   (    (    sH   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_interaction.pyt   foo‹  s    i   i    R   R!   (   R   t   objectR   R   R   R<   R   R   R%   R$   R)   R=   (   R   R   R   (    (    sH   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_interaction.pyt   test_decorator_kwarg‰  s    		c      	   C  s–   d t  f d „  ƒ  Y} | ƒ  } t j  t d t ƒ  t | j d d ƒ} Wd  QXt t ƒ d k sh t ‚ t d j	 d } t
 | d t j d	 d
 ƒd  S(   Nt   Fooc           B  s   e  Z d  „  Z RS(   c         S  s   t  | ƒ d  S(   N(   RX   (   Rh   t   x(    (    sH   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_interaction.pyt   show—  s    (   R   Rn   R„   (    (    (    sH   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_interaction.pyR‚   –  s   R~   Rƒ   i   i
   i    R   R!   i   (   i   i
   (   R€   R   R   R   R   R„   R<   R   R   R%   R$   R)   R=   (   R   R‚   R   Rq   R   (    (    sH   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_interaction.pyt   test_interact_instancemethod•  s    			c         C  st   t  j t d t ƒ  t d d „ ƒ } Wd  QXt t ƒ d k sF t ‚ t d j d } t	 | d t
 j d d ƒd  S(   NR~   R|   c         S  s   d  S(   N(    (   R,   (    (    sH   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_interaction.pyR   §  s    i   i    R   R!   (   R   R€   R   R   R   R<   R   R   R%   R$   R)   R-   (   R   R   R   (    (    sH   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_interaction.pyt   test_decorator_no_call¥  s    		c         C  sz   d d „ } t  j t d t ƒ  t | ƒ } Wd  QXt t ƒ d k sL t ‚ t d j d } t	 | d t
 j d d ƒd  S(   NR|   c         S  s   d  S(   N(    (   R,   (    (    sH   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_interaction.pyR   ²  s    R~   i   i    R   R!   (   R   R€   R   R   R   R<   R   R   R%   R$   R)   R-   (   R   R   t   ifooR   (    (    sH   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_interaction.pyt   test_call_interact±  s    		c         C  s·   d d „ } t  j t d t ƒ  t | ƒ } Wd  QXt t ƒ d k sL t ‚ t d j d } t	 | d t
 j d d ƒt  j t d t ƒ  d | _ Wd  QXt t ƒ d k s³ t ‚ d  S(	   NR|   c         S  s   d  S(   N(    (   R,   (    (    sH   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_interaction.pyR   ¾  s    R~   i   i    R   R!   t   called(   R   R€   R   R   R   R<   R   R   R%   R$   R)   R-   R!   (   R   R   R‡   R   (    (    sH   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_interaction.pyt/   test_call_interact_on_trait_changed_none_return½  s    		c         C  s€   d d „ } t  j t d t ƒ  t | d d ƒ} Wd  QXt t ƒ d k sR t ‚ t d j d } t	 | d t
 j d	 d ƒd  S(
   NR|   c         S  s   d  S(   N(    (   R,   (    (    sH   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_interaction.pyR   Í  s    R~   R,   i
   i   i    R   R!   (   R   R€   R   R   R   R<   R   R   R%   R$   R)   R=   (   R   R   R‡   R   (    (    sH   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_interaction.pyt   test_call_interact_kwargsÌ  s    		c           s   i  ‰  t  j t d t ƒ  t d ‡  f d † ƒ } Wd QXt t ƒ d k sR t ‚ t d j d } t	 | d t
 j d d ƒ| d	 ƒ } | d	 k sš t ‚ ˆ  d
 d	 k s° t ‚ t  j t d t ƒ  d | _ Wd QXˆ  d
 d k së t ‚ t t ƒ d k st ‚ | j t d k st ‚ d S(   s*   test calling @interact decorated functionsR~   R|   c           s   |  ˆ  d <|  S(   NR,   (    (   R,   (   R   (    sH   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_interaction.pyR   Ü  s    
Ni   i    R   R!   R?   R,   R‰   i   iÿÿÿÿ(   R   R€   R   R   R   R<   R   R   R%   R$   R)   R-   R!   (   R   R   R   R,   (    (   R   sH   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_interaction.pyt#   test_call_decorated_on_trait_changeØ  s"    		c           s)  i  ‰  t  j t d t ƒ & t d d ƒ d ‡  f d † ƒ } Wd QXt t ƒ d k s[ t ‚ t d j d } t	 | d	 t
 j d
 d ƒ| d ƒ } | d k s£ t ‚ ˆ  d d k s¹ t ‚ t  j t d t ƒ  d | _ Wd QXˆ  d d k sô t ‚ t t ƒ d k st ‚ | j t d k s%t ‚ d S(   s3   test calling @interact(foo=bar) decorated functionsR~   R,   R{   R|   c           s   |  ˆ  d <|  S(   NR,   (    (   R,   (   R   (    sH   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_interaction.pyR   ö  s    
Ni   i    R   R!   R?   R‰   i   iÿÿÿÿ(   R   R€   R   R   R   R<   R   R   R%   R$   R)   R-   R!   (   R   R   R   R,   (    (   R   sH   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_interaction.pyt*   test_call_decorated_kwargs_on_trait_changeò  s"    		c          C  sl   t  t d t j d ƒ d d ƒ}  t |  j ƒ d k s< t ‚ |  j d } t | d t j d d d	 d ƒd  S(
   NR,   i   R[   t   texti   i    R   R!   R&   (	   R   R   R)   t   fixedR<   R%   R   R$   R-   (   R.   R   (    (    sH   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_interaction.pyt
   test_fixed  s    !		c          C  sB   t  t d d ƒ}  |  j d } t | d t j d d d d ƒd  S(   NR[   RŽ   i    R   R!   R&   (   R   R   R%   R$   R)   R-   (   R.   R   (    (    sH   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_interaction.pyt   test_default_description  s    		c            s‹   i  ‰  ‡  f d †  }  t  |  d t j d d d d ƒ ƒ} | j d } t | d t j d d d d ƒd	 | _ ˆ  i d	 d 6k s‡ t ‚ d  S(
   Nc            s   ˆ  j  ƒ  ˆ  j |  ƒ d  S(   N(   t   cleart   update(   R   (   R   (    sH   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_interaction.pyt   record_kwargs#  s    
R[   R!   RŽ   R&   R   i    R   s   different text(   R   R)   R-   R%   R$   R!   R   (   R”   R.   R   (    (   R   sH   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_interaction.pyt   test_custom_description!  s    $			c          C  s?   t  j d t ƒ j t ƒ }  |  j d } t | d t j ƒd  S(   Nt   manuali    R   (	   R   RC   R0   t   widgetR   R%   R$   R)   t   Button(   R.   R   (    (    sH   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_interaction.pyt   test_interact_manual_button1  s    c          C  sV   d }  d „  } t  j d t ƒ | d d ƒj } d | j d _ |  d k sR t ‚ d  S(   Ni    c         S  s   | d 7} d  S(   Ni   (    (   t   testargt	   callcount(    (    sH   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_interaction.pyt   calltest8  s    R–   Rš   i   i
   (   R   RC   R0   R—   R%   R!   R   (   R›   Rœ   R.   (    (    sH   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_interaction.pyt   test_interact_manual_nocall6  s
    	!c          C  s6   t  j t ƒ }  |  j ƒ  t j t ƒ }  |  j ƒ  d  S(   N(   R   R—   R   R“   R   (   R   (    (    sH   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_interaction.pyt   test_interact_call>  s    
c          C  sÊ   d „  }  t  j d t ƒ j d t ƒ |  d d ƒj } | j t k sK t ‚ t j d t ƒ j ƒ  d d ƒ j |  ƒ } | j t k sŠ t ‚ t  d d ƒ ƒ  j d t ƒ |  ƒ j } | j t k sÆ t ‚ d  S(   Nc         S  s   |  S(   N(    (   Rƒ   (    (    sH   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_interaction.pyR   F  s    R–   Rƒ   i   (   R   RC   R1   R0   R—   R–   R   R   (   R   R   (    (    sH   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_interaction.pyt   test_interact_optionsE  s    	-*'c           C  s*   t  j t ƒ  t j d d ƒ Wd  QXd  S(   NRY   R   (   RU   RV   RW   R   RC   (    (    (    sH   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_interaction.pyt   test_interact_options_badQ  s    c          C  s  t  j }  |  d d d d d d ƒ } t | d |  d d d d d d ƒd	 | _ d	 | _ t | d |  d d d d d d	 ƒd | _ d | _ d | _ d | _ t | d |  d d d d d d ƒd | _ t | d |  d d d d d d ƒd | _ t | d |  d d d d d d ƒd | _ t | d |  d d d d d d ƒt j	 t
 ƒ  d | _ Wd  QXt j	 t
 ƒ  d | _ Wd  QX|  d d d d	 d d ƒ } t | d d d d	 d d ƒ|  d d d d d d ƒ } t | d d ƒt j	 t
 ƒ  |  d d d d
 ƒ Wd  QXd  S(   NR!   i   i   R4   i    R5   i   R   i   i   i   i   iÿÿÿÿid   iÈ   i}   i¯   (   i   i   (   i   i   (   i   i   (   i   i   (   i    i   (   i    i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i}   i¯   (   i}   i¯   (   R)   t   IntRangeSliderR$   t   upperR5   R4   t   lowerR!   RU   RV   R   (   t   irswR   (    (    sH   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_interaction.pyt   test_int_range_logicU  s6    	"		"				"	"	"	"c          C  s©  t  j }  |  d d d d d d ƒ } t | d |  d d d d d d ƒd | _ d | _ d | _ d | _ t | d |  d d d d d d ƒd | _ t | d |  d d d d d d ƒd | _ t | d |  d d d d d d ƒd | _ t | d |  d d d d d d ƒt j	 t
 ƒ  d | _ Wd  QXt j	 t
 ƒ  d | _ Wd  QX|  d d d d d d ƒ } t | d d d d ƒt j	 t
 ƒ  |  d d d d	 ƒ Wd  QXd  S(   NR!   gš™™™™™É?gš™™™™™Ù?R4   g        R5   g333333ã?R   gš™™™™™¹?g      à?gffffffæ?gš™™™™™¹¿i   i   gš™™™™™@g      @g       @g      @(   gš™™™™™É?gš™™™™™Ù?(   gš™™™™™É?gš™™™™™Ù?(   gš™™™™™É?gš™™™™™Ù?(   g        gš™™™™™¹?(   g        gš™™™™™¹?(   g      à?g333333ã?(   g      à?g333333ã?(   gš™™™™™É?g333333ã?(   gš™™™™™@g      @(   R)   t   FloatRangeSliderR$   R4   R5   R£   R¢   R!   RU   RV   R   (   t   frswR   (    (    sH   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_interaction.pyt   test_float_range_logicw  s,    	"				"	"	"	"c       
   C  sj  t  j }  |  ƒ  } t | d t ƒ  ƒt j t ƒ  d | _ Wd  QXt | d t ƒ  ƒ|  d d g d d g ƒ } t | d |  d d d d
 ƒt j t ƒ  | j d | _ Wd  QXt | d d ƒ| j d | _ t | d d d f d d ƒd | _ t | d d ƒi d d 6| _ t | d i d d 6ƒt j t ƒ  d | _ Wd  QXt | d i d d 6ƒd  S(   NR!   i   RC   i   R   (   i   (   i   i   (   i   (   i   i   (   (   i   i   (   i   (   i   (   i   i   (   (   i   i   (   i   i   (   i   i   (    (   i   i   (   i   i   (   i   (	   R)   t   SelectMultipleR$   RH   RU   RV   R   R!   RC   (   t   smwR   (    (    sH   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_interaction.pyt   test_multiple_selection”  s(    			c          C  sH   d }  t  t d |  ƒ} | j d } t | d t j d d d |  ƒd  S(   Nu   helloR,   i    R   R&   R!   (   R   RX   R%   R$   R)   R-   (   R,   R.   R   (    (    sH   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_interaction.pyt   test_interact_noinspect»  s    		c            s}   d d l  m }  d d l m ‰  d |  f ‡  f d †  ƒ  Y} | ƒ  } t d „  d | ƒ} | j ƒ  | j d k sy t ‚ d  S(	   Niÿÿÿÿ(   t   ValueWidget(   t   Unicodet	   TheAnswerc             s&   e  Z ˆ  d  ƒ Z ˆ  ƒ  Z d „  Z RS(   R¯   c         S  s   d S(   Ni*   (    (   Rh   (    (    sH   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_interaction.pyt   get_interact_valueÌ  s    (   R   Rn   t   _model_nameR&   R°   (    (   R®   (    sH   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_interaction.pyR¯   É  s   	c         S  s   |  S(   N(    (   RN   (    (    sH   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_interaction.pyt   <lambda>Ï  t    RN   i*   (   t   ipywidgets.widgetsR­   t	   traitletsR®   R   R“   t   resultR   (   R­   R¯   R   R.   (    (   R®   sH   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_interaction.pyt   test_get_interact_valueÆ  s    	
c          C  s«   d d l  m }  m } d d  l } d d  l } |  ƒ  } | j d t ƒ } t t j	 j
 t j	 j t j	 j t ƒ ƒ d d ƒ ƒ  } | j | ƒ } Wd  QX| j | | ƒ d  S(   Niÿÿÿÿ(   R=   t   Widgett   drop_defaultss   ../../s   state.schema.json(   R´   R=   R¸   t   jsont
   jsonschemat   get_manager_stateR0   t   opent   ost   patht   joint   dirnamet   realpatht   __file__t   loadt   validate(   R=   R¸   Rº   R»   t   st   stateR   t   schema(    (    sH   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_interaction.pyt   test_state_schemaÓ  s    	9(H   t   __doc__t
   __future__R    t   unittest.mockR   t   ImportErrort   mockR¾   Ra   R   RU   t
   ipywidgetsR)   Rµ   R   R   R   R   R   R   t   ipython_genutils.py3compatR	   t   utilsR
   R   R   R   t   fixtureR   R   R$   R+   R/   R3   R;   R>   RK   RO   RS   RZ   R`   Rb   Rd   Re   Ro   Rr   Rv   Rx   Rz   R}   R   R…   R†   Rˆ   RŠ   R‹   RŒ   R   R   R‘   R•   R™   R   Rž   RŸ   R    R¥   R¨   R«   R¬   R·   RÉ   (    (    (    sH   lib/python2.7/site-packages/ipywidgets/widgets/tests/test_interaction.pyt   <module>   sv   (					
	
																									
									"		'		