o
    ²ó®gv  ã                   @   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 d dl	m
Z
 edƒ g d¢ZG dd	„ d	e
e jƒZefZed
krEeeŽ  dS dS )é    N)Úttk)Úsupport)ÚrequiresÚrun_unittest)ÚAbstractTkTestZgui)Ú.ZComboboxPopdownFrameZHeadingzHorizontal.TProgressbarzHorizontal.TScaleZItemZSashÚTButtonZTCheckbuttonZ	TComboboxZTEntryZTLabelframezTLabelframe.LabelZTMenubuttonZ	TNotebookzTNotebook.TabZ
ToolbuttonZTProgressbarZTRadiobuttonÚTreeviewZTScaleZ
TScrollbarZTSpinboxzVertical.TProgressbarzVertical.TScalec                       sT   e 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
‡  ZS )Ú	StyleTestc                    s   t ƒ  ¡  t | j¡| _d S )N)ÚsuperÚsetUpr   ZStyleÚrootÚstyle)Úself©Ú	__class__© úV/Users/admin/.pyenv/versions/3.10.0/lib/python3.10/tkinter/test/test_ttk/test_style.pyr      s   
zStyleTest.setUpc                 C   s>   | j }|jddd |  | dd¡d¡ |  | d¡t¡ d S )Nr   Úyellow©Ú
backgroundr   )r   Ú	configureÚassertEqualÚassertIsInstanceÚdict©r   r   r   r   r   Útest_configure   s   ÿzStyleTest.test_configurec              	   C   sÚ  | j }dgdgfD ]E}| j|d5 |jdg |¢d‘R gd dg}|  | dd¡|¡ | d¡}|  |t¡ |  |d |¡ W d   ƒ q	1 sIw   Y  q	d	d
gdgdgfD ]E}| j|d5 |jdg |¢d‘R gd dg}|  | dd¡|¡ | d¡}|  |t¡ |  |d |¡ W d   ƒ qX1 s˜w   Y  qXg dgdgfD ]E}| j|d5 |jdg |¢d‘R gd dg}|  | dd¡|¡ | d¡}|  |t¡ |  |d |¡ W d   ƒ q¥1 såw   Y  q¥d S )NÚactive)r   )Ústatesr   Úwhiter   )r   r   r   Úpressedú	!disabledzpressed !disabled)r    r!   Úblack)r    r!   r"   Ú r   Úgrey)r$   )r   ÚsubTestÚmapr   r   r   )r   r   r   ZexpectedÚmr   r   r   Útest_map$   s:   
ú	
ú	
úÿzStyleTest.test_mapc                 C   sn   | j }|jddd |jddgd |  | dd¡d¡ |  | ddddg¡d¡ |  |jddd	d
d	¡ d S )Nr   r   r   )r   r   Úbluer   r   r)   ZoptionnotdefinedZiknewit)Údefault)r   r   r&   r   Úlookupr   r   r   r   Útest_lookupF   s   ÿÿÿÿzStyleTest.test_lookupc                 C   sœ   | j }|  tj|jd¡ | d¡}| dd¡ |  | d¡dddifg¡ | d|¡ |  | d¡|¡ |  | d¡t¡ |  tj|jddd	d
ifg¡ d S )NZ
NotALayoutr	   r#   ZnullZstickyZnswer   ÚnameZoptionZ
inexistent)r   ÚassertRaisesÚtkinterÚTclErrorZlayoutr   r   Úlist)r   r   Ztv_styler   r   r   Útest_layoutR   s   
ÿÿzStyleTest.test_layoutc                 C   s„   |   tj| jjd¡ | j ¡ }d }| j ¡ D ]}||kr&|}| j |¡  q)qd S |  ||k¡ |  || j ¡ k¡ | j |¡ d S )NZnonexistingname)r.   r/   r0   r   Ú	theme_useÚtheme_namesZassertFalse)r   Ú
curr_themeZ	new_themeÚthemer   r   r   Útest_theme_usei   s   ÿ
ýzStyleTest.test_theme_usec           	   
   C   s2  | j }| j  ¡ }|  | j j|¡ | j  ¡ D ]}| j  |¡ tD ]v}| |¡}|s)q| j||d] tjdkr=t	d|||ƒ |dv rSt
 ¡ d d… dkrS	 W d   ƒ qd|› }|  | |¡d ¡ |j|fi |¤Ž |  | |¡|¡ | ¡ D ]\}}|  | ||¡|¡ qwW d   ƒ q1 sw   Y  qqd S )N©r6   r-   é   r   ©ZvistaZxpnative©é   é   úC.)r   r3   Ú
addCleanupr4   ÚCLASS_NAMESr   r%   r   ÚverboseÚprintÚsysÚgetwindowsversionr   Úitems©	r   r   r5   r6   r-   r*   ZnewnameÚkeyÚvaluer   r   r   Útest_configure_custom_copy~   ó6   


ÿú
ÿõüþz$StyleTest.test_configure_custom_copyc           	   
   C   s2  | j }| j  ¡ }|  | j j|¡ | j  ¡ D ]}| j  |¡ tD ]v}| |¡}|s)q| j||d] tjdkr=t	d|||ƒ |dv rSt
 ¡ d d… dkrS	 W d   ƒ qd|› }|  | |¡i ¡ |j|fi |¤Ž |  | |¡|¡ | ¡ D ]\}}|  | ||¡|¡ qwW d   ƒ q1 sw   Y  qqd S )Nr8   r9   r&   r:   r;   r>   )r   r3   r?   r4   r@   r&   r%   r   rA   rB   rC   rD   r   rE   rF   r   r   r   Útest_map_custom_copy˜   rJ   zStyleTest.test_map_custom_copy)Ú__name__Ú
__module__Ú__qualname__r   r   r(   r,   r2   r7   rI   rK   Ú__classcell__r   r   r   r   r
      s    "r
   Ú__main__)ZunittestrC   r/   r   Útestr   Ztest.supportr   r   Ztkinter.test.supportr   r@   ZTestCaser
   Z	tests_guirL   r   r   r   r   Ú<module>   s    
 ÿ