
    ne	+                        d dl Z d dlmZ d dlmZmZmZmZmZm	Z	m
Z
mZmZmZ ddlmZmZ d dlZd dlmZ  e j&                  ddg	      d
        Z G d de      Z G d de      Zd Z G d de      Z G d d      Zd Zd Zd Z G d de      Zd Z G d de      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.y)+    N)mock)
BoolTupleListInstanceCFloatCIntFloatInt
TraitErrorobserve   )setupteardown)WidgetTF)paramsc              #      K   t         j                  j                  j                  }| j                  t         j                  j                  _        | j                   |t         j                  j                  _        y wN)
ipywidgetswidgetswidgetJUPYTER_WIDGETS_ECHOparam)requestoldvalues     I/usr/lib/python3/dist-packages/ipywidgets/widgets/tests/test_set_state.pyechor      sS     !!((==H5<]]J2
--5=J2s   A<A>c                       e Zd Z e       j	                  d      Z e e        e        e       d      j	                  d      Z e e             j	                  d      Z	y)SimpleWidgetTsync)FFF)default_valueN)
__name__
__module____qualname__r   tagar   br   c     r   r   r      sS    


Adfdfdf4IJNNTXNYATVd#Ar+   r   c                       e Zd Z e       j	                  d      Z e       j	                  d      Z e       j	                  d      Z	 e
       j	                  d      Zy)NumberWidgetTr    N)r#   r$   r%   r
   r&   fr   cfr   ir	   cir*   r+   r   r-   r-   "   sJ    A	4	 B		t	A		Br+   r-   c                 8    | d   s| S dg| dd z   | d   | d   gz   S )Nr   Fr   r*   )datar   s     r   transform_fromjsonr6   +   s5     77T!BZ48T"X"666r+   c                   H    e Zd Z e e             j                  de      Zy)TransformerWidgetT)r!   	from_jsonN)r#   r$   r%   r   r   r&   r6   dr*   r+   r   r8   r8   2   s    TVd.@AAr+   r8   c                       e Zd ZddZy)DataInstanceNc                     || _         y r   r5   )selfr5   s     r   __init__zDataInstance.__init__9   s	    	r+   r   )r#   r$   r%   r@   r*   r+   r   r<   r<   8   s    r+   r<   c                 N    d| j                   rt        | j                         iS d iS Nr5   )r5   
memoryviewinstancer   s     r   mview_serializerrF   <   s$    (--Z.KKTKKr+   c                 |    d| j                   r-t        t        | j                         j                               iS d iS rB   )r5   	bytearrayrC   tobytesrD   s     r   bytes_serializerrJ   ?   s3    x}}Yz(--8@@BC``Z^``r+   c                 \    t        | r t        | d         j                               S d       S rB   )r<   rC   rI   	json_datar   s     r   deserializerrN   B   s+    IIf$56>>@YYSWYYr+   c                   D    e Zd Z eed      j                  dee      Zy)
DataWidgetr*   argsTr!   to_jsonr9   N)	r#   r$   r%   r   r<   r&   rF   rN   r:   r*   r+   r   rP   rP   E   s"    B'++?O[g+hAr+   rP   c                 P    t        | r| d   d d j                               S d       S )Nr5      )r<   rI   rL   s     r   truncate_deserializerrW   I   s,    Y6*3B/779RRDRRr+   c                   D    e Zd Z eed      j                  dee      Zy)TruncateDataWidgetr*   rQ   TrS   N)	r#   r$   r%   r   r<   r&   rJ   rW   r:   r*   r+   r   rY   rY   L   s"    B'++?O[p+qAr+   rY   c                     t               }|j                  t        dg dg d             t        |j                  j
                        | rdndk(  sJ y )NTTFTFTF)r'   r(   r)   r   r   )r   	set_statedictlencommmessagesr   ws     r   test_set_state_simplerd   T   sF    AKK


  qvvA1555r+   c                 h   t               }|j                  t        g d             g }| r6|j                  dt        g t        g dt        g d                  f       |j                  dt        g t        g dt        g d                  f       |j                  j
                  |k(  sJ y )	Nr[   r:   r*   echo_update)buffer_pathsmethodstate)buffersr5   updater\   )r8   r]   r^   appendr`   ra   )r   rc   expecteds      r   test_set_state_transformerro   _   s    AKK
  H$01 	 OO	T-.
 	 66??h&&&r+   c                     t               }t        d      }|j                  t        dd|i             t	        |j
                  j                        | rdndk(  sJ y )N   xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxTr5   r'   r:   r   r   )rP   rC   r]   r^   r_   r`   ra   )r   rc   r5   s      r   test_set_state_datars   z   sQ    AgDKK
4.  qvvA1555r+   c           
         t               }t        d      }|j                  t        dd|i             | r$t	        |j
                  j                        dk(  sJ 	 |j
                  j                  d   }|d   j                  d      }|d	t        t        d
t        i       ddgg            fk(  sJ t	        |      dk(  sJ |d   |d d j                         k(  sJ y )Nrq   Tr5   rr      r   r4   rk   r*   rl   rf   r:   ri   rj   rh   r>   r   rV   )	rY   rC   r]   r^   r_   r`   ra   poprI   )r   rc   r5   msgrk   s        r   test_set_state_data_truncatery      s    AgDKK
4. 
 )-3qvv1$33!
&&//"
C!fjj#G2t*-
     w<11:cr**,,,,r+   c                     t               }|j                  t        dddd             t        |j                  j
                        | rdndk(  sJ y )Nr   ru         )r.   r/   r0   r1   r   r-   r]   r^   r_   r`   ra   rb   s     r   test_set_state_numbers_intr~      sK     	AKK	  qvvA1555r+   c                     t               }|j                  t        ddd             t        |j                  j
                        | rdndk(  sJ y )Ng      ?       @g      @)r.   r/   r1   r   r   r}   rb   s     r   test_set_state_numbers_floatr      sF    AKK  qvvA1555r+   c                     t               }|j                  t        dd             t        |j                  j
                        | rdndk(  sJ y )Ng333333?g@)r.   r/   r   r   r}   rb   s     r   test_set_state_float_to_floatr      sC    AKK 
 qvvA1555r+   c                    t               }|j                  t        d             t        |j                  j
                        | rdndk(  sJ |j                  j
                  d   }|d   d   }|d   dk(  sJ |d	   d
dik(  sJ y )Ngffffff@)r1   ru   r   r4   r5   ri   rl   rj   r1      r}   )r   rc   rx   r5   s       r   test_set_state_cint_to_floatr      s    A KK  qvvA1555
&&//"
Cq6&>D>X%%%=T1I%%%r+   c                      t               } | j                  t        d             t        | j                  j
                        dk(  sJ y )Ng      @r0   r   r}   )rc   s    r   !_x_test_set_state_int_to_int_liker      s>    
 	AKK  qvv1$$$r+   c                     t               }t        j                  t              5  |j	                  t        d             d d d        y # 1 sw Y   y xY w)Ng      @r   )r-   pytestraisesr   r]   r^   rb   s     r   test_set_state_int_to_floatr      sB    A 
z	" 	D
 	  s   A		Ac                 *    G d dt               } |d      }|j                  dk(  sJ t        j                         |_        |j                  ddi       |j                  dk(  sJ |j                  du sJ g }|j                  j                  |       y )Nc                   f    e Zd Z e       j	                  d      Z ed      Z ed      d        Z	y)*test_property_lock.<locals>.AnnoyingWidgetTr    Fvaluec                     t        d|j                         | j                  ry |j                  dk(  rd| _        |j                  dk(  rd| _        d| _        y y )N_propagate_value*   ru   T)printnewstopr   r?   changes     r   r   z;test_property_lock.<locals>.AnnoyingWidget._propagate_value   sL    $fjj1yyzzR
zzQ 	
 r+   N)
r#   r$   r%   r
   r&   r   r   r   r   r   r*   r+   r   AnnoyingWidgetr      s4    &E{			  
	 r+   r   r   r   r   r   T)r   r   r   	MagicMock_sendr]   r   assert_has_calls)r   r   r   callss       r   test_property_lockr      s        !$F<<1>>#FL
gr]#<<2;;$ E
LL!!%(r+   c                     G d dt               } |d      }|j                  dk(  sJ t        j                         |_        |j                  ddi       |j                  dk(  sJ |j                  dk(  sJ d	dd
ig d}t        j                  |g       }dddig d}t        j                  |g       }dddig d}t        j                  |g       }| r|||gn||g}|j                  j                  |       y )Nc                       e Zd Z e       j	                  d      Z e       j	                  d      Z ed      d        Zy)&test_hold_sync.<locals>.AnnoyingWidgetTr    r   c                 l    t        d|j                         |j                  dk(  rd| _        d| _        y y )Nr   r   ru      )r   r   r   otherr   s     r   r   z7test_hold_sync.<locals>.AnnoyingWidget._propagate_value  s0    $fjj1zzR

  r+   N)	r#   r$   r%   r
   r&   r   r   r   r   r*   r+   r   r   r     s=    &&			  
	 r+   r   r   r   r   r   ru   r   rg         E@rv   rk   rl   r   r   g      &@)	r   r   r   r   r   r]   r   callr   )r   r   r   rx   call42call2call11r   s           r   test_hold_syncr   	  s    	  	  !$F<<1>>#FL
gr]#<<1<<2"gt_b
QCYYsB'F#
KCIIc2&E$
LCYYsB'F'+VUF#%E
LL!!%(r+   c                  L    G d dt               }  | d      }|j                  dk(  sJ t        j                         |_        |j                  ddd       |j                  dk(  sJ dd	d
ig d}t        j                  |g       }|g}|j                  j                  |       y )Nc                   :    e Zd Z e       j	                  d      Zy)test_echo.<locals>.ValueWidgetTr    Nr#   r$   r%   r
   r&   r   r*   r+   r   ValueWidgetr   /  s    &r+   r   r   r   r   +   )r   unexpected_fieldrg   r   r   rv   r   )r   r   r   r   r   r]   r   r   )r   r   rx   r   r   s        r   	test_echor   -  s    'f ' q!F<<1>>#FL
rr:;<<2 #gt_b
QCYYsB'FHE
LL!!%(r+   c                      G d dt               }  | d      }|j                  dk(  sJ t        j                         |_        |j                  ddddd	id
ii       |j                  d	k(  sJ |j                  dk(  sJ dddig d}t        j                  |g       }dddig d}t        j                  |g       }||g}|j                  j                  |       y )Nc                       e Zd Z e       j	                  d      Z e       j	                  d      Z ed      d        Zy)%test_echo_single.<locals>.ValueWidgetTr    r   c                 ,    | j                   dz  | _        y )Nru   )r   squarer   s     r   _squarez-test_echo_single.<locals>.ValueWidget._squareG  s    **a-DKr+   N)	r#   r$   r%   r
   r&   r   r   r   r   r*   r+   r   r   r   D  s=    &$'			( 
	(r+   r   r   r   contentr5   rl   r      ri   rj   @   rg   g       @rv   r   r   )	r   r   r   r   r   _handle_msgr   r   r   )r   r   rx   r   r   r   s         r   test_echo_singler   B  s    (f ( q!F<<1>>#FL
"Q
	 	 <<1==B #gs^R
PC99S"%D2
KCIIc2&E 5ME
LL!!%(r+   c                     G d dt               } |d      }|j                  dk(  sJ t        j                         |_        |j                  ddddd	id
ii       |j                  d	k(  sJ |j                  j                          d|_        |j                  j                  t        j                  dddig dg       g       y )Nc                   <    e Zd Z e       j	                  dd      Zy)!test_no_echo.<locals>.ValueWidgetTF)r!   rg   Nr   r*   r+   r   r   r   l  s    59r+   r   r   r   r   r5   rl   r   r   r   r   g     E@rv   r   )	r   r   r   r   r   r   assert_not_calledr   r   )r   r   r   s      r   test_no_echor   j  s    :f : q!F<<1>>#FL
"R
	 	 <<2 LL""$ FL
LL!!499GUY?ln-oy{#|"}~r+   )/r   unittestr   	traitletsr   r   r   r   r   r	   r
   r   r   r   utilsr   r   r   r   fixturer   r   r-   r6   r8   r<   rF   rJ   rN   rP   rW   rY   rd   ro   rs   ry   r~   r   r   r   r   r   r   r   r   r   r   r*   r+   r   <module>r      s      ` ` ` "   e}%> &>$6 $6 7B B LaZi iSr r6'66-06 	66&"%)< )H)*%)Pr+   