B
    @\G[                 @   s<  d dl mZmZmZmZ d dlZ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 d dlmZ d dlmZmZ d dlmZ dd	 ZG d
d deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZ G dd deZ!G dd deZ"G dd deZ#dS )     )absolute_importdivisionprint_functionunicode_literalsN)xrange)ListStringInstanceDictAnyInt)Model)PropertyValueListPropertyValueDict)with_metaclassc       (      C   s  ddl m}m}m}m}m}m}m}m}m	}	m
}
m}m}m}m} ddlm} ddlm} | }t|g}xVt| D ]H}|td|d gd|d gdd}| }| }|||d}||d	}||d	}||dd
}||dd
}|j|j|j|jg}|ddd}|||d}|j| | }| } |	 }!|
 }"| }#| }$| }%| }&|| |!|"|#|$|%|&g}'|j|'  |j| |t||||||||j|||j|j||j|j |j!|j"|#j#|$j#g| |' O }qtW ||fS )Nr   )Plot
LinearAxisGridGlyphRendererColumnDataSourceDataRange1dPanTool
ZoomInToolZoomOutToolWheelZoomToolBoxZoomToolBoxSelectToolSaveTool	ResetTool)Column)Line   )xy)data)Zx_rangeZy_range)plot)r%   Z	dimensionr"   r#   )Zdata_sourceglyph)$bokeh.modelsr   r   r   r   r   r   r   r   r   r   r   r   r   r   Zbokeh.models.layoutsr   Zbokeh.models.glyphsr    setr   dictZtickerZ	formatterZ	renderersappendZ	add_toolsZchildrenZviewZselectedZselection_policyZx_scaleZy_scaleZtoolbartitleZoverlay)(nr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    colobjectsisourceZxdrZydrr%   ZxaxisZyaxisZxgridZygridZtickersr&   ZrendererZpanZzoom_inZzoom_outZ
wheel_zoomZbox_zoomZ
box_selectZsaveresetZtools r2   7lib/python3.7/site-packages/bokeh/tests/test_objects.py
large_plot)   s@    @
"


Lr4   c               @   s4   e Zd Zdd Zdd Zdd Zdd Zd	d
 ZdS )TestMetaModelc             C   s&   ddl m} || _t| jj| _d S )Nr   )	MetaModel)bokeh.modelr6   	metamodelcopymodel_class_reverse_mapold_map)selfr6   r2   r2   r3   setup_method\   s    zTestMetaModel.setup_methodc             C   s   | j | j_d S )N)r;   r8   r:   )r<   r2   r2   r3   teardown_methoda   s    zTestMetaModel.teardown_methodc             C   s   G dd dt | j}|S )Nc               @   s   e Zd ZdZdS )z)TestMetaModel.mkclass.<locals>.Test_Classr!   N)__name__
__module____qualname__foor2   r2   r2   r3   
Test_Classe   s   rC   )r   r8   )r<   rC   r2   r2   r3   mkclassd   s    zTestMetaModel.mkclassc          	   C   s8   |   }t|dsttt |    W d Q R X d S )NZ__view_model__)rD   hasattrAssertionErrorpytestraisesWarning)r<   tclassr2   r2   r3   test_metaclassingi   s    zTestMetaModel.test_metaclassingc          	   C   sL   ddl m} |   |d}t|ds*ttt |d W d Q R X d S )Nr   )	get_classrC   rB   ZImaginary_Class)r7   rL   rD   rE   rF   rG   rH   KeyError)r<   rL   rJ   r2   r2   r3   test_get_classo   s    zTestMetaModel.test_get_classN)r?   r@   rA   r=   r>   rD   rK   rN   r2   r2   r2   r3   r5   Z   s
   r5   c               @   s   e Zd ZeeZdS )	DeepModelN)r?   r@   rA   r	   r   childr2   r2   r2   r3   rO   w   s   rO   c               @   s   e Zd Zdd Zdd ZdS )TestCollectModelsc             C   s$   t d\}}t| |ks td S )N
   )r4   r(   
referencesrF   )r<   rootr.   r2   r2   r3   test_references_large|   s    z'TestCollectModels.test_references_largec             C   sX   t  }t|g}|}x*tdD ]}t  }|| ||_|}qW t| |ksTtd S )Ni  )rO   r(   r   addrP   rS   rF   )r<   rT   r.   parentr/   Zmodelr2   r2   r3   test_references_deep   s    

z&TestCollectModels.test_references_deepN)r?   r@   rA   rU   rX   r2   r2   r2   r3   rQ   z   s   rQ   c               @   s    e Zd ZeeZe Ze Z	dS )SomeModelToJsonN)
r?   r@   rA   r	   r   rP   r   rB   r   barr2   r2   r2   r3   rY      s   rY   c               @   st   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd ZdS )	TestModelc             C   s   ddl m} || _d | _d S )Nr   )r   )r7   r   pObjectClassZmaxDiff)r<   r   r2   r2   r3   r=      s    zTestModel.setup_methodc             C   s   | j dd}|jdkst|   }|jd k	s0ttdddddg| ksNttd g i i g d|jd	d
ksptt |jdd
kstd S )Ntest_id)idnametagsjs_property_callbackssubscribed_eventsjs_event_callbacks)r_   r`   ra   rc   rb   T)include_defaultsF)r\   r^   rF   r(   Z
propertiesr)   properties_with_values)r<   
testObjectZtestObject2r2   r2   r3   	test_init   s    zTestModel.test_initc             C   s$   | j dd}ddd|jks td S )Nr]   )r^   r   )typer^   )r\   refrF   )r<   rf   r2   r2   r3   test_ref   s    zTestModel.test_refc                s4  ddl m} ddlm m G fddd| jG  fddd| jG  fdd	d	|G  fd
dd| jG  fddd| j}G  fddd| j}dddd }}|d}|d|d }}|||d}	|||d}
|	 ||||	hkst|
 |||||
hks0td S )Nr   )HasProps)r	   r   c                   s   e Zd Z dZdS )z4TestModel.test_references_by_ref_by_value.<locals>.Tr   N)r?   r@   rA   tr2   )r   r2   r3   T   s   rm   c                   s   e Zd Z ZdS )z4TestModel.test_references_by_ref_by_value.<locals>.YN)r?   r@   rA   t1r2   )r	   rm   r2   r3   Y   s   ro   c                   s   e Zd Z ZdS )z5TestModel.test_references_by_ref_by_value.<locals>.Z1N)r?   r@   rA   t2r2   )r	   rm   r2   r3   Z1   s   rq   c                   s   e Zd Z ZdS )z5TestModel.test_references_by_ref_by_value.<locals>.Z2N)r?   r@   rA   rp   r2   )r	   rm   r2   r3   Z2   s   rr   c                   s   e Zd Z Z ZdS )z5TestModel.test_references_by_ref_by_value.<locals>.X1N)r?   r@   rA   r#   z1r2   )r	   ro   rq   r2   r3   X1   s   rt   c                   s   e Zd Z Z ZdS )z5TestModel.test_references_by_ref_by_value.<locals>.X2N)r?   r@   rA   r#   z2r2   )r	   ro   rr   r2   r3   X2   s   rv   r!   )rl      )rn   )rp   )r#   rs   )r#   ru   )Zbokeh.core.has_propsrk   bokeh.core.propertiesr	   r   r\   rS   rF   )r<   rk   rt   rv   rn   rp   r#   rs   ru   Zx1Zx2r2   )r	   r   rm   ro   rq   rr   r3   test_references_by_ref_by_value   s    
z)TestModel.test_references_by_ref_by_valuec                s   ddl mmmmmm  G fddd| jG  fddd| j}ddd	dd
dddddf\}}}}}|||gd
|fd|id|gid}| t	||||||gkst
d S )Nr   )r   r   r	   r   Tupler
   c                   s   e Zd Z ZdS )z2TestModel.test_references_in_containers.<locals>.UN)r?   r@   rA   ar2   )r   r2   r3   U   s   r|   c                   sN   e Zd ZZZZ Z ZdS )z2TestModel.test_references_in_containers.<locals>.VN)r?   r@   rA   u1u2u3u4u5r2   )r
   r	   r   r   r   rz   r|   r2   r3   V   s
   r   r!   )r{   rw            45)r}   r~   r   r   r   )rx   r   r   r	   r   rz   r
   r\   rS   r(   rF   )r<   r   r}   r~   r   r   r   vr2   )r
   r	   r   r   r   rz   r|   r3   test_references_in_containers   s     "6"z'TestModel.test_references_in_containersc          
   C   sx   t ddd}t |ddd}|jdd}|jdd}|jd	d
|jd g i i g ddd	|ks\td|j|jf |ksttd S )N9   hello)rB   rZ   *   world)rP   rB   rZ   T)rd   rY   )r^   rh   )	rP   r^   r_   r`   ra   rc   rb   rB   rZ   z{"bar":"world","child":{"id":"%s","type":"SomeModelToJson"},"foo":42,"id":"%s","js_event_callbacks":{},"js_property_callbacks":{},"name":null,"subscribed_events":[],"tags":[]})rY   to_jsonZto_json_stringr^   rF   )r<   Z	child_objobjjsonZjson_stringr2   r2   r3   test_to_json   s     

zTestModel.test_to_jsonc             C   sR   ddl m} | }|jdd}d|ks*td|ks6td|ksBtd|ksNtd S )	Nr   )AnnularWedgeT)rd   start_anglestart_angle_unitsZouter_radiusZouter_radius_units)r'   r   r   rF   )r<   r   r   r   r2   r2   r3   test_no_units_in_json   s    zTestModel.test_no_units_in_jsonc             C   sX   ddl m} | }d|_|jdd}d|ks0td|ks<ttddd	|d ksTtd S )
Nr   )r   Z	fieldnameT)rd   r   r   rad)unitsZfield)r'   r   r   r   rF   r)   )r<   r   r   r   r2   r2   r3   test_dataspec_field_in_json  s    z%TestModel.test_dataspec_field_in_jsonc             C   sX   ddl m} | }d|_|jdd}d|ks0td|ks<ttddd	|d ksTtd S )
Nr   )r   <   T)rd   r   r   r   )r   value)r'   r   r   r   rF   r)   )r<   r   r   r   r2   r2   r3   test_dataspec_value_in_json  s    z%TestModel.test_dataspec_value_in_jsonc             C   sr   G dd dt }| }|j|jks&td|jddks:td|jddksNt|jd d|jddksntd S )Nc               @   s   e Zd ZeedgdZdS )z3TestModel.test_list_default.<locals>.HasListDefaultr   )defaultN)r?   r@   rA   r   r   r   r2   r2   r2   r3   HasListDefault  s   r   r   F)rd   Tr   )r   r   rF   re   r*   )r<   r   r   r2   r2   r3   test_list_default  s    zTestModel.test_list_defaultc             C   s   G dd dt }| }|j|jks&ttdd|jks:td|jddksNtd|jddksbtd	|jd
< d|jddksttdd	d|jkstd S )Nc               @   s    e Zd ZeeeedddZdS )z3TestModel.test_dict_default.<locals>.HasDictDefaultr   )r   )r   N)r?   r@   rA   r
   r   r   r)   r   r2   r2   r2   r3   HasDictDefault%  s   r   r   )r   r   F)rd   Tr   r   )r   r   )r   r   rF   r)   re   )r<   r   r   r2   r2   r3   test_dict_default$  s    
zTestModel.test_dict_defaultc                sb   t dd  fddG fdddt}| }| }|jd |jksJtd|jd	d
ks^td S )Nr   )r   c                  s    d  d7  <  d S )Nr   r!   r2   r2   )counterr2   r3   
next_value8  s    z<TestModel.test_func_default_with_counter.<locals>.next_valuec                   s   e Zd Ze dZdS )zCTestModel.test_func_default_with_counter.<locals>.HasFuncDefaultInt)r   N)r?   r@   rA   r   r   r2   )r   r2   r3   HasFuncDefaultInt;  s   r   r!   r   F)rd   )r)   r   r   rF   re   )r<   r   obj1obj2r2   )r   r   r3   test_func_default_with_counter6  s    
z(TestModel.test_func_default_with_counterc             C   sH   G dd dt }| }| }|jj|jjks0td|jddksDtd S )Nc               @   s   e Zd Zeedd ZdS )zCTestModel.test_func_default_with_model.<locals>.HasFuncDefaultModelc               S   s   t  S )N)r   r2   r2   r2   r3   <lambda>G  s    zLTestModel.test_func_default_with_model.<locals>.HasFuncDefaultModel.<lambda>N)r?   r@   rA   r	   r   rP   r2   r2   r2   r3   HasFuncDefaultModelF  s   r   rP   F)rd   )r   rP   r^   rF   re   )r<   r   r   r   r2   r2   r3   test_func_default_with_modelE  s
    z&TestModel.test_func_default_with_modelN)r?   r@   rA   r=   rg   rj   ry   r   r   r   r   r   r   r   r   r   r2   r2   r2   r3   r[      s   "			r[   c               @   s   e Zd Zdd ZdS )TestContainerMutationc       	   
      s   t g d  fdd}||| z4t||}||ks:t|| |t||ksTtW d ||| X dt d kszt d d }||d kst||d kst||d kstd S )N)callsc                s    d  | ||f d S )Nr   )r*   )attroldZnew_)resultr2   r3   record_triggerT  s    z=TestContainerMutation._check_mutation.<locals>.record_triggerr!   r   r   rw   )r)   Z	on_changegetattrrF   Zremove_on_changelen)	r<   r   r   ZmutatorZexpected_event_oldZexpected_event_newr   Z
actual_oldZcallr2   )r   r3   _check_mutationR  s    

z%TestContainerMutation._check_mutationN)r?   r@   rA   r   r2   r2   r2   r3   r   P  s   r   c                   s$   e Zd ZeeZ fddZ  ZS )HasListPropc                s   t t| jf | d S )N)superr   __init__)r<   kwargs)	__class__r2   r3   r   g  s    zHasListProp.__init__)r?   r@   rA   r   r   rB   r   __classcell__r2   r2   )r   r3   r   e  s   r   c               @   s   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd Zdd ZdS ) TestListMutationc             C   s   t  }d|jddkstd|jddks.t|j}||ks@td|jddksTtd|jddksht|jd d|jddkstd|jddkstd S )NrB   F)rd   Tr   )r   re   rF   rB   r*   )r<   r   rB   r2   r2   r3   *test_whether_included_in_props_with_valuesl  s    z;TestListMutation.test_whether_included_in_props_with_valuesc             C   s|   t  }|j}t|tstdt|jks,tdg|_|j}t|tsHt||k	sTtdt|jksftdt|jksxtd S )Nr!   r{   r   )r   rB   
isinstancer   rF   r   _owners)r<   r   Zold_listZnew_listr2   r2   r3    test_assignment_maintains_owners{  s    z1TestListMutation.test_assignment_maintains_ownersc             C   sH   t dddgd}t|jts tdd }| |d|dddgddg d S )Nr{   bc)rB   c             S   s
   | d= d S )Nr!   r2   )r"   r2   r2   r3   mutate  s    z2TestListMutation.test_list_delitem.<locals>.mutaterB   )r   r   rB   r   rF   r   )r<   r   r   r2   r2   r3   test_list_delitem  s    
z"TestListMutation.test_list_delitemc          	   C   sL   t ddddgd}t|jts"tdd }| |d|ddddgddg d S )	Nr{   r   r   d)rB   c             S   s   | dd= d S )Nr!   r   r2   )r"   r2   r2   r3   r     s    z3TestListMutation.test_list_delslice.<locals>.mutaterB   )r   r   rB   r   rF   r   )r<   r   r   r2   r2   r3   test_list_delslice  s    

z#TestListMutation.test_list_delslicec             C   s@   t dgd}t|jtstdd }| |d|dgddg d S )Nr{   )rB   c             S   s   | dg7 } d S )Nr   r2   )r"   r2   r2   r3   r     s    z/TestListMutation.test_list_iadd.<locals>.mutaterB   r   )r   r   rB   r   rF   r   )r<   r   r   r2   r2   r3   test_list_iadd  s    
zTestListMutation.test_list_iaddc          	   C   sB   t dgd}t|jtstdd }| |d|dgdddg d S )Nr{   )rB   c             S   s   | d9 } d S )Nr   r2   )r"   r2   r2   r3   r     s    z/TestListMutation.test_list_imul.<locals>.mutaterB   )r   r   rB   r   rF   r   )r<   r   r   r2   r2   r3   test_list_imul  s    
zTestListMutation.test_list_imulc             C   s>   t dgd}t|jtstdd }| |d|dgdg d S )Nr{   )rB   c             S   s   d| d< d S )Nr   r   r2   )r"   r2   r2   r3   r     s    z2TestListMutation.test_list_setitem.<locals>.mutaterB   r   )r   r   rB   r   rF   r   )r<   r   r   r2   r2   r3   test_list_setitem  s    
z"TestListMutation.test_list_setitemc          	   C   sN   t ddddgd}t|jts"tdd }| |d|ddddgdd	dg d S )
Nr{   r   r   r   )rB   c             S   s   dg| dd< d S )Nr"   r!   r   r2   )r"   r2   r2   r3   r     s    z3TestListMutation.test_list_setslice.<locals>.mutaterB   r"   )r   r   rB   r   rF   r   )r<   r   r   r2   r2   r3   test_list_setslice  s    

z#TestListMutation.test_list_setslicec             C   s2   t  }t|jtst| |ddd g dg d S )NrB   c             S   s
   |  dS )NrZ   )r*   )r"   r2   r2   r3   r     s    z3TestListMutation.test_list_append.<locals>.<lambda>rZ   )r   r   rB   r   rF   r   )r<   r   r2   r2   r3   test_list_append  s    z!TestListMutation.test_list_appendc             C   s4   t  }t|jtst| |ddd g ddg d S )NrB   c             S   s   |  ddgS )Nr"   r#   )extend)r"   r2   r2   r3   r     s    z3TestListMutation.test_list_extend.<locals>.<lambda>r"   r#   )r   r   rB   r   rF   r   )r<   r   r2   r2   r3   test_list_extend  s    z!TestListMutation.test_list_extendc          	   C   sB   t ddgd}t|jtst| |ddd ddgdddg d S )Nr{   r   )rB   rB   c             S   s   |  ddS )Nr!   r"   )insert)r"   r2   r2   r3   r     s    z3TestListMutation.test_list_insert.<locals>.<lambda>r"   )r   r   rB   r   rF   r   )r<   r   r2   r2   r3   test_list_insert  s
    z!TestListMutation.test_list_insertc             C   s>   t ddgd}t|jtst| |ddd ddgdg d S )Nr{   r   )rB   rB   c             S   s   |   S )N)pop)r"   r2   r2   r3   r     s    z0TestListMutation.test_list_pop.<locals>.<lambda>)r   r   rB   r   rF   r   )r<   r   r2   r2   r3   test_list_pop  s
    zTestListMutation.test_list_popc             C   s>   t ddgd}t|jtst| |ddd ddgdg d S )Nr{   r   )rB   rB   c             S   s
   |  dS )Nr   )remove)r"   r2   r2   r3   r     s    z3TestListMutation.test_list_remove.<locals>.<lambda>)r   r   rB   r   rF   r   )r<   r   r2   r2   r3   test_list_remove  s
    z!TestListMutation.test_list_removec             C   s@   t ddgd}t|jtst| |ddd ddgddg d S )Nr{   r   )rB   rB   c             S   s   |   S )N)reverse)r"   r2   r2   r3   r     s    z4TestListMutation.test_list_reverse.<locals>.<lambda>)r   r   rB   r   rF   r   )r<   r   r2   r2   r3   test_list_reverse  s
    z"TestListMutation.test_list_reversec             C   s@   t ddgd}t|jtst| |ddd ddgddg d S )Nr   r{   )rB   rB   c             S   s   |   S )N)sort)r"   r2   r2   r3   r     s    z1TestListMutation.test_list_sort.<locals>.<lambda>)r   r   rB   r   rF   r   )r<   r   r2   r2   r3   test_list_sort  s
    zTestListMutation.test_list_sortN)r?   r@   rA   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r2   r2   r2   r3   r   j  s   						r   c                   s&   e Zd ZeeeZ fddZ  ZS )HasStringDictPropc                s   t t| jf | d S )N)r   r   r   )r<   r   )r   r2   r3   r     s    zHasStringDictProp.__init__)	r?   r@   rA   r
   r   r   rB   r   r   r2   r2   )r   r3   r     s   
r   c                   s&   e Zd ZeeeZ fddZ  ZS )HasIntDictPropc                s   t t| jf | d S )N)r   r   r   )r<   r   )r   r2   r3   r     s    zHasIntDictProp.__init__)	r?   r@   rA   r
   r   r   rB   r   r   r2   r2   )r   r3   r     s   
r   c               @   sl   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd Zdd Zdd Zdd ZdS )TestDictMutationc             C   s   t  }d|jddkstd|jddks.t|j}||ks@td|jddksTtd|jddkshtd|jd< d|jddkstd|jddkstd S )NrB   F)rd   Tr   rZ   )r   re   rF   rB   )r<   r   rB   r2   r2   r3   r     s    
z;TestDictMutation.test_whether_included_in_props_with_valuesc             C   s   t  }|j}t|tstdt|jks,ttdd|_|j}t|tsLt||k	sXtdt|jksjtdt|jks|td S )Nr!   )r{   r   )r   rB   r   r   rF   r   r   r)   )r<   r   Zold_dictZnew_dictr2   r2   r3   r     s    z1TestDictMutation.test_assignment_maintains_ownersc          
   C   sT   t tddddd}t|jts$tdd }| |d|tddddtddd	 d S )
Nr!   rw   r   )r{   r   r   )rB   c             S   s
   | d= d S )Nr   r2   )r"   r2   r2   r3   r     s    z9TestDictMutation.test_dict_delitem_string.<locals>.mutaterB   )r{   r   )r   r)   r   rB   r   rF   r   )r<   r   r   r2   r2   r3   test_dict_delitem_string  s    
z)TestDictMutation.test_dict_delitem_stringc          	   C   sN   t ddddd}t|jts"tdd }| |d|ddddddd	 d S )
Nr{   r   r   )r!   rw   r   )rB   c             S   s
   | d= d S )Nr!   r2   )r"   r2   r2   r3   r     s    z6TestDictMutation.test_dict_delitem_int.<locals>.mutaterB   )rw   r   )r   r   rB   r   rF   r   )r<   r   r   r2   r2   r3   test_dict_delitem_int  s    

z&TestDictMutation.test_dict_delitem_intc             C   sV   t tddddd}t|jts$tdd }| |d|tddddtdd	dd d S )
Nr!   rw   r   )r{   r   r   )rB   c             S   s   d| d< d S )Nr   r   r2   )r"   r2   r2   r3   r   '  s    z9TestDictMutation.test_dict_setitem_string.<locals>.mutaterB   r   )r   r)   r   rB   r   rF   r   )r<   r   r   r2   r2   r3   test_dict_setitem_string$  s    
z)TestDictMutation.test_dict_setitem_stringc          
   C   sP   t ddddd}t|jts"tdd }| |d|dddddd	dd d S )
Nr{   r   r   )r!   rw   r   )rB   c             S   s   d| d< d S )NrZ   rw   r2   )r"   r2   r2   r3   r   0  s    z6TestDictMutation.test_dict_setitem_int.<locals>.mutaterB   rZ   )r   r   rB   r   rF   r   )r<   r   r   r2   r2   r3   test_dict_setitem_int-  s    

z&TestDictMutation.test_dict_setitem_intc          
   C   sN   t tddddd}t|jts$tdd }| |d|tddddt  d S )	Nr!   rw   r   )r{   r   r   )rB   c             S   s   |    d S )N)clear)r"   r2   r2   r3   r   9  s    z0TestDictMutation.test_dict_clear.<locals>.mutaterB   )r   r)   r   rB   r   rF   r   )r<   r   r   r2   r2   r3   test_dict_clear6  s    
z TestDictMutation.test_dict_clearc          
   C   sT   t tddddd}t|jts$tdd }| |d|tddddtddd	 d S )
Nr!   rw   r   )r{   r   r   )rB   c             S   s   |  d d S )Nr   )r   )r"   r2   r2   r3   r   B  s    z.TestDictMutation.test_dict_pop.<locals>.mutaterB   )r{   r   )r   r)   r   rB   r   rF   r   )r<   r   r   r2   r2   r3   test_dict_pop?  s    
zTestDictMutation.test_dict_popc             C   s>   t tddddd}t|jts$td|jddks:td S )Nr!   rw   r   )r{   r   r   )rB   r   z)r   r)   r   rB   r   rF   r   )r<   r   r2   r2   r3   test_dict_pop_default_worksH  s    z,TestDictMutation.test_dict_pop_default_worksc             C   sN   t tddddd}t|jts$t|j }|dksJ|dksJ|dksJtd S )	Nr!   rw   r   )r{   r   r   )rB   )r{   r!   )r   rw   )r   r   )r   r)   r   rB   r   rF   popitem)r<   r   r/   r2   r2   r3   test_dict_popitem_worksM  s    
z(TestDictMutation.test_dict_popitem_worksc             C   sX   t tddddd}t|jts$tdd }| |d|tddddtdddd	d
 d S )Nr!   rw   r   )r{   r   r   )rB   c             S   s4   |  dd}d|kst|  dd}d|ks0td S )Nr   +   rw   r   ,   )
setdefaultrF   )r"   r   r   r2   r2   r3   r   W  s    z5TestDictMutation.test_dict_setdefault.<locals>.mutaterB   r   )r{   r   r   r   )r   r)   r   rB   r   rF   r   )r<   r   r   r2   r2   r3   test_dict_setdefaultT  s    
z%TestDictMutation.test_dict_setdefaultc             C   sV   t tddddd}t|jts$tdd }| |d|tddddtdd	d
d d S )Nr!   rw   r   )r{   r   r   )rB   c             S   s   |  tddd d S )N      )r   r   )updater)   )r"   r2   r2   r3   r   d  s    z1TestDictMutation.test_dict_update.<locals>.mutaterB   r   r   )r   r)   r   rB   r   rF   r   )r<   r   r   r2   r2   r3   test_dict_updatea  s    
z!TestDictMutation.test_dict_updateN)r?   r@   rA   r   r   r   r   r   r   r   r   r   r   r   r   r2   r2   r2   r3   r     s   						r   )$Z
__future__r   r   r   r   rG   r9   Z	six.movesr   rx   r   r   r	   r
   r   r   r7   r   Zbokeh.core.property.wrappersr   r   Zbokeh.util.futurer   r4   objectr5   rO   rQ   rY   r[   r   r   r   r   r   r   r2   r2   r2   r3   <module>   s,     1 > 