
    0hhE                        S SK Jr  \R                  " S5        S SKrS SKJr   " S S5      r " S S\5      r " S	 S
\5      r	 " S S\R                  5      r " S S\R                  5      r\S:X  a  \R                  " 5         gg)    )import_helper_tkinterN)ttkc                        \ rS rSrS rS rSrg)	MockTkApp
   c                 R    [        U[        5      (       a  U$ UR                  S5      $ )N:)
isinstancetuplesplit)selfargs     ?/opt/python-3.13.8/usr/lib/python3.13/test/test_ttk_textonly.py	splitlistMockTkApp.splitlist   s"    c5!!Jyy~    c                     g)NT r   s    r   wantobjectsMockTkApp.wantobjects   s    r   r   N)__name__
__module____qualname____firstlineno__r   r   __static_attributes__r   r   r   r   r   
   s    
r   r   c                   $    \ rS rSrSrS rS rSrg)
MockTclObj   testc                     Xl         g Nval)r   r%   s     r   __init__MockTclObj.__init__   s    r   c                 ,    [        U R                  5      $ r#   )strr%   r   s    r   __str__MockTclObj.__str__   s    488}r   r$   Nr   r   r   r   typenamer&   r*   r   r   r   r   r   r      s    Hr   r   c                   $    \ rS rSrSrS rS rSrg)MockStateSpec   	StateSpecc                     Xl         g r#   r$   )r   argss     r   r&   MockStateSpec.__init__"   s    r   c                 8    SR                  U R                  5      $ N )joinr%   r   s    r   r*   MockStateSpec.__str__%   s    xx!!r   r$   Nr,   r   r   r   r/   r/      s    H"r   r/   c                   P    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rSrg)InternalFunctionsTest)   c                   ^  U 4S jnT R                  [        R                  " 0 5      5        U" [        R                  " S/ SQS.5      SSS.5        U" [        R                  " SS05      S	S
05        U" [        R                  " SSS005      S	SS005        U" [        R                  " / SQSSSSSSS.SS9SSSSSSSS.5        SSS.nUR                  5       nU" [        R                  " U5      SSS .5        T R	                  X#5        U" [        R                  " S!S"05      S#S$05        U" [        R                  " S!S%05      S#S&05        U" [        R                  " S!S'05      S#S(05        U" [        R                  " S!S)05      S#S*05        U" [        R                  " S!S+05      S#S,05        U" [        R                  " S!S-05      S#S.05        [        [        R                  " US/S095      S1-  nT R	                  U[        U5      S2-
  5        [        [        R                  " US3S095      S1-  nT R	                  U[        U5      S2-
  5        T R                  [        R                  " U[        UR                  5       5      S095        g )4Nc                    > [        S[        U 5      S5       H+  nTR                  UR                  X   5      XS-      5        M-     U(       a  TR	                  SU-  5        g g )Nr         zresult still got elements: %s)rangelenassertEqualpopfail)fmt_optsresultir   s      r   check_against@InternalFunctionsTest.test_format_optdict.<locals>.check_against,   sU    1c(mQ/  HK!8(q5/J 0		9FBC r   bluer@   r?         )fgpaddingz1 2 3 4)z-fgz-paddingr!   )r@   r?    r   -testz1 2 {} 0leftzas is)r@   rQ   2mr   rM   rQ   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\ \{)rR   z-test2z-test3z-test4z-test5z-test6z-test7Fu   αβγ   á)u   -αβγu   -áoption)zone twothree-optionz{one two} three)zone	tworb   z{one	two} three)rQ   onez{} one)z	one} {tworb   zone\}\ \{two three)z"one"twoz{"one"} two)z{one}re   z\{one\} twor`   )ignorer?   r@   )r`   b)assertFalser   _format_optdictcopyrC   rB   listkeys)r   rI   opts	orig_optsamount_optss   `    r   test_format_optdict)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) 	/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           	      Z   S/ SQ0n[         R                  " U5      nU R                  [        U5      [        [	        UR                  5       5      5      S-  5        U R                  US5        U R                  [         R                  " USS9S5        U R                  [         R                  " S/ 05      S5        S	S
/0n[         R                  " U5      nU R                  US5        U R                  [         R                  " SS/05      S5        SS/0nU R                  [         R                  " U5      S5        SS/0nU R                  [        [         R                  U5        SS/SS4/0nU R                  [        [         R                  U5        SSS//0nU R                  [         R                  " U5      S5        S SSS[        5       4 H0  nSUS4/0nU R                  [         R                  " U5      S5        M2     SS 0nU R                  [        [         R                  U5        g )Na))rg   cr%   )dotherval)rQ   singler?   )-az{b c} val d otherval {} singleTr\   )rx   z {{b c} val d otherval {} single})z-2rQ      üñíćódèr`   u   vãl)u   -üñíćódèu   á vãlopt)value)-optz{} value)rQ   rQ   hi)r}   z{ } hi)r@   r?   	valid valr@   2r   r|   )r}   z1 valuer   FrQ   )	r   _format_mapdictrC   rB   rk   rl   assertRaises	TypeErrorset)r   rm   rG   validinvalidstatevals         r   test_format_mapdict)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3Hh012ES007$& 4 T{)S%8%8$?r   c                 d   U R                  [        R                  " S 5      S5        U R                  [        [        R                  S5        U R                  [        R                  " SSS5      S5        U R                  [        R                  " SSSS5      S5        U R                  [        R                  " SSSS5      S	5        U R                  [        R                  " SSSS
SS9S5        U R                  [        R                  " SSSSSS/S9S5        U R                  [        [        R                  S5        U R                  [        R                  " SSSS5      S5        U R                  [        R                  " SSSSS/5      S5        U R                  [        R                  " SSSSS
/SS9S5        U R                  [        R                  " SSSSSS9S5        U R                  [        R                  " SSSSSSSS/4/SS9S5        U R                  [        [        R                  S5        U R                  [        R                  " SSS5      S5        U R                  [        R                  " SSSS5      S 5        U R                  [        R                  " SSSS5      S
5        g )!N)Nr   imageFr!   )r!   r   )rQ   rs   )z	test {} ar   rs   rg   rt   )ztest {a b} cr   rs   rg   x)rs   )ztest a b)rx   r   T)rs   rg   rt   ru   r?   rM   )r   )z{test {a b c} d}z-x {2 3}vsapirs   rg   )rs   rg   rQ   r@   r   )rs   rg   )za brt   r   )r{   )rs   rg   r   )r}   r   )z
a b {{} 1}-opt xr@   )za b {{a b} {1 2}}r   from)rs   r   )rs   )rg   )
assertTruer   _format_elemcreater   
IndexErrorrC   
ValueErrorr   s    r   test_format_elemcreate,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 <	> 	//SLc#$I	K 	//sC.	0//sC3A c+,K	M
 	*c&<&<fE//sC	//sCH	//c3G	r   c                    SS jnSS jnU R                  [        R                  " / 5      S   S5        U R                  [        [        R                  S/5        [        R                  " S/SS9nU R                  U[        R                  " S/SS95        U R                  US   S	5        U R                  U" 5       U" 5       5        [        S
5       H?  nU R                  U" U5      U" U5      5        U R                  U" XD5      U" XD5      5        MA     U R                  [        [        R                  SS/5        U R                  [        [        R                  S/5        U R                  [        [        R                  SSS	S 004/5        g )Nr   c           
      b    [         R                  " S/ SQSSSSSS04/S	S
.4/04/S.4/XS9S   $ )Nrs   )r@   r?   rM   rg   childrenrt   ru   nicer{   )r@   r?   )r   	something)otherr   indentindent_sizer   )r   _format_layoutlistr   s     r   sample<InternalFunctionsTest.test_format_layoutlist.<locals>.sample   so    ))Y
/0v       9 :;< <r   c                    ^  S
U 4S jjnU" 5       < SU" U5      < SU" SU-  5      < SU" SU-  5      < SU" SU-  5      < SU" U5      < SU" 5       < S	3$ )Nc                    > SU T-   -  $ r6   r   )amountr   s    r   <lambda>WInternalFunctionsTest.test_format_layoutlist.<locals>.sample_expected.<locals>.<lambda>   s    cVf_&=r   za -other {1 2 3} -children {
zb -children {
r?   zc -something {1 2} -children {
rM   zd -nice opt
z}
})r   r   )r   r   spacess   `  r   sample_expectedEInternalFunctionsTest.test_format_layoutlist.<locals>.sample_expected   sP    =F  6+#61{?+VAO-D1{?+VK-@&(L	Mr   rQ   r   )rs   N)r   )rs   rQ   rs   rN   badformat)namer   r   r   )r   r?   )rC   r   r   r   AttributeErrorrA   r   )r   r   r   smallestrH   s        r   test_format_layoutlist,InternalFunctionsTest.test_format_layoutlist   sa   	<	M 	//3A6; 	.""ZL	2 ));-B""I;q9	;!c* 	?#45qAVAY(:;VA\?1+@A  	*c&<&<H	 	.#*@*@	 	*c&<&<zC;/01	3r   c           	         U R                  [        R                  " SS S S S.05      5        U R                  [        R                  " SSS 005      S5        SSS.nU R	                  [        R                  " SSU005      5        S	S
/0nU R	                  [        R                  " SSU005      5        U R                  [        [        R                  SSS/005        U R	                  [        R                  " SSSS/005      5        SS/ SQ00nU R                  [        R                  " U5      S5        US   S   R                  SS05        U R                  [        R                  " U5      S5        [        S5      [        S5      /US   S   S   S'   U R                  [        R                  " U5      S5        SSSSS/ SQ/00nU R                  [        R                  " U5      S5        g )Nr   )	configuremapelement createlayoutzttk::style layout name {
null
}TFr_   r   ry   rz   r   r   r   thing)r   r   )state1state2r%   zAttk::style element create thing image {name {state1 state2} val} r{      zHttk::style element create thing image {name {state1 state2} val} -opt 30rM   rU   rT   zLttk::style element create thing image {name {state1 state2} val} -opt {3 2m}pinr   EXPLORERBAR))pressed	!selectedrM   )activer   r?   )r   selected   )r   r      )r   rN   r   zttk::style element create pin vsapi EXPLORERBAR 3 {{pressed !selected} 3 {active !selected} 2 {pressed selected} 6 {active selected} 5 selected 4 {} 1} )	rh   r   _script_from_settingsrC   r   r   r   appendr   )r   
configdictmapdictr   r   s        r   test_script_from_settings/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	 )mQ )   	2259	r   c           	          U R                  [        R                  " [        SS5      S45      S/5        U R                  [        R                  " [	        S5      S[	        S5      /5      / SQ5        g )	Nrs   rg   r%   )rs   rg   r%   1r?   3m)r@   r?   r   )rC   r   _tclobj_to_pyr/   r   r   s    r   test_tclobj_to_py'InternalFunctionsTest.test_tclobj_to_py\  sa    }S#6>?	! 	z#:d3CDE	r   c                   ^  U 4S jn[        S [        S5       5       5      n[        U6 nU" USSU5        U" U[        S5      SU5        [        S [        S5       5       5      n[        U6 nU" USSU5        U" S[        S5      SS5        g )Nc                 \   > TR                  [        R                  " X45      X24-   /5        g r#   )rC   r   _list_from_statespec)sspecr|   	res_valuestatesr   s       r   test_it?InternalFunctionsTest.test_list_from_statespec.<locals>.test_itf  s.    S55 "(="8!9;r   c              3   ,   #    U  H
  nS U-  v   M     g7fzstate%dNr   .0rH   s     r   	<genexpr>AInternalFunctionsTest.test_list_from_statespec.<locals>.<genexpr>j  s     <8aIM8   r   r%   c              3   ,   #    U  H
  nS U-  v   M     g7fr   r   r   s     r   r   r   o  s     ;(Q9q=(r   r   r   )r   rA   r/   r   )r   r   states_even	statespec
states_odds   `    r   test_list_from_statespec.InternalFunctionsTest.test_list_from_statespece  s    	; <58<<!;/		5%5	:e,e[A;%(;;
!:.		5%4E!2E?Kr   c           	         [        5       nU R                  [        R                  " US5      5        U R	                  [        R                  " US5      S0 4/5        SnU R	                  [        R                  " X5      SSS04/5        U R	                  [        R                  " US5      SS	/ 04/5        S
nU R	                  [        R                  " X5      SSSSS0 4/S.4/S.4/5        U R                  [        [        R                  US5        U R                  [        [        R                  US5        U R                  [        [        R                  US5        g )Nr   )r   r   )r   rc   r|   ra   r|   )r   	-childrenr   r   r   )r   rc   niceoner   )otheroner   )childz	-otheropt
othervaluer   r   r   r   )otheroptr   )ra   r   )r   no_minus)r   r   r|   )r   r   )r   rh   r   _list_from_layouttuplerC   r   r   )r   tksample_ltupleltuples       r   test_list_from_layouttuple0InternalFunctionsTest.test_list_from_layouttuplev  s`   [ 	33B;< 	33B
Cb\N	 533BFx)*+	- 	33B*,J+,-	

 	33B?<r]O    	
 	*c&@&@" 	"*c&@&@")	+*c&@&@"&	(r   c                    S	S jn[        5       nXl        U R                  [        R                  " U0 S5      SS05        U R                  [        R                  " U0 S5      SS05        U R                  [        R                  " USS 0S5      S5        U R                  [        R                  " USS0S5      SS05        g )
Nc                     Uc  U $ Uc  gX4$ )Ntest valr   )resr{   r%   s      r   func4InternalFunctionsTest.test_val_or_dict.<locals>.func  s    {
{!:r   z-test:3r!   r^   )rR   rM   rM   zx:yr   )NN)r   callrC   r   _val_or_dict)r   r   r   s      r   test_val_or_dict&InternalFunctionsTest.test_val_or_dict  s    	 [))"b)< #	())"b,? !	& 	))"vtneD#	% 	))"vqk5A !	&r   c                 z    SSSS/ S4S4nU H+  u  p#U R                  [        R                  " U5      U5        M-     g )N)r   r   )09	   )rs   rs   )   áÚr  z[])NNone)rC   r   _convert_stringval)r   testsorigexpecteds       r   test_convert_stringval,InternalFunctionsTest.test_convert_stringval  sE    Iz+;b$Z
 $NDS33D98D $r   r   N)r   r   r   r   rp   r   r   r   r   r   r   r   r   r  r   r   r   r   r;   r;   )   s?    UNp%@P:z63r9vL"+(\&.Er   r;   c                   &    \ rS rSrS rS rS rSrg)TclObjsToPyTesti  c                     SS0nU R                  [        R                  " U5      SS05        [        US   5      US'   U R                  [        R                  " U5      SS05        g )Nr{   u   välúè)rC   r   tclobjs_to_pyr   r   adicts     r   test_unicodeTclObjsToPyTest.test_unicode  s^    
#**51E:3FG!%,/e**51E:3FGr   c                    S/ SQ0nU R                  [        R                  " U5      S/ SQ05        / SQUS'   U R                  [        R                  " U5      S/ SQ05        [        SS5      S4US'   U R                  [        R                  " U5      SS/05        U R                  [        R                  " SS	/05      SS	/05        g )
Nr{   rL   )r@   xmrM   rs   rg      válũè)rs   rg   r  r   zy z)rC   r   r  r/   r  s     r   test_multivalues TclObjsToPyTest.test_multivalues  s    %**51E<3HI#e**51E<3HI%c3/<e**51+,-	/ 	**C%>:5'N	r   c                 X    U R                  [        R                  " SS05      SS05        g )Ntextz	some text)rC   r   r  r   s    r   test_nosplitTclObjsToPyTest.test_nosplit  s*    **FK+@A[!	#r   r   N)r   r   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/   TestCaser;   r  r   mainr   r   r   <module>r#     s    &   J '    "F "XEH-- XEv#h'' #8 zMMO r   