
   x")`o>                      d dl Z d dlmZ d dlZd dlZd dlmZmZmZmZm	Z	m
Z
mZ d dlmZ d dlmZ  G d de          Z G d d	e j                  Z G d
 de          Z G d de          Z G d de          Z G d de          Z G d de          Z G d dee j                  Zedk    r e j                     dS dS )    N)support)Variable	StringVarIntVar	DoubleVar
BooleanVarTclTclError)	ALWAYS_EQ)AbstractDefaultRootTestc                   &     e Zd ZdZdZ fdZ xZS )VardefaultFc                 X    d| _         t                                          |           d S )NT)side_effectsuperset)selfvalue	__class__s     v/nix/store/c6yb989sl77467xxwhylnkph1pqyi47p-python3-3.11.15/lib/python3.11/tkinter/test/test_tkinter/test_variables.pyr   zVar.set   s'    E    )__name__
__module____qualname___defaultr   r   __classcell__)r   s   @r   r   r      sB        HK        r   r   c                       e Zd Zd Zd ZdS )TestBasec                 ,    t                      | _        d S N)r	   rootr   s    r   setUpzTestBase.setUp   s    EE			r   c                 
    | ` d S r!   )r"   r#   s    r   tearDownzTestBase.tearDown   s    IIIr   N)r   r   r   r$   r&    r   r   r   r      s2              r   r   c                   P    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S )TestVariablec                 Z    | j                              | j         j        ddg|R            S )Ninfoexists)r"   
getbooleancall)r   argss     r   info_existszTestVariable.info_exists!   s0    y##NDIN68$Kd$K$K$KLLLr   c                     t          | j                  }|                     d|                                           |                     t          |          d           d S )N z^PY_VAR(\d+)$)r   r"   assertEqualgetassertRegexstrr   vs     r   test_defaultzTestVariable.test_default$   sR    TYQUUWW%%%Q!122222r   c                     t          | j        dd          }|                     d|                                           |                     dt	          |                     d S )Nsample stringvarname)r   r"   r3   r4   r6   r7   s     r   test_name_and_valuez TestVariable.test_name_and_value)   sU    TY;;!%%''222CFF+++++r   c                 J   |                      |                     d                     t          | j        dd          }|                     |                     d                     ~t          j                     |                      |                     d                     d S )Nr<   r;   )assertFalser0   r   r"   
assertTruer   
gc_collectr7   s     r   test___del__zTestVariable.test___del__.   s    )))44555TY;;((33444)))4455555r   c                    |                      |                     d                     t          | j        d          }t          | j        d          }~t	          j                     |                      |                     d                     ~t	          j                     |                      |                     d                     d S )Nr<   namerD   )r?   r0   r   r"   r   rA   )r   v1v2s      r   test_dont_unset_not_existingz)TestVariable.test_dont_unset_not_existing6   s    )))44555dif---dif---))&11222))&1122222r   c                    t          | j        d          }t          | j        d          }|                     ||           |                     ||           t          | j        d          }|                     ||           t          | j        d          }|                     t          |          t          |                     |                     ||           t          ddi           }|                     | |                       |                     |t                                 |                     |t                     t          j                    }|                     |j                   t          |d          }|                     t          |          t          |                     |                     ||           d S )NabcrE   cbar   r'   )r   r"   assertIsNotr3   assertNotEqualr   r6   typeobjectr   tkinterTk
addCleanupdestroy)r   rF   rG   v3v4Vroot2v5s           r   test_equalityzTestVariable.test_equalityB   s   die,,,die,,,R   R   die,,,B###tyu---R#b''***B###R$$B$$$B)))Y'''
&&&e%(((R#b''***B#####r   c                     |                      t                    5  t          | j        d           d d d            d S # 1 swxY w Y   d S )N{   rE   )assertRaises	TypeErrorr   r"   r#   s    r   test_invalid_namezTestVariable.test_invalid_name\   s    y)) 	* 	*TYS))))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*s   ?AAc                     |                      t                    5  t          | j        d           d d d            n# 1 swxY w Y   |                      t                    5  | j                            dd           d d d            n# 1 swxY w Y   |                      t                    5  | j                            dd           d d d            n# 1 swxY w Y   |                      t                    5  | j                            dd           d d d            n# 1 swxY w Y   |                      t                    5  | j                            dd           d d d            d S # 1 swxY w Y   d S )Nzvar namerE   r   s   var name)r\   
ValueErrorr   r"   globalsetvarsetvarr#   s    r   test_null_in_namezTestVariable.test_null_in_name`   s   z** 	4 	4TY]3333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4z** 	; 	;I""=':::	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	;z** 	< 	<I"">7;;;	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	<z** 	5 	5I]G444	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5z** 	6 	6I^W555	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6sW   >AA#BBB0CCC=D%%D),D)
E33E7:E7c                     t          | j                  }|                     |j                   |                    d           |                     |j                   d S Nr   )r   r"   r?   r   r   r@   r7   s     r   test_initializezTestVariable.test_initializel   sN    	NN'''	g&&&&&r   c                    t          | j                  }t          |          }g fd}fd}|                    d|          }|                    d|          }|                     t          |                                          d|fd|fg           |                     g            |                    d           |                     d|ddfg           g |                                 |                     d	|ddfg           g t          |                                          }|	                    d|           |                     t          |                                          |           | 
                    t                    5  |	                    dd           d d d            n# 1 swxY w Y   |                     t          |                                          |           |	                    d|d
f           |                     t          |                                          |           |                                 |                     d	|ddfg           g |	                    d|           |                     |                                d|fg           |                                 |                     g            g ~t          j                     |                    d           |                     d|ddfg           g ~t          j                     |                     d|ddfg           d S )Nc                  8                         d| z              d S Nreadappendr/   traces    r   read_tracerz0TestVariable.test_trace_old.<locals>.read_tracerw        LLT)*****r   c                  8                         d| z              d S N)writerl   rn   s    r   write_tracerz1TestVariable.test_trace_old.<locals>.write_tracery        LLd*+++++r   rwuspamrt   r2   wrk   +   eggsu)r   r"   r6   trace_variabler3   sortedtrace_vinfor   r4   trace_vdeleter\   r
   gccollect)	r   r8   vnamerp   ru   cb1cb2r+   ro   s	           @r   test_trace_oldzTestVariable.test_trace_oldr   so   TYA	+ 	+ 	+ 	+ 	+	, 	, 	, 	, 	,sK00t\2200C:c{2KLLL###	f'5"c!: ;<<<	&%S!9 :;;;ammoo&&	S!!!00$777x(( 	) 	)OOC(((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)00$777	c2Y'''00$777	&%S!9 :;;;	S!!!D#;-888	###

	f'5"c!: ;<<<

'5"c!: ;<<<<<s   F::F>F>c                 "   t          | j                  }t          |          }g fd}fd}|                    d|          }|                    ddg|          }|                     t          |                                          d|fd|fg           |                     g            |                    d           |                     d|d	dfg           g |                                 |                     d|d	dfg           g t          |                                          }|	                    d|           |                     t          |                                          |           | 
                    t                    5  |	                    dd           d d d            n# 1 swxY w Y   |                     t          |                                          |           |                                 |                     d|d	dfg           g |	                    d|           |                     |                                d|fg           |                                 |                     g            g ~t          j                     |                    d
           |                     d|d	dfg           g ~t          j                     |                     d|d	dfg           d S )Nc                  8                         d| z              d S ri   rl   rn   s    r   rp   z,TestVariable.test_trace.<locals>.read_tracer   rq   r   c                  8                         d| z              d S rs   rl   rn   s    r   ru   z-TestVariable.test_trace.<locals>.write_tracer   rv   r   rk   rt   unsetrj   )rt   r   ry   r2   r|   )r   r"   r6   	trace_addr3   r   
trace_infor   r4   trace_remover\   r
   r   r   )	r   r8   r   rp   ru   tr1tr2r+   ro   s	           @r   
test_tracezTestVariable.test_trace   sC   TYA	+ 	+ 	+ 	+ 	+	, 	, 	, 	, 	,kk&+..kk7G,l;;//#S),c224 	5 	5 	5 	###	f'5"g!> ?@@@	&%V!< =>>>allnn%%	w$$$//666x(( 	+ 	+NN66***	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+//666	&%V!< =>>>	vs###+=s*C)DEEE	###

	f'5"g!> ?@@@

'5"g!> ?@@@@@s   F<<G G N)r   r   r   r0   r9   r=   rB   rH   rY   r^   rc   rf   r   r   r'   r   r   r)   r)      s        M M M3 3 3
, , ,
6 6 6
3 
3 
3$ $ $4* * *
6 
6 
6' ' '0= 0= 0=d/A /A /A /A /Ar   r)   c                        e Zd Zd Zd Zd ZdS )TestStringVarc                 ~    t          | j                  }|                     d|                                           d S )Nr2   )r   r"   r3   r4   r7   s     r   r9   zTestStringVar.test_default   s5    di  QUUWW%%%%%r   c                    t          | j        dd          }|                     d|                                           | j                            dd           |                     d|                                           d S )NrJ   rD   r   r   r"   r3   r4   ra   r7   s     r   test_getzTestStringVar.test_get   so    di//(((	vw///!%%''*****r   c                    t          | j        dd          }|                     d|                                           | j                            dd           |                     d|                                           d S )Nzabc defrD   zval uer   r7   s     r   test_get_nullzTestStringVar.test_get_null   so    div66quuww///	v{333aeegg.....r   N)r   r   r   r9   r   r   r'   r   r   r   r      sA        & & &+ + +/ / / / /r   r   c                        e Zd Zd Zd Zd ZdS )
TestIntVarc                 ~    t          | j                  }|                     d|                                           d S )Nr   )r   r"   r3   r4   r7   s     r   r9   zTestIntVar.test_default   s5    49AEEGG$$$$$r   c                    t          | j        dd          }|                     d|                                           | j                            dd           |                     d|                                           | j                            dd           |                     d|                                           d S )Nr[   rD   345iY  z876.5il  )r   r"   r3   r4   ra   r7   s     r   r   zTestIntVar.test_get   s    49c6**aeegg&&&	vu---aeegg&&&	vw///aeegg&&&&&r   c                    t          | j        d          }| j                            dd           |                     t          t
          f          5  |                                 d d d            d S # 1 swxY w Y   d S NrD   rE   r   )r   r"   ra   r\   r`   r
   r4   r7   s     r   test_invalid_valuezTestIntVar.test_invalid_value   s    496***	vw///
H566 	 	EEGGG	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	   A55A9<A9N)r   r   r   r9   r   r   r'   r   r   r   r      sA        % % %' ' '    r   r   c                   &    e Zd Zd Zd Zd Zd ZdS )TestDoubleVarc                 ~    t          | j                  }|                     d|                                           d S )Ng        )r   r"   r3   r4   r7   s     r   r9   zTestDoubleVar.test_default   s5    di  aeegg&&&&&r   c                    t          | j        dd          }|                     d|                                           | j                            dd           |                     d|                                           d S )NGz?rD   3.45皙@r   r"   assertAlmostEqualr4   ra   r7   s     r   r   zTestDoubleVar.test_get  so    div..tQUUWW---	vv...tQUUWW-----r   c                    t          | j        dd          }|                     d|                                           | j                            dd           |                     d|                                           | j                            dd           |                     d|                                           d S )Nr   rD   r   r   456i  r   r7   s     r   test_get_from_intzTestDoubleVar.test_get_from_int
  s    div..tQUUWW---	vv...tQUUWW---	vu---sAEEGG,,,,,r   c                    t          | j        d          }| j                            dd           |                     t          t
          f          5  |                                 d d d            d S # 1 swxY w Y   d S r   )r   r"   ra   r\   r`   r
   r4   r7   s     r   r   z TestDoubleVar.test_invalid_value  s    dif---	vw///
H566 	 	EEGGG	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	r   N)r   r   r   r9   r   r   r   r'   r   r   r   r      sP        ' ' '. . .- - -    r   r   c                   &    e Zd Zd Zd Zd Zd ZdS )TestBooleanVarc                 ~    t          | j                  }|                     |                                d           d S )NF)r   r"   assertIsr4   r7   s     r   r9   zTestBooleanVar.test_default  s3    ty!!aeeggu%%%%%r   c                    t          | j        dd          }|                     |                                d           | j                            dd           |                     |                                d           | j                            d| j                                        rdnd           |                     |                                d           | j                            dd           |                     |                                d           | j                            dd           |                     |                                d           d S )	NTrD   0F*      r   on)r   r"   r   r4   ra   wantobjectsr7   s     r   r   zTestBooleanVar.test_get  s   ty$//aeeggt$$$	vs+++aeeggu%%%	vTY-B-B-D-D'Krr!LLLaeeggt$$$	vq)))aeeggu%%%	vt,,,aeeggt$$$$$r   c                 D   | j                                         rdnd}| j                                         rdnd}t          | j         d          }|                    d           |                     | j                             d          |           |                    d           |                     | j                             d          |           |                    d           |                     | j                             d          |           |                    d           |                     | j                             d          |           |                    d	           |                     | j                             d          |           d S )
Nr   1r   r   rD   rE   Tr   r   )r"   r   r   r   r3   globalgetvar)r   truefalser8   s       r   test_setzTestBooleanVar.test_set+  s]   I))++4qqY**,,5#tyv...	d//77>>>	c


//77???	b			//77>>>	a//77???	d//77>>>>>r   c                    | j                                         rdnd}t          | j         d          }|                     t                    5  |                    d           d d d            n# 1 swxY w Y   |                     | j                             d          |           | j                             dd           |                     t                    5  |
                                 d d d            n# 1 swxY w Y   | j                             dd           |                     t                    5  |
                                 d d d            d S # 1 swxY w Y   d S )Nr   r   rD   rE   r   z1.0)r"   r   r   r\   r
   r   r3   r   ra   r`   r4   )r   r   r8   s      r   test_invalid_value_domainz(TestBooleanVar.test_invalid_value_domain:  s   Y**,,5#tyv...x(( 	 	EE'NNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	//77???	vw///z** 	 	EEGGG	 	 	 	 	 	 	 	 	 	 	 	 	 	 		vu---z** 	 	EEGGG	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s6   A00A47A4C??DD?E!!E%(E%N)r   r   r   r9   r   r   r   r'   r   r   r   r     sP        & & &
% 
% 
%? ? ?    r   r   c                       e Zd Zd ZdS )DefaultRootTestc                    |                      t          t                     t          j                    }t                      }|                    d           |                     |                                d           |                                 t          j	                     |                      t          t                     d S re   )
r\   RuntimeErrorr   rP   rQ   r   r3   r4   rS   NoDefaultRoot)r   r"   r8   s      r   test_variablezDefaultRootTest.test_variableJ  s    ,111z||JJ	g'***,11111r   N)r   r   r   r   r'   r   r   r   r   H  s#        2 2 2 2 2r   r   __main__)unittesttestr   r   rP   r   r   r   r   r   r	   r
   test.supportr   tkinter.test.supportr   r   TestCaser   r)   r   r   r   r   r   r   mainr'   r   r   <module>r      sA          				                   " " " " " " 8 8 8 8 8 8    (       x    tA tA tA tA tA8 tA tA tAn/ / / / /H / / /&       *    H   6, , , , ,X , , ,^
2 
2 
2 
2 
2-x/@ 
2 
2 
2 zHMOOOOO r   