a
    3j7                     @   s   d dl Z d dlZd dlZd dlmZ d dlmZ d dlmZmZm	Z	 d dl
mZ ed G dd dee jZG d	d
 d
ee jZG dd dee jZeeefZedkre   dS )    N)TclError)requires)pixels_convtcl_versionrequires_tcl)AbstractWidgetTestZguic                   @   sx   e Zd 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 )PackTestNc                 C   s   t j| jdd}|d |dd t j|ddddd	}t j|d
dddd	}t j|ddddd	}t j|ddddd	}|||||fS )Npack)name300x200+0+0   a   (   red)r
   widthheightbgb2      bluecP   greendZyellow)tkinterToplevelrootwm_geometryZ
wm_minsizeFrameselfr	   r   r   r   r    r#   l/www/server/python_manager/versions/3.9.10/lib/python3.9/tkinter/test/test_tkinter/test_geometry_managers.pycreate2   s    
zPackTest.create2c                 C   s  |   \}}}}}| td|  |j|d W d    n1 sD0    Y  | td |jdd W d    n1 s|0    Y  |jdd |jdd |jdd |jdd | | ||||g |j|d | | ||||g |j|d | | ||||g d S )Nwindow "%s" isn't packed)Zafterbad window path name ".foo".footopsider%   assertRaisesRegexr   pack_configureassertEqualpack_slavesr!   r#   r#   r$   test_pack_configure_after   s    **z"PackTest.test_pack_configure_afterc                    s~     \} }}} fdd}|dd |dd |dd |d	d
 |dd |dd |dd |dd |dd d S )Nc              	      s6    j dddddd| d j    | d S )Nr)      
      r   T)r+   ipadxpadxipadypadyexpandanchor)r.   r   updater/   winfo_geometry)r:   Zgeomr   r"   r#   r$   check-   s
    
z2PackTest.test_pack_configure_anchor.<locals>.checknz30x70+135+20nez30x70+260+20ez30x70+260+65sez30x70+260+110sz30x70+135+110swz30x70+10+110wz30x70+10+65nwz30x70+10+20centerz30x70+135+65r%   )r"   r	   r   r   r   r>   r#   r=   r$   test_pack_configure_anchor+   s    







z#PackTest.test_pack_configure_anchorc                 C   s  |   \}}}}}| td|  |j|d W d    n1 sD0    Y  | td |jdd W d    n1 s|0    Y  |jdd |jdd |jdd |jdd | | ||||g |j|d | | ||||g |j|d | | ||||g d S )Nr&   )beforer'   r(   r)   r*   r,   r!   r#   r#   r$   test_pack_configure_before<   s    **z#PackTest.test_pack_configure_beforec                    s     \}  fdd} jdd jdd jdd jdd |dd	d
d  jddd jddd jddd jddd |dddd  jdddd jdddd jdddd jdddd |dddd d S )Nc                     s^   j     | d   | d   | d   | d  d S )Nr   r         )r   r;   r/   r<   )Zgeomsr   r   r   r   r"   r#   r$   r>   N   s
    
z2PackTest.test_pack_configure_expand.<locals>.checkleftr*   r)   rightbottom
20x40+0+80z50x30+135+0z80x80+220+75z40x30+100+170Zyes)r+   r9   ZonTr   z20x40+40+80z50x30+175+35z80x80+180+110z40x30+100+135both)r+   r9   fillz100x200+0+0z200x100+100+0z160x100+140+100z40x100+100+100)r%   r.   )r"   r	   r>   r#   rN   r$   test_pack_configure_expandL   s"    z#PackTest.test_pack_configure_expandc                 C   s  |   \}}}}}|jdd |jdd |jdd |jdd |j|d | | ||||g |j|d | | |||g | | |g | td|f  |j|d W d    n1 s0    Y  | td |jdd W d    n1 s0    Y  d S )Nr)   r*   in_zcan't pack %s inside itselfr'   r(   )r%   r.   r/   r0   r-   r   r!   r#   r#   r$   test_pack_configure_ind   s     *zPackTest.test_pack_configure_inc                    s    \} }} fdd}|ddddd |dddd	d |d
dddd |dddddd |dddddd |dddddd |d
ddddd |ddddddd |ddddddd |ddddd |ddddd |ddddd |dddddd |d ddddd |d!ddddd |d"ddd#dd |d$ddddd |d%dddddd |d&dddddd  jd'd(   d) |d'  jd'd*   d+ |d' d S ),Nc                    s\           jf i | jddd j    |   | d S NTrS   r9   rT   pack_forgetr.   r   r;   r/   r<   geom1geom2kwargsr   r   r"   r#   r$   r>   w   s    
z;PackTest.test_pack_configure_padx_ipadx_fill.<locals>.checkz20x40+260+80z240x200+0+0rP   r   )r+   r6   z20x40+250+80r3   r   z60x40+240+80)r+   r5   z30x40+260+80z250x200+0+0r2   r3   )r+   r5   r6   x)r+   r6   rT   z20x40+249+80	      )r+   r5   rT   )r+   r5   r6   rT   z30x40+255+80r2   r4   20x40+140+0300x160+0+40r)   z20x40+120+0r   r   z60x40+120+0z30x40+135+0z30x40+130+0z260x40+20+0z260x40+25+0   r4   z
300x40+0+0z280x40+10+0z
280x40+5+01cr6   r6   r5   r5   r%   r.   r/   	pack_info_strZwinfo_pixelsr"   r	   r   r   r>   r#   ra   r$   #test_pack_configure_padx_ipadx_fillu   sR    z,PackTest.test_pack_configure_padx_ipadx_fillc                    s    \} }} fdd}|ddddd |dddd	d |d
dddd |dddddd |dddddd |dddddd |d
ddddd |ddddddd |ddddddd |ddddd |ddddd |ddddd |dddddd |d ddddd |d!ddddd |d"ddd#dd |d$ddddd |d%dddddd |d&dddddd  jd'd(   d) |d'  jd'd*   d+ |d' d S ),Nc                    s\           jf i | jddd j    |   | d S rY   r[   r]   ra   r#   r$   r>      s    
z;PackTest.test_pack_configure_pady_ipady_fill.<locals>.check20x40+280+80280x200+0+0rP   r   )r+   r8   z20x40+280+70rb   z20x80+280+60)r+   r7   z20x50+280+75r2   r3   )r+   r7   r8   rc   )r+   r8   rT   z20x40+280+69rd   )r+   r7   rT   )r+   r7   r8   rT   z20x50+280+70rg   z20x40+140+20z300x120+0+80r)   rh   rj   z20x80+140+0z20x50+140+10z300x130+0+70z20x50+140+5z300x40+0+20z300x40+0+25rk   z
300x80+0+0z300x50+0+10z
300x50+0+5rm   r8   r8   r7   r7   rp   rs   r#   ra   r$   #test_pack_configure_pady_ipady_fill   sR    z,PackTest.test_pack_configure_pady_ipady_fillc                    sV     \} }} fdd}|ddd |ddd |d	d
d |ddd d S )Nc                    s\    j | d   d |  j ddd j    |  | d S )Nr*   r+   TrS   rZ   )r.   r/   rq   r   r;   r<   )r+   r^   r_   ra   r#   r$   r>      s    
z0PackTest.test_pack_configure_side.<locals>.checkr)   rh   ri   rQ   z20x40+140+160z300x160+0+0rO   rR   z280x200+20+0rP   ru   rv   rH   rs   r#   ra   r$   test_pack_configure_side   s    z!PackTest.test_pack_configure_sidec                 C   s   |   \}}}}}|  |  |  | | |||g |  | | ||g |  | | ||g |  d S N)r%   r.   r/   r0   r\   r!   r#   r#   r$   test_pack_forget   s    zPackTest.test_pack_forgetc                 C   s  |   \}}}}}| td|  |  W d    n1 s@0    Y  |  |jd|ddddddd	d
	 | }| |t | |d d | |d | d | |d d | |d | | |d | d | |d | d | |d | d | |d | d | |d d | }| |t | |d d | |d | d | |d d | |d | | |d | d | |d | d | |d | d | |d | d	 | |d d d S )Nr&   rP   rC   Trc   r2   r3   rL   rg   )	r+   rW   r:   r9   rT   r5   r6   r7   r8   r:   rG   r9   r   rT   Znoneinr5   r7   r6   r8   r+   r)   r   )	r%   r-   r   rq   r.   assertIsInstancedictr/   rr   )r"   r	   r   r   r   r   infor#   r#   r$   test_pack_info   s:    &zPackTest.test_pack_infoc                 C   s   |   \}}}}}|jddd |  |d | j  | | d | | d |d | j  | | d | | d d S )N,     r   r   FTr   r   )	r%   Z	configurer.   Zpack_propagater   r;   r/   Zwinfo_reqwidthZwinfo_reqheightr!   r#   r#   r$   test_pack_propagate  s    



zPackTest.test_pack_propagatec                 C   s\   |   \}}}}}| | g  |  | | |g |  | | ||g d S r{   )r%   r/   r0   r.   r!   r#   r#   r$   test_pack_slaves  s    zPackTest.test_pack_slaves)__name__
__module____qualname__	test_keysr%   r1   rI   rK   rU   rX   rt   ry   rz   r|   r   r   r   r#   r#   r#   r$   r      s   
**r   c                   @   s   e Zd 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 ) 	PlaceTestNc                 C   sh   t j| jdddd}|d t j|dddd	d
}|jddd t j|dddd	d
}| j  |||fS )Nr   r   r   )r   r   bdr      T   rL   Zraised)r   r   r   Zrelief0   &   )rc   yr   <   )r   r   r   r   r    place_configurer;   r"   tff2r#   r#   r$   r%     s    

zPlaceTest.create2c                 C   s   |   \}}}| | d | tdtt|  |j|d W d    n1 sZ0    Y  t	dkr|| | d | td |jdd W d    n1 s0    Y  |j|d | | d d S )N z!can't place %s relative to itselfrV      r2   zbad window path namespamZplace)
r%   r/   Zwinfo_managerr-   r   reescapestrr   r   r   r#   r#   r$   test_place_configure_in$  s    **z!PlaceTest.test_place_configure_inc                 C   s   |   \}}}|j|d | | d d | j  | | d |jdd | | d d | j  | | d |jd	d
d | | d d | j  | | d | td |j|dd W d    n1 s0    Y  d S )NrV   rc   0r   d   )rc   Z100   r   )rc   relx-10   bad screen distance "spam"r   )rW   rc   	r%   r   r/   
place_infor   r;   Zwinfo_xr-   r   r   r#   r#   r$   test_place_configure_x1  s    


z PlaceTest.test_place_configure_xc                 C   s   |   \}}}|j|d | | d d | j  | | d |jdd | | d d | j  | | d |jd	d
d | | d d | j  | | d | td |j|dd W d    n1 s0    Y  d S )NrV   r   r   r   r   )r   Z50Z   r   r   )r   relyr   n   r   r   )rW   r   	r%   r   r/   r   r   r;   Zwinfo_yr-   r   r   r#   r#   r$   test_place_configure_yB  s    


z PlaceTest.test_place_configure_yc                 C   s   |   \}}}|j|d | | d d | j  | | d |jdd | | d d | j  | | d |jd	d | | d d
 | j  | | d | td |j|dd W d    n1 s0    Y  d S )NrV   r   r   r         ?)r   0.5}   r   1r   -expected floating-point number but got "spam"r   )rW   r   r   r   r#   r#   r$   test_place_configure_relxS  s    


z#PlaceTest.test_place_configure_relxc                 C   s   |   \}}}|j|d | | d d | j  | | d |jdd | | d d | j  | | d |jd	d | | d d
 | j  | | d | td |j|dd W d    n1 s0    Y  d S )NrV   r   r   r   r   )r   r   r   r   r   x   r   r   )rW   r   r   r   r#   r#   r$   test_place_configure_relye  s    


z#PlaceTest.test_place_configure_relyc                 C   s   t | j}| td |jdd W d    n1 s:0    Y  | td |jdd W d    n1 sr0    Y  dD ]$}|j|d | | d | qd S )Nzbad anchor "j"j)r:   ambiguous anchor ""r   )	r?   r@   rA   rB   rC   rD   rE   rF   rG   r:   r   r    r   r-   r   r   r/   r   r"   r   valuer#   r#   r$   test_place_configure_anchorw  s    **z%PlaceTest.test_place_configure_anchorc                 C   s   |   \}}}|j|dd | j  | | d |jdd | j  | | d | td |jdd W d    n1 s0    Y  d S )Nr   )rW   r   r   )r   r   bad screen distance "abcd"abcdr%   r   r   r;   r/   winfo_widthr-   r   r   r#   r#   r$   test_place_configure_width  s    

z$PlaceTest.test_place_configure_widthc                 C   s   |   \}}}|j|dd | j  | | d |jdd | j  | | d | td |jdd W d    n1 s0    Y  d S )Nr   )rW   r   r   )r   r   r   r   r%   r   r   r;   r/   winfo_heightr-   r   r   r#   r#   r$   test_place_configure_height  s    

z%PlaceTest.test_place_configure_heightc                 C   s   |   \}}}|j|dd | j  | | d |jdd | j  | | d | td |jdd W d    n1 s0    Y  d S )	Nr   )rW   relwidthK   r   )r   r   -expected floating-point number but got "abcd"r   r   r   r#   r#   r$   test_place_configure_relwidth  s    

z'PlaceTest.test_place_configure_relwidthc                 C   s   |   \}}}|j|dd | j  | | d |jdd | j  | | d | td |jdd W d    n1 s0    Y  d S )	Nr   )rW   	relheightr   r   )r   r   r   r   r   r   r#   r#   r$   test_place_configure_relheight  s    

z(PlaceTest.test_place_configure_relheightc                 C   s   t | j}| td |jdd W d    n1 s:0    Y  | td |jdd W d    n1 sr0    Y  dD ]$}|j|d | | d | qd S )Nzbad bordermode "j"r   )
bordermodezambiguous bordermode ""r   )Zinsideoutsideignorer   r   r   r#   r#   r$   test_place_configure_bordermode  s    **z)PlaceTest.test_place_configure_bordermodec                 C   s|   t | j}|jddd | j  |  | j  | |  | t	 |d W d    n1 sn0    Y  d S )Nr   r   r   )
r   r    r   r   r;   Zplace_forgetassertFalseZwinfo_ismappedassertRaises	TypeError)r"   foor#   r#   r$   test_place_forget  s    

zPlaceTest.test_place_forgetc                 C   s<  |   \}}}|j|ddddddddd	d
d | }| |t | |d d | |d d | |d d | |d d | |d d | |d d | |d d | |d d | |d d	 | |d d
 | |d d | |d d | t |d W d    n1 s.0    Y  d S )Nr   rL   rM      g?g?g333333?g?rB   r   )rW   rc   r   r   r   r   r   r   r   r:   r   rc   r   r   2r   3r   4r   z0.1r   z0.2r   z0.3r   z0.4r:   r   r   )r%   r   r   r~   r   r/   r   r   )r"   r   r   r   r   r#   r#   r$   test_place_info  s*    zPlaceTest.test_place_infoc                 C   s~   t | j}t | j}| | g  |j|d | | |g | t |d W d    n1 sp0    Y  d S )NrV   r   )r   r    r   r/   Zplace_slavesr   r   r   )r"   r   Zbarr#   r#   r$   test_place_slaves  s    zPlaceTest.test_place_slaves)r   r   r   r   r%   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r#   r#   r#   r$   r     s    	


r   c                       s  e Zd ZdZ f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 d! Zd"d# Zd$d% Zd&d' Zd(d) Zd*d+ Zd,d- Zd.d/ Zd0d1 Zd2d3 Zed4d5d6d7 Zd8d9 Zd:d; Z d<d= Z!d>d? Z"d@dA Z#  Z$S )BGridTestNc                    s   | j  \}}t|d D ]}| j j|ddddd qt|d D ]}| j j|ddddd qB| j d tdkr~| j d t 	  d S )Nr   r   r   )weightminsizepaduniformr   rF   )
r   	grid_sizerangegrid_columnconfiguregrid_rowconfiguregrid_propagater   grid_anchorsupertearDown)r"   ZcolsZrowsi	__class__r#   r$   r     s    zGridTest.tearDownc                 C   s   t | j}| | i  |  | | d | j | | d | d | | d | d |jddidd | | d | d | | d | d d S )Nr}   columnr   rowr   rL   r   )r   Buttonr   r/   	grid_infogrid_configurerr   r"   r   r#   r#   r$   test_grid_configure  s    zGridTest.test_grid_configurec                 C   sn   t | j}| td |jdd W d    n1 s:0    Y  |jdd | | d | d d S )Nz5bad column value "-1": must be a non-negative integerr   rL   r   	r   r   r   r-   r   r   r/   r   rr   r   r#   r#   r$   test_grid_configure_column  s
    *z#GridTest.test_grid_configure_columnc                 C   sn   t | j}| td |jdd W d    n1 s:0    Y  |jdd | | d | d d S )Nz4bad columnspan value "0": must be a positive integerr   )
columnspanrL   r   r   r   r#   r#   r$   test_grid_configure_columnspan  s
    *z'GridTest.test_grid_configure_columnspanc                 C   s   t | j}t | j}| | i  |  | | d | j |j|d | | d | |d| ji | | d | j d S )Nr}   rV   )r   r    r   r   r/   r   r   )r"   r   r   r#   r#   r$   test_grid_configure_in  s    zGridTest.test_grid_configure_inc                 C   s   t | j}| td |jdd W d    n1 s:0    Y  |jdd | | d | d |jdd | | d | t	t
d| j  d S )Nz6bad ipadx value "-1": must be positive screen distancer   ro   r   r5   .5cr   r   r   r-   r   r   r/   r   rr   roundr   Zscalingr   r#   r#   r$   test_grid_configure_ipadx  s    *z"GridTest.test_grid_configure_ipadxc                 C   s   t | j}| td |jdd W d    n1 s:0    Y  |jdd | | d | d |jdd | | d | t	t
d| j  d S )Nz6bad ipady value "-1": must be positive screen distancer   rx   r   r7   r   r   r   r#   r#   r$   test_grid_configure_ipady#  s    *z"GridTest.test_grid_configure_ipadyc                 C   s   t | j}| td |jdd W d    n1 s:0    Y  |jdd | | d | d |jdd | | d | d |jdd | | d | t	t
d| j  d S )N4bad pad value "-1": must be positive screen distancer   rn   r   r6   r3   r2   r   r   r   r#   r#   r$   test_grid_configure_padx.  s    *z!GridTest.test_grid_configure_padxc                 C   s   t | j}| td |jdd W d    n1 s:0    Y  |jdd | | d | d |jdd | | d | d |jdd | | d | t	t
d| j  d S )Nr   r   rw   r   r8   r   r   r   r   r#   r#   r$   test_grid_configure_pady;  s    *z!GridTest.test_grid_configure_padyc                 C   sn   t | j}| td |jdd W d    n1 s:0    Y  |jdd | | d | d d S )Nz9bad (row|grid) value "-1": must be a non-negative integerr   r   rL   r   r   r   r#   r#   r$   test_grid_configure_rowH  s
    *z GridTest.test_grid_configure_rowc                 C   sn   t | j}| td |jdd W d    n1 s:0    Y  |jdd | | d | d d S )Nz1bad rowspan value "0": must be a positive integerr   )rowspanrL   r  r   r   r#   r#   r$   test_grid_configure_rownspanP  s
    *z%GridTest.test_grid_configure_rownspanc                 C   s   t j| jdd}| td |jdd W d    n1 s>0    Y  |jdd | | d d |jdd | | d d	 d S )
Nr   )r   zbad stickyness value "glue"Zglue)stickyr@   r  zn,s,e,wZnesw)r   r    r   r-   r   r   r/   r   r"   r   r#   r#   r$   test_grid_configure_stickyX  s    *z#GridTest.test_grid_configure_stickyc                 C   s  |  t | j  W d    n1 s*0    Y  | | jdddd dd | td | jdd W d    n1 s0    Y  | jjddd | td | jd W d    n1 s0    Y  t| j}|j	ddd	 t
d
krX| jjddd | td | jd W d    n1 s80    Y  | | jddd | | jddd | | jddd t
d
kr| jj|dd | | jddd d S Nr   )r   r   r   r   zbad option "-foo"r   )r   rM   rL   r   z*must specify a single element on retrieval)r   r   r   allrM   zexpected integer but got "all"r   i	  r   )r   r   r   r   r/   r-   r   r   r   r   r   r   r#   r#   r$   test_grid_columnconfigurea  s0    (,*
,
z"GridTest.test_grid_columnconfigurec                 C   s~   |  td  | jjddd W d    n1 s20    Y  | jjddd | | jddd | | jdd d d S Nbad screen distance "foo"r   r   )r   r3   r   r-   r   r   r   r/   r"   r#   r#   r$   !test_grid_columnconfigure_minsizey  s
    .z*GridTest.test_grid_columnconfigure_minsizec                 C   s   |  td  | jjddd W d    n1 s20    Y  |  td  | jjddd W d    n1 sn0    Y  | jjddd | | jddd | | jdd d d S 	Nzexpected integer but got "bad"r   Zbadr
  z-invalid arg "-weight": should be non-negativerM   r   r  r  r#   r#   r$    test_grid_columnconfigure_weight  s    ..z)GridTest.test_grid_columnconfigure_weightc                 C   s   |  td  | jjddd W d    n1 s20    Y  |  td  | jjddd W d    n1 sn0    Y  | jjddd | | jddd | | jdd d d S 	Nr  r   r   )r   z*invalid arg "-pad": should be non-negativer  rM   r   r  r  r#   r#   r$   test_grid_columnconfigure_pad  s    ..z&GridTest.test_grid_columnconfigure_padc                 C   sB   | j jddd | | j ddd | | j dd d d S Nr   r   )r   r   )r   r   r/   r  r#   r#   r$   !test_grid_columnconfigure_uniform  s    z*GridTest.test_grid_columnconfigure_uniformc                 C   s  |  t | j  W d    n1 s*0    Y  | | jdddd dd | td | jdd W d    n1 s0    Y  | jjddd | td | jd W d    n1 s0    Y  t| j}|j	ddd	 t
d
krX| jjddd | td | jd W d    n1 s80    Y  | | jddd | | jddd | | jddd t
d
kr| jj|dd | | jddd d S r	  )r   r   r   r   r/   r-   r   r   r   r   r   r   r#   r#   r$   test_grid_rowconfigure  s0    (,*
,
zGridTest.test_grid_rowconfigurec                 C   s~   |  td  | jjddd W d    n1 s20    Y  | jjddd | | jddd | | jdd d d S r  r-   r   r   r   r/   r  r#   r#   r$   test_grid_rowconfigure_minsize  s
    .z'GridTest.test_grid_rowconfigure_minsizec                 C   s   |  td  | jjddd W d    n1 s20    Y  |  td  | jjddd W d    n1 sn0    Y  | jjddd | | jddd | | jdd d d S r  r  r  r#   r#   r$   test_grid_rowconfigure_weight  s    ..z&GridTest.test_grid_rowconfigure_weightc                 C   s   |  td  | jjddd W d    n1 s20    Y  |  td  | jjddd W d    n1 sn0    Y  | jjddd | | jddd | | jdd d d S r  r  r  r#   r#   r$   test_grid_rowconfigure_pad  s    ..z#GridTest.test_grid_rowconfigure_padc                 C   sB   | j jddd | | j ddd | | j dd d d S r  )r   r   r/   r  r#   r#   r$   test_grid_rowconfigure_uniform  s    z'GridTest.test_grid_rowconfigure_uniformc              	   C   s$  t | j}t | j}|jdddddddd | | j |g |  |  | | j g  | | i  |jddd | }| |d | d | |d	 | d | |d
 | d | |d | d | |d | d | |d | d | |d d d S )NrL   rM   r   nsr   r   r  r   r6   r8   r  r   r   r   r   r   r  r   r   r6   r8   r  r   )	r   r   r   r   r/   grid_slavesZgrid_forgetr   rr   r"   r   r   r   r#   r#   r$   test_grid_forget  s&    zGridTest.test_grid_forgetc              	   C   s$  t | j}t | j}|jdddddddd | | j |g |  |  | | j g  | | i  |jddd | }| |d | d | |d	 | d | |d
 | d | |d | d | |d | d | |d | d | |d d d S )NrL   rM   r   r  r   r   r!  r   r   r  r   r6   r8   r  )	r   r   r   r   r/   r"  Zgrid_remover   rr   r#  r#   r#   r$   test_grid_remove  s&    zGridTest.test_grid_removec              	   C   s   t | j}| | i  |jdddddddd | }| |t | |d | j | |d | d | |d | d | |d	 | d | |d
 | d | |d | d | |d | d | |d d d S )NrL   rM   r   r  r   r}   r   r   r  r   r6   r8   r  )	r   r   r   r/   r   r   r~   r   rr   )r"   r   r   r#   r#   r$   test_grid_info  s    zGridTest.test_grid_infor   r2   c                 C   s   |  td | jd W d    n1 s.0    Y  |  td | jd W d    n1 sf0    Y  | t | jdd W d    n1 s0    Y  | jd | | jjdd| jd d S )	Nzbad anchor "x"rc   r   r   rB   rF   Zgridr:   )	r-   r   r   r   r   r   r/   Ztkcallr  r#   r#   r$   test_grid_anchor	  s    **,zGridTest.test_grid_anchorc                 C   st  |  | j d |  | jddd |  | jddddd | td | jdd W d    n1 sr0    Y  | td | jdd W d    n1 s0    Y  | td" | jdddd W d    n1 s0    Y  | td" | jdddd W d    n1 s*0    Y  | t$ | jddddd W d    n1 sj0    Y  | j}|d |d tj	|ddd	d
}tj	|dddd
}|j
ddd |j
ddd | j  |  | d |  |ddd |  |ddddd |  |ddd |  |ddddd |  |ddddd |  |ddddd d S )N)r   r   r   r   r   r   zexpected integer but got "x"rc   1x1+0+0r   r   r   r   r   r   r   r   r!  )r   r      r+  )r   r   r   r   )r   r   r   r   r3   r      )r+  r+  r   r   )r/   r   Z	grid_bboxr-   r   r   r   r   r   r    r   r;   )r"   r   f1r   r#   r#   r$   test_grid_bbox  s8    ,,024


zGridTest.test_grid_bboxc                 C   sN  |  t | j  W d    n1 s*0    Y  |  t | jd W d    n1 s`0    Y  |  t  | jddd W d    n1 s0    Y  | td | jdd W d    n1 s0    Y  | td | jdd W d    n1 s0    Y  | j}|d |d tj|d	d
ddd}| 	|ddd |
  | j  | 	|ddd | 	|ddd | 	|ddd | 	|ddd | 	|ddd | 	|ddd | 	|d	dd | 	|ddd | 	|dd
d | 	|ddd | 	|ddd d S )Nr   zbad screen distance "x"rc   r   zbad screen distance "y"rm   r)  r   r   r   r   )r   r   Zhighlightthicknessr   r3   )r   r   r   )r   r   r   )r   r   r   r      )r   r   e   )r   r   r   r   )r   r   r   Zgrid_locationr-   r   r   r   r    r/   r   r;   )r"   r   r   r#   r#   r$   test_grid_location3  s<    (*.,.



zGridTest.test_grid_locationc                 C   sB  |  | j d | t | jdd W d    n1 s@0    Y  | jd | | j  tj| jdddd}|jddd | j	  |  |
 d |  | d |d tj| jdd	d
d}|j|ddd | j	  |  |
 d |  | d |d | j	  |  |
 d |  | d	 d S )NTFr   r   r*  r   r!  r   U   r   )rW   r   r   )r/   r   r   r   r   r   r   r    r   r;   r   r   )r"   r   gr#   r#   r$   test_grid_propagateS  s(    ,




zGridTest.test_grid_propagatec                 C   s   |  t | jd W d    n1 s,0    Y  | | j d t| j}|jddd | | j d |jddd | | j d d S )Nr   r0  r!  r3  r   r2   )   r2   )r   r   r   r   r/   r   ZScaler   r  r#   r#   r$   test_grid_sizei  s    *zGridTest.test_grid_sizec                 C   s  |  | j g  t| j}|jddd t| j}|jddd t| j}|jddd t| j}|jddd |  | j ||||g |  | jjdd|g |  | jjdd|||g |  | jjdd|g |  | jjdd|||g |  | jjddd||g d S )Nr   r   r!  r   r   )r/   r   r"  r   ZLabelr   )r"   r   r   r   r   r#   r#   r$   test_grid_slavess  s    zGridTest.test_grid_slaves)%r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r$  r%  r&  r   r(  r/  r4  r7  r9  r:  __classcell__r#   r#   r   r$   r     sB   	





 
r   __main__)Zunittestr   r   r   Ztest.supportr   Ztkinter.test.supportr   r   r   Ztkinter.test.widget_testsr   ZTestCaser   r   r   Z	tests_guir   mainr#   r#   r#   r$   <module>   s(      M   &