
    daf~:                         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 d dlmZ d dl	m
Z
mZ  ed       g dZ G d	 d
e
e j                        Zedk(  r e j                           yy)    N)ttk)TclError)support)requires)AbstractTkTestget_tk_patchlevelgui).ComboboxPopdownFrameHeadingzHorizontal.TProgressbarzHorizontal.TScaleItemSashTButtonTCheckbutton	TComboboxTEntryTLabelframezTLabelframe.LabelTMenubutton	TNotebookzTNotebook.Tab
ToolbuttonTProgressbarTRadiobuttonTreeviewTScale
TScrollbarTSpinboxzVertical.TProgressbarzVertical.TScalec                   x     e Zd Z f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 xZS )	StyleTestc                 j    t         |           t        j                  | j                        | _        y N)supersetUpr   Stylerootstyle)self	__class__s    3/root/Python-3.12.4/Lib/test/test_ttk/test_style.pyr"   zStyleTest.setUp   s     YYtyy)
    c                     | j                   }|j                  dd       | j                  |j                  dd      d       | j                  |j                  d      t               y )Nr   yellow
backgroundr-   )r%   	configureassertEqualassertIsInstancedictr&   r%   s     r(   test_configurezStyleTest.test_configure   sR    

	h7LA	eooi8$?r)   c                 0   | j                   }dgdgfD ]  }| j                  |      5  |j                  dg |dg       dg}| j                  |j                  dd      |       |j                  d      }| j	                  |t
               | j                  |d   |       d d d         d	d
gdgdgfD ]  }| j                  |      5  |j                  dg |dg       dg}| j                  |j                  dd      |       |j                  d      }| j	                  |t
               | j                  |d   |       d d d         g dgdgfD ]  }| j                  |      5  |j                  dg |dg       dg}| j                  |j                  dd      |       |j                  d      }| j	                  |t
               | j                  |d   |       d d d         y # 1 sw Y   xY w# 1 sw Y   SxY w# 1 sw Y   xY w)Nactive)r5   )statesr   whiter,   )r5   r7   r-   pressed	!disabledzpressed !disabled)r8   r9   black)r8   r9   r:     grey)r=   )r%   subTestmapr/   r0   r1   )r&   r%   r6   expectedms        r(   test_mapzStyleTest.test_map%   s5   

  j;-/ 	<FV, <		)1C61C71C0D	E/0  9l!CXNIIi(%%a.  <(;< <	< !+.1D0EH`Gaa 	<FV, <		)1C61C71C0D	E=>  9l!CXNIIi(%%a.  <(;< <	< 2$n 	<FV, <		)1B61B61B0C	D%;  9l!CXNIIi(%%a.  <(;< <	<'< << << <s&   A;G2A;G?,A;H2G<	?H		H	c                 @   | j                   }|j                  dd       |j                  ddg       | j                  |j	                  dd      d       | j                  |j	                  ddddg      d       | j                  |j	                  ddd	
      d	       y )Nr   r+   r,   )r5   r-   bluer-   r5   rD   optionnotdefinediknewit)default)r%   r.   r?   r/   lookupr2   s     r(   test_lookupzStyleTest.test_lookupG   s    

	h7		))I(J	Ki>Ii|$&'-	/i1C &  )	+r)   c                    | j                   }| j                  t        j                  |j                  d       |j	                  d      }|j	                  dd       | j                  |j	                  d      dddifg       |j	                  d|       | j                  |j	                  d      |       | j                  |j	                  d      t               | j                  t        j                  |j                  ddd	d
ifg       y )N
NotALayoutr   r;   nullstickynswer   nameoption
inexistent)r%   assertRaisestkinterr   layoutr/   r0   list)r&   r%   tv_styles      r(   test_layoutzStyleTest.test_layoutS   s    

'**ELL,G<<
+ 	Z$j1x()*	

 	Z*j18< 	ell95t< 	'**ELL*x./0	2r)   c                    | j                  t        j                  | j                  j                  d       | j                  j	                         }d }| j                  j                         D ]&  }||k7  s	|}| j                  j	                  |        n y | j                  ||k(         | j                  || j                  j	                         k7         | j                  j	                  |       y )Nnonexistingname)rR   rS   r   r%   	theme_usetheme_namesassertFalse)r&   
curr_theme	new_themethemes       r(   test_theme_usezStyleTest.test_theme_usej   s    '**DJJ,@,@	 ZZ))+
	ZZ++- 	E
"!	

$$U+		 y01djj&:&:&<<=

Z(r)   c           
      d   | j                   }| j                   j                         }| j                  | j                   j                  |       | j                   j                         D ]9  }| j                   j                  |       t        D ]  }|j                  |      }|s| j                  ||      5  t        j                  dk\  rt        d|||       |dv r$t        j                         d d dk(  r
	 d d d        ud| }| j                  |j                  |      d         |j
                  |fi | | j                  |j                  |      |       |j                         D ]'  \  }}| j                  |j                  ||      |       ) 	 d d d         < y # 1 sw Y   #xY w)Nr_   rO      r.   vistaxpnative      C.)r%   rZ   
addCleanupr[   CLASS_NAMESr.   r>   r   verboseprintsysgetwindowsversionr/   items	r&   r%   r]   r_   rO   rG   newnamekeyvalues	            r(   test_configure_custom_copyz$StyleTest.test_configure_custom_copy~   s   

ZZ))+


,,j9ZZ++- 	OEJJ  '# O//$/\\D\9 O!+k5$@!66 # 5 5 7 ;v E O O !#4&kG$$U__W%=tD#EOOG7w7$$U__W%=wG&-mmo O
U((#)FNOO O	O	OO Os   7AF%BF%%F/c           
         | j                   }| j                   j                         }| j                  | j                   j                  |       | j                   j                         D ]a  }| j                   j                  |       t        D ]9  }|j                  |      }|s| j                  ||      5  t        j                  dk\  rt        d|||       |dv r$t        j                         d d dk(  r
	 d d d        ud| }| j                  |j                  |      i         |j
                  |fi | |dk(  r#|dk(  rt        | j                        d	k  rd
g|d<   | j                  |j                  |      |       |j                         D ]'  \  }}| j                  |j                  ||      |       ) 	 d d d        < d y # 1 sw Y   KxY w)Nrb   rc   r?   rd   rg   rj   altr
   )   rh   ri   )disabled1embossed)r%   rZ   rk   r[   rl   r?   r>   r   rm   rn   ro   rp   r/   r   r$   rq   rr   s	            r(   test_map_custom_copyzStyleTest.test_map_custom_copy   s   

ZZ))+


,,j9ZZ++- 	IEJJ  '# I))D/\\D\9 I!+eUD':!66 # 5 5 7 ;v E I I !#4&kG$$UYYw%7<EIIg11~$#+:KDII:VYb:b/@.A
+$$UYYw%7A&-mmo I
U((7C)@%HII I	I	II Is   7AGB<GGc                 *   | j                   }|j                         }| j                  |t               |D ]\  }| j	                  |t               |j                  |      }| j                  |t               |D ]  }| j	                  |t                ^ y r    )r%   element_namesassertNotIsInstancestrr0   element_options)r&   r%   r   rO   r   optnames         r(   test_element_optionszStyleTest.test_element_options   s    

++-  4! 	4D!!$,#33D9O$$_c:* 4%%gs34		4r)   c                    | j                   }| j                  t              5  |j                  d       d d d        | j	                  t
        d      5  |j                  dd       d d d        y # 1 sw Y   ;xY w# 1 sw Y   y xY w)Nplain.newelemzNo such element type spamspam)r%   rR   	TypeErrorelement_createassertRaisesRegexr   r2   s     r(   test_element_create_errorsz$StyleTest.test_element_create_errors   sw    

y) 	2  1	2##H.IJ 	:  &9	: 	:	2 	2	: 	:s   A.A:.A7:Bc                     | j                   }|j                  ddd       | j                  d|j                                |j                  dddd       | j                  d|j                                y )Nzplain.backgroundfromrG   zplain.arrow
rightarrow)r%   r   assertInr   r2   s     r(   test_element_create_fromz"StyleTest.test_element_create_from   sa    

/C(%*=*=*?@]FI|LmU%8%8%:;r)   c                    | j                   }| j                  t              5  |j                  dd       d d d        | j	                  t
        d      5  |j                  ddd       d d d        y # 1 sw Y   <xY w# 1 sw Y   y xY w)Nr   r   ztheme "spam" doesn't existr   )r%   rR   
IndexErrorr   r   r   r2   s     r(   test_element_create_from_errorsz)StyleTest.test_element_create_from_errors   s    

z* 	:  &9	:##H.KL 	B  &&A	B 	B	: 	:	B 	Bs   A0A<0A9<Bc           	      j   | j                   }t        j                  | j                  dd      }|j	                  dd|       | j                  d|j                                |j                  ddddifg       t        j                  | j                  d	      }|j                  d
d       | j                  |j                         d       | j                  |j                         d       t        j                  dd      }t        j                   | j                  |dd      }t        j                   | j                  |dd      }t        j                   | j                  |dd      }|j	                  dd|d|fd|fdd       | j                  d|j                                |j                  ddddifg       t        j"                  | j                  d	      }|j                  d
d       | j                  |j                         d       | j                  |j                         d       y )N   
   masterwidthheightblockimage
TestLabel1rM   newsr%   Tbothexpandfillz
python.xbm
imghdrdata)subdirr+   rD   )r   file
foregroundr-   r7   r:   zButton.buttonr8   r5   )rc      we)borderrM   Button   )r%   rS   
PhotoImager$   r   r   r   rT   r   Labelpackr/   winfo_reqwidthwinfo_reqheightr   findfileBitmapImager   )	r&   r%   r   aimgfileimg1img2img3bs	            r(   test_element_create_imagez#StyleTest.test_element_create_image   s   

""$))2bIWgu5gu2245\Wx.@$A#BCIIdii|4	d())+R0**,b1""<E""$))'.66K""$))'.4K""$))'.5'K_g!It#4x6F$*4 	 	9 	ou':':'<=X8V2D EFGJJtyy1	d())+R0**,b1r)   c           	      `   | j                   }t        j                  | j                  dd      }| j	                  t
              5  |j                  dd       d d d        | j	                  t              5  |j                  dd|d       d d d        | j	                  t              5  |j                  dd|d       d d d        | j                  t        d      5  |j                  dd|d|f       d d d        | j                  t        d      5  |j                  dd|d|f       d d d        | j	                  t              5  |j                  dd|d	d|f       d d d        | j	                  t              5  |j                  dd|dd
|f       d d d        | j                  t        d      5  |j                  dd|d       d d d        y # 1 sw Y   wxY w# 1 sw Y   RxY w# 1 sw Y   -xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nr   r   block2r   ri   r<   zInvalid state namer   r8   selectedz
bad option)r   )r%   rS   r   r$   rR   r   r   r   
ValueErrorr   r   )r&   r%   r   s      r(    test_element_create_image_errorsz*StyleTest.test_element_create_image_errors   s   

""$))2bIz* 	4  73	4y) 	>  7E1=	>z* 	?  7E2>	?##H.BC 	L  7EFE?K	L##H.BC 	G  7EAu:F	Gy) 	R  7EIq%;PQ	Ry) 	S  7EAz5;QR	S##Hl; 	C  7E B	C 	C	4 	4	> 	>	? 	?	L 	L	G 	G	R 	R	S 	S	C 	Cs`   G4G&G&G3H H7H-H$GG#&G03G= H	HH!$H-c                 V   | j                   }|j                         }|j                  d      }|j                  d       | j	                  d|j                                |j                  ddddgiddid	d
difgdd       | j	                  d|j                                |j                  dd       | j	                  d|j                                |j                  d       | j                  |j                         d       | j                  |j                  d      |       |j                  d       | j                  |j                         d       | j                  |j                  dd      d       | j                  |j                  d      d	d
difg       |j                  d       | j                  |j                         d       | j                  |j                  dd      d       | j                  |j                  d      d	d
difg       |j                  |       y )NTLabel
testtheme1
testtheme2element creater   rG   paddingr   elemrM   r   )r.   rT   )r   r   settings
testtheme3r<   )r   10r;   )	r%   rZ   rT   theme_creater   r[   r/   r   rH   )r&   r%   r]   curr_layouts       r(   test_theme_createzStyleTest.test_theme_create  s   

__&
ll8,<(lE$5$5$78<&(;='_"Xt$4563
 	 	lE$5$5$78<6lE$5$5$78%,,.3h/=%,,.	:h	:DAh/6Hd;K2L1MN%,,.3h	:B?h/6Hd;K2L1MN
#r)   c                    | j                   }|j                         }t        j                  | j                  dd      }d}|j                  |dd|dddgidd|gid	d
dddddgiddd	dfddddddifgdfgdd       |j                  |       | j                  d|j                                | j                  |j                  dd      d	       | j                  |j                  dd       d!       | j                  |j                  dd      d       | j                  |j                  ddd"g      d       | j                  |j                  ddd"d#g      d$       | j                  |j                  ddd"d%g      d&       | j                  |j                  d      dd	dd'fddd(dddifgdfg       t        j                  | j                  d)      }|j                  d*d+,       | j                  |j                         d-       | j                  |j                         d       |j                  |       y ).Nr   r   
testtheme4r   r   x   d   )r   r   left)   r   r   rc   r+   )anchorr   r   r   )r8   red)r5   rz   rD   zTestWidget.blockr   )rM   sidezTestWidget.bordernswri   TestWidget.block2rM   rN   )rM   r   children)r.   r?   rT   )r   r   
TestWidgetr   r   r   r   r   z3 0 0 2r5   r8   r   rz   rD   )r   rM   r{   r   Tr   r      )r%   rZ   rS   r   r$   r   r   r   r/   rH   rT   r   r   r   r   r   )r&   r%   r]   r   r^   r   s         r(   test_theme_create_imagez!StyleTest.test_theme_create_image(  sv   

__&
""$))2bI 	9 7ESC3P"Q !7E"2#
 %+"* !*6# (D&)IJ("'"#08V2DE%+ 	0
 	@ 		"gu2245lH=vFlI>	JlLA8LlL'/j23;	=lL'/&;=>C	ElL'/&<>?E	Gl3#f%EF$#!"5&7I!J K' 	 IIdii|4	d())+S1**,c2
#r)   )__name__
__module____qualname__r"   r3   rB   rI   rW   r`   rv   r}   r   r   r   r   r   r   r   r   __classcell__)r'   s   @r(   r   r      sZ    *
@<D	+2.)(O4I6	4:<B2<C(!$F?$r)   r   __main__)unittestro   rS   r   r   testr   test.supportr   test.test_tkinter.supportr   r   rl   TestCaser   r   mainr<   r)   r(   <module>r      s\     
     ! G Q$ 1 1 Q$h
 zHMMO r)   