
    dafB                     
   d dl mZ  ej                  d       d dlZd dlmZ  G d d      Z G d de      Z G d	 d
e      Z	 G d dej                        Z G d dej                        Zedk(  r ej                          yy)    )import_helper_tkinterN)ttkc                       e Zd Zd Zd Zy)	MockTkAppc                 H    t        |t              r|S |j                  d      S )N:)
isinstancetuplesplit)selfargs     1/root/Python-3.12.4/Lib/test/test_ttk_textonly.py	splitlistzMockTkApp.splitlist   s    c5!Jyy~    c                      y)NT r   s    r   wantobjectszMockTkApp.wantobjects   s    r   N)__name__
__module____qualname__r   r   r   r   r   r   r   
   s    
r   r   c                       e Zd ZdZd Zd Zy)
MockTclObjtestc                     || _         y Nval)r   r   s     r   __init__zMockTclObj.__init__   s	    r   c                 ,    t        | j                        S r   )strr   r   s    r   __str__zMockTclObj.__str__   s    488}r   Nr   r   r   typenamer    r#   r   r   r   r   r      s    Hr   r   c                       e Zd ZdZd Zd Zy)MockStateSpec	StateSpecc                     || _         y r   r   )r   argss     r   r    zMockStateSpec.__init__"   s	    r   c                 8    dj                  | j                        S N )joinr   r   s    r   r#   zMockStateSpec.__str__%   s    xx!!r   Nr$   r   r   r   r'   r'      s    H"r   r'   c                   H    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zy)InternalFunctionsTestc                      fd} j                  t        j                  i               |t        j                  dg dd      ddd        |t        j                  ddi      d	d
i        |t        j                  dddii      d	ddii        |t        j                  g ddddddddd      dddddddd       ddd}|j                         } |t        j                  |      ddd         j	                  ||        |t        j                  d!d"i      d#d$i        |t        j                  d!d%i      d#d&i        |t        j                  d!d'i      d#d(i        |t        j                  d!d)i      d#d*i        |t        j                  d!d+i      d#d,i        |t        j                  d!d-i      d#d.i       t        t        j                  |d/0            d1z  } j	                  |t        |      d2z
         t        t        j                  |d30            d1z  } j	                  |t        |      d2z
          j                  t        j                  |t        |j                               0             y )4Nc                     t        dt        |       d      D ],  }j                  |j                  | |         | |dz             . |rj	                  d|z         y y )Nr         zresult still got elements: %s)rangelenassertEqualpopfail)fmt_optsresultir   s      r   check_againstz@InternalFunctionsTest.test_format_optdict.<locals>.check_against,   s`    1c(mQ/ K  HQK!8(1q5/JK		9FBC r   bluer4   r3         )fgpaddingz1 2 3 4)z-fgz-paddingr   )r4   r3    r   -testz1 2 {} 0leftzas is)r4   rD   2mr   r@   rD   zabc defz"abc"z{}z	} -spam {)r   test2test3test4test5test6test7Tscriptz{1 -1 {} 2m 0}3z	{abc def}z{"abc"}z\{\}z\}\ -spam\ \{)rE   z-test2z-test3z-test4z-test5z-test6z-test7Fu   αβγ   á)u   -αβγu   -áoption)zone twothree-optionz{one two} three)zone	tworU   z{one	two} three)rD   onez{} one)z	one} {tworU   zone\}\ \{two three)z"one"twoz{"one"} two)z{one}rX   z\{one\} tworS   )ignorer3   r4   )rS   b)assertFalser   _format_optdictcopyr7   r6   listkeys)r   r=   opts	orig_optsamount_optss   `    r   test_format_optdictz)InternalFunctionsTest.test_format_optdict+   s   	D 	,,R01 	v, GH	2	4
 	 78j!	#
 	&'): ;<vw'(	*
 	-y!D%' 04	5
 '#{ G')		* e,IIK	c))$/T%1PQy) 	/02)*	, 	013*+	- 	;')!	# 	124-.	0 	+,.&	( 	+,.'	) #--dDBCaGc$i!m4 #--d;GH1Lc$i!m4 	,,T$tyy{:KLMr   c           	      L   dg di}t        j                  |      }| j                  t        |      t        t	        |j                                     dz         | j                  |d       | j                  t        j                  |d      d       | j                  t        j                  dg i      d       d	d
gi}t        j                  |      }| j                  |d       | j                  t        j                  ddgi      d       ddgi}| j                  t        j                  |      d       ddgi}| j                  t        t         j                  |       ddgddfgi}| j                  t        t         j                  |       dddggi}| j                  t        j                  |      d       d dddt               fD ].  }d|dfgi}| j                  t        j                  |      d       0 dd i}| j                  t        t         j                  |       y )Na))rZ   cr   )dotherval)rD   singler3   )-az{b c} val d otherval {} singleTrO   )rj   z {{b c} val d otherval {} single})z-2rD      üñíćódèrS   u   vãl)u   -üñíćódèu   á vãlopt)value)-optz{} value)rD   rD   hi)ro   z{ } hi)r4   r3   	valid valr4   2rq   rn   )ro   z1 valuer   FrD   )	r   _format_mapdictr7   r6   r^   r_   assertRaises	TypeErrorset)r   r`   r;   validinvalidstatevals         r   test_format_mapdictz)InternalFunctionsTest.test_format_mapdict   s   KL$$T*Vc$tyy{*;&<q&@A!IJ,,T$?6	8 	,,aW5zB.!12$$T*!>?,,ej\-BC-	/ (),,U35GH ./0)S%8%8'BQCk234)S%8%8'B!W',,U35HIq%SU3 	&Hh012ES007$&	& T{)S%8%8$?r   c                    | j                  t        j                  d       d       | j                  t        t        j                  d       | j                  t        j                  ddd      d       | j                  t        j                  dddd      d       | j                  t        j                  dddd      d	       | j                  t        j                  dddd
d      d       | j                  t        j                  ddddddg      d       | j                  t        t        j                  d       | j                  t        j                  dddd      d       | j                  t        j                  ddddd      d       | j                  t        j                  ddddd
d      d       | j                  t        j                  ddddddddgfd      d       | j                  t        t        j                  d       | j                  t        j                  ddd      d       | j                  t        j                  dddd      d       | j                  t        j                  dddd      d        y )!N)Nr   imageFr   )ztest r   )rD   re   )z	test {} ar   re   rZ   rf   )ztest {a b} cr   re   rZ   x)re   )ztest a b)rj   r   T)re   rZ   rf   rg   r3   r@   )r   )z{test {a b c} d}z-x {2 3}vsapire   rZ   )za b r   )za b {a b} cr   )rm   )za b a b)ro   r   r4   )z{a b {a b} {1 2}}z-opt xfrom)re   r   )re   )rZ   )z{a}rZ   )
assertTruer   _format_elemcreatert   
IndexErrorr7   
ValueErrorr   s    r   test_format_elemcreatez,InternalFunctionsTest.test_format_elemcreate   s[   ..t4jA
 	*c&<&<gF 	//G	 	//)	+ 	//2	4 	//# 9	; 	//v QF,-M	O 	*c&<&<gF 	//SI	 	//S1	3 	//SC!"<	> 	//sC#1vC)*I	K
 	*c&<&<fE//sC	//sCH	//c3G	r   c                     dd}dd}| j                  t        j                  g       d   d       | j                  t        t        j                  dg       t        j                  dgd      }| j                  |t        j                  dgd             | j                  |d   d	       | j                   |        |              t        d
      D ]@  }| j                   ||       ||             | j                   |||       |||             B | j                  t        t        j                  ddg       | j                  t        t        j                  dg       | j                  t        t        j                  ddd	d iifg       y )Nr   c           
      h    t        j                  dg dddddddifgd	d
fgifgdfg| |      d   S )Nre   )r4   r3   r@   rZ   childrenrf   rg   nicerm   )r4   r3   )r   	something)otherr   indentindent_sizer   )r   _format_layoutlistr   s     r   samplez<InternalFunctionsTest.test_format_layoutlist.<locals>.sample   sq    ))Y
/0v       K9 :;< <r   c                      d
 fd	} |       d ||      d |d|z        d |d|z        d |d|z        d ||      d |       d	S )Nc                     d| z   z  S r,   r   )amountr   s    r   <lambda>zWInternalFunctionsTest.test_format_layoutlist.<locals>.sample_expected.<locals>.<lambda>   s    cVf_&= r   za -other {1 2 3} -children {
zb -children {
r3   zc -something {1 2} -children {
r@   zd -nice opt
z}
})r   r   )r   r   spacess   `  r   sample_expectedzEInternalFunctionsTest.test_format_layoutlist.<locals>.sample_expected   sP    =F  6+#61{?+VAO-D1{?+VK-@&(L	Mr   rD   r~   )re   N)r   )re   rD   re   rA   badformat)namer   r   r   )r   r3   )r7   r   r   rt   AttributeErrorr5   r   )r   r   r   smallestr<   s        r   test_format_layoutlistz,InternalFunctionsTest.test_format_layoutlist   sl   	<	M 	//3A6; 	.""ZL	2 ));-B""I;q9	;!c* 	?#45q 	BAVAY(:;VAq\?1a+@A	B 	*c&<&<H	 	.#*@*@	 	*c&<&<zC;/01	3r   c           	      j   | j                  t        j                  dd d d di             | j                  t        j                  ddd ii      d       ddd}| j	                  t        j                  dd|ii             d	d
gi}| j	                  t        j                  dd|ii             | j                  t        t        j                  dddgii       | j	                  t        j                  ddddgii             ddg dii}| j                  t        j                  |      d       |d   d   j                  ddi       | j                  t        j                  |      d       t        d      t        d      g|d   d   d   d<   | j                  t        j                  |      d       y )Nr   )	configuremapelement createlayoutzttk::style layout name {
null
}TFrR   r   rk   rl   r   r   r|   thing)r|   r   )state1state2r   zAttk::style element create thing image {name {state1 state2} val} rm      zHttk::style element create thing image {name {state1 state2} val} -opt 30r@   rH   rG   zLttk::style element create thing image {name {state1 state2} val} -opt {3 2m})	r[   r   _script_from_settingsr7   r   rt   r   appendr   )r   
configdictmapdictr|   s       r   test_script_from_settingsz/InternalFunctionsTest.test_script_from_settings  s   22FttD4F G 	H 	%%v$/?&@A/	1 !%E2
%%vZ/H&IJ	L #^$45%%vw/?&@A	C 	*%%1AG90M'N	P 	1160133 4 	5 +:< =2259O	Q 	g'(//<2259	 8B!}t7g'(,U32259	r   c           	          | j                  t        j                  t        dd      df      dg       | j                  t        j                  t	        d      dt	        d      g      g d       y )	Nre   rZ   r   )re   rZ   r   1r3   3m)r4   r3   r   )r7   r   _tclobj_to_pyr'   r   r   s    r   test_tclobj_to_pyz'InternalFunctionsTest.test_tclobj_to_pyJ  sa    }S#6>?	! 	z#:d3CDE	r   c                      fd}t        d t        d      D              }t        | } ||dd|        ||t        d      d|       t        d t        d      D              }t        | } ||dd|        |dt        d      dd       y )Nc                 ^    j                  t        j                  | |f      ||fz   g       y r   )r7   r   _list_from_statespec)sspecrn   	res_valuestatesr   s       r   test_itz?InternalFunctionsTest.test_list_from_statespec.<locals>.test_itT  s2    S55 "(I="8!9;r   c              3   &   K   | ]	  }d |z    ywzstate%dNr   .0r<   s     r   	<genexpr>zAInternalFunctionsTest.test_list_from_statespec.<locals>.<genexpr>X  s     <aIM<      r   c              3   &   K   | ]	  }d |z    ywr   r   r   s     r   r   zAInternalFunctionsTest.test_list_from_statespec.<locals>.<genexpr>]  s     ;Q9q=;r      r}   )r   r5   r'   r   )r   r   states_even	statespec
states_odds   `    r   test_list_from_statespecz.InternalFunctionsTest.test_list_from_statespecS  s    	; <58<<!;/		5%5	:e,e[A;%(;;
!:.		5%4E!2E?Kr   c           	         t               }| j                  t        j                  |d             | j	                  t        j                  |d      di fg       d}| j	                  t        j                  ||      dddifg       | j	                  t        j                  |d      dd	g ifg       d
}| j	                  t        j                  ||      dddddi fgdfgdfg       | j                  t        t        j                  |d       | j                  t        t        j                  |d       | j                  t        t        j                  |d       y )Nr   )r   r   )r   rV   rn   rT   rn   )r   	-childrenr   r   r   )r   rV   niceoner   )otheroner   )childz	-otheropt
othervaluer   r   r   r   )otheroptr   )rT   r   )r   no_minus)r   r   rn   )r   r   )r   r[   r   _list_from_layouttupler7   rt   r   )r   tksample_ltupleltuples       r   test_list_from_layouttuplez0InternalFunctionsTest.test_list_from_layouttupled  sd   [ 	33B;< 	33B
Cb\N	 533BFx)*+	- 	33B*,J+,-	

 	33B?<r]O    	
 	*c&@&@" 	"*c&@&@")	+*c&@&@"&	(r   c                 z   d	d}t               }||_        | j                  t        j                  |i d      ddi       | j                  t        j                  |i d      ddi       | j                  t        j                  |dd id      d       | j                  t        j                  |ddid      ddi       y )
Nc                     || S |y||fS )Ntest valr   )resrm   r   s      r   funcz4InternalFunctionsTest.test_val_or_dict.<locals>.func  s    {
{!:r   z-test:3r   rQ   )rE   r@   r@   zx:yr   )NN)r   callr7   r   _val_or_dict)r   r   r   s      r   test_val_or_dictz&InternalFunctionsTest.test_val_or_dict  s    	 [))"b)< #	())"b,? !	& 	))"vtneD#	% 	))"vqk5A !	&r   c                 v    ddddg dfdf}|D ]*  \  }}| j                  t        j                  |      |       , y )N)r   r   )09	   )re   re   )   áÚr   z[])NNone)r7   r   _convert_stringval)r   testsorigexpecteds       r   test_convert_stringvalz,InternalFunctionsTest.test_convert_stringval  sN    Iz+;b$Z
 $ 	END(S33D98D	Er   N)r   r   r   rc   rz   r   r   r   r   r   r   r   r   r   r   r   r0   r0   )   s?    UNp%@P8v63r(VL"+(\&.Er   r0   c                       e Zd Zd Zd Zd Zy)TclObjsToPyTestc                     ddi}| j                  t        j                  |      ddi       t        |d         |d<   | j                  t        j                  |      ddi       y )Nrm   u   välúè)r7   r   tclobjs_to_pyr   r   adicts     r   test_unicodezTclObjsToPyTest.test_unicode  s^    
#**51E:3FG!%,/e**51E:3FGr   c                    dg di}| j                  t        j                  |      dg di       g d|d<   | j                  t        j                  |      dg di       t        dd      df|d<   | j                  t        j                  |      ddgi       | j                  t        j                  dd	gi      dd	gi       y )
Nrm   r?   )r4   xmr@   re   rZ      válũè)re   rZ   r   r   zy z)r7   r   r   r'   r   s     r   test_multivaluesz TclObjsToPyTest.test_multivalues  s    %**51E<3HI#e**51E<3HI%c3/<e**51+,-	/ 	**C%>:5'N	r   c                 V    | j                  t        j                  ddi      ddi       y )Ntextz	some text)r7   r   r   r   s    r   test_nosplitzTclObjsToPyTest.test_nosplit  s*    **FK+@A[!	#r   N)r   r   r   r   r   r   r   r   r   r   r     s    H#r   r   __main__)test.supportr   import_moduleunittesttkinterr   r   objectr   r'   TestCaser0   r   r   mainr   r   r   <module>r      s    &   J '    "F "FEH-- FER#h'' #8 zHMMO r   