o
    HXhB                     @   s   d dl mZ ed d dlZd dlmZ G dd dZG dd deZG d	d
 d
eZ	G dd dej
ZG dd dej
ZedkrHe  dS dS )    )import_helperZ_tkinterN)ttkc                   @   s   e Zd Zdd Zdd ZdS )	MockTkAppc                 C   s   t |tr|S |dS )N:)
isinstancetuplesplit)selfarg r   @/opt/python-3.10.19/usr/lib/python3.10/test/test_ttk_textonly.py	splitlist   s   

zMockTkApp.splitlistc                 C   s   dS )NTr   r	   r   r   r   wantobjects   s   zMockTkApp.wantobjectsN)__name__
__module____qualname__r   r   r   r   r   r   r   
   s    r   c                   @       e Zd ZdZdd Zdd ZdS )
MockTclObjtestc                 C   
   || _ d S Nval)r	   r   r   r   r   __init__      
zMockTclObj.__init__c                 C   s
   t | jS r   )strr   r   r   r   r   __str__   r   zMockTclObj.__str__Nr   r   r   typenamer   r   r   r   r   r   r          r   c                   @   r   )MockStateSpecZ	StateSpecc                 G   r   r   r   )r	   argsr   r   r   r   "   r   zMockStateSpec.__init__c                 C   s   d | jS N )joinr   r   r   r   r   r   %   s   zMockStateSpec.__str__Nr   r   r   r   r   r!      r    r!   c                   @   s\   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd Zdd ZdS )InternalFunctionsTestc              
      s   fdd}  ti  |tdg ddddd |tdd	id
di |t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d }| }|t|ddd!  || |td"d#id$d%i |td"d&id$d'i |td"d(id$d)i |td"d*id$d+i |td"d,id$d-i |td"d.id$d/i ttj|d0d1d2 } |t|d3  ttj|d4d1d2 } |t|d3    tj|t| d1 d S )5Nc                    sN   t dt| dD ]} || | | |d   q|r% d|  d S d S )Nr         zresult still got elements: %s)rangelenassertEqualpopZfail)Zfmt_optsresultir   r   r   check_against,   s
    z@InternalFunctionsTest.test_format_optdict.<locals>.check_againstZbluer(   r'         )ZfgZpaddingz1 2 3 4)z-fgz-paddingr   )r(   r'    r   -testz1 2 {} 0leftzas is)r(   r3   2mr   r1   r3   zabc defz"abc"z{}z	} -spam {)r   Ztest2Ztest3Ztest4Ztest5Ztest6Ztest7TZscriptz{1 -1 {} 2m 0}3z	{abc def}z{"abc"}z\{\}z\}\ -spam\ \{)r4   z-test2z-test3z-test4z-test5z-test6z-test7Fu   αβγ   á)u   -αβγu   -áoption)zone twothree-optionz{one two} three)zone	twor=   z{one	two} three)r3   Zonez{} one)z	one} {twor=   zone\}\ \{two three)z"one"twoz{"one"} two)z{one}r?   z\{one\} twor;   )ignorer'   r(   )r;   b)assertFalser   Z_format_optdictcopyr+   r*   listkeys)r	   r/   optsZ	orig_optsZamount_optsr   r   r   test_format_optdict+   s   

 z)InternalFunctionsTest.test_format_optdictc                 C   sp  dg di}t |}| t|tt| d  | |d | t j|ddd | t dg id d	d
gi}t |}| |d | t ddgid ddgi}| t |d ddgi}| tt j| ddgddfgi}| tt j| dddggi}| t |d d dddt fD ]}d|dfgi}| t |d qdd i}| tt j| d S )Na))rA   cr   )dZotherval)r3   Zsingler'   )-az{b c} val d otherval {} singleTr8   )rK   z {{b c} val d otherval {} single})z-2r3      üñíćódèr;   u   vãl)u   -üñíćódèu   á vãlopt)value)-optz{} value)r3   r3   hi)rP   z{ } hi)r(   r'   	valid valr(   2rR   rO   )rP   z1 valuer   Fr3   )	r   Z_format_mapdictr+   r*   rD   rE   assertRaises	TypeErrorset)r	   rF   r-   ZvalidinvalidZstatevalr   r   r   test_format_mapdict   s:   
 



z)InternalFunctionsTest.test_format_mapdictc                 C   s  |  td d | ttjd | tdddd | tddddd | tddddd	 | tjdddd
ddd | tjddddddgdd | ttjd | tddddd | tdddddd | tjddddd
ddd | tjddddddddgfddd | ttjd | tdddd | tddddd | tddddd  d S )!N)Nr   imageFr   )ztest r   )r3   rH   )z	test {} ar   rH   rA   rI   )ztest {a b} cr   rH   rA   x)rH   )ztest a b)rK   r\   T)rH   rA   rI   rJ   r'   r1   )r\   )z{test {a b c} d}z-x {2 3}ZvsapirH   rA   )za b r   )za b {a b} cr   )rN   )za b a b)rP   r\   r(   )z{a b {a b} {1 2}}z-opt xfrom)rH   r   )rH   )rA   )z{a}rA   )
assertTruer   Z_format_elemcreaterT   
IndexErrorr+   
ValueErrorr   r   r   r   test_format_elemcreate   sl   z,InternalFunctionsTest.test_format_elemcreatec                 C   s  ddd}ddd}|  tg d d | ttjdg tjd	gdd
}|  |tjdgdd
 |  |d d |  | |  tdD ]}|  |||| |  |||||| qF| ttjddg | ttjdg | ttjdddd iifg d S )Nr   r'   c              	   S   sD   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d S )NrH   )r(   r'   r1   rA   childrenrI   rJ   nicerN   )r(   r'   )rb   	something)otherrb   indentindent_sizer   )r   _format_layoutlistrf   r   r   r   sample   s   z<InternalFunctionsTest.test_format_layoutlist.<locals>.samplec                    sH   d fdd	}d| |||d| |d| |d| ||| f S )Nr   c                    s   d|    S r#   r   )amountrg   r   r   <lambda>   s    zWInternalFunctionsTest.test_format_layoutlist.<locals>.sample_expected.<locals>.<lambda>zi%sa -other {1 2 3} -children {
%sb -children {
%sc -something {1 2} -children {
%sd -nice opt
%s}
%s}
%s}r'   r1   )r   r   )rg   rh   spacesr   rl   r   sample_expected   s   
zEInternalFunctionsTest.test_format_layoutlist.<locals>.sample_expectedr3   r[   )rH   Nrl   )rH   r3   rH   r2   badformat)namerp   rr   rb   )r   r'   )r+   r   ri   rT   AttributeErrorr)   r`   )r	   rj   ro   Zsmallestr.   r   r   r   test_format_layoutlist   s0   





z,InternalFunctionsTest.test_format_layoutlistc              	   C   s0  |  tdd d d di | tddd iid ddd}| tdd|ii d	d
gi}| tdd|ii | ttjdddgii | tddddgii ddg dii}| t|d |d d ddi | t|d tdtdg|d d d d< | t|d d S )Nrr   )	configuremapelement createZlayoutzttk::style layout name {
null
}TFr:   ru   rL   rM   rv   rw   rY   thing)rY   rr   )Zstate1Zstate2r   zAttk::style element create thing image {name {state1 state2} val} rN      zHttk::style element create thing image {name {state1 state2} val} -opt 30r1   r7   r6   zLttk::style element create thing image {name {state1 state2} val} -opt {3 2m})	rB   r   Z_script_from_settingsr+   r^   rT   r_   appendr   )r	   Z
configdictZmapdictrY   r   r   r   test_script_from_settings  sJ   





z/InternalFunctionsTest.test_script_from_settingsc                 C   sF   |  ttdddfdg |  ttddtdgg d d S )	NrH   rA   r   )rH   rA   r   1r'   3m)r(   r'   r}   )r+   r   Z_tclobj_to_pyr!   r   r   r   r   r   test_tclobj_to_pyJ  s   z'InternalFunctionsTest.test_tclobj_to_pyc                    s    fdd}t dd tdD }t| }||dd| ||tdd| t dd tdD }t| }||dd| |d	tddd	 d S )
Nc                    s"     t| |f||f g d S r   )r+   r   Z_list_from_statespec)ZsspecrO   Z	res_valueZstatesr   r   r   test_itT  s
   
z?InternalFunctionsTest.test_list_from_statespec.<locals>.test_itc                 s       | ]}d | V  qdS zstate%dNr   .0r.   r   r   r   	<genexpr>X      zAInternalFunctionsTest.test_list_from_statespec.<locals>.<genexpr>   r   c                 s   r   r   r   r   r   r   r   r   ]  r      rZ   )r   r)   r!   r   )r	   r   Zstates_evenZ	statespecZ
states_oddr   r   r   test_list_from_statespecS  s   z.InternalFunctionsTest.test_list_from_statespecc              	   C   s   t  }| t|d | t|ddi fg d}| t||dddifg | t|ddd	g ifg d
}| t||dddddi fgdfgdfg | ttj|d | ttj|d | ttj|d d S )Nr   )rr   rr   )rr   r>   rO   r<   rO   )rd   	-childrenr   rd   rb   )rr   r>   niceoner   )otheroner   )childz	-otheropt
othervaluer   r   r   r   )Zotheroptrb   )r<   rb   )rr   no_minus)rr   r   rO   )rd   r   )r   rB   r   Z_list_from_layouttupler+   rT   r`   )r	   tkZsample_ltupleZltupler   r   r   test_list_from_layouttupled  s>   
	z0InternalFunctionsTest.test_list_from_layouttuplec                 C   s   d
dd}t  }||_| t|i dddi | t|i dddi | t|dd idd	 | t|ddidddi d S )Nc                 S   s    |d u r| S |d u rdS ||fS )Ntest valr   )resrN   r   r   r   r   func  s
   z4InternalFunctionsTest.test_val_or_dict.<locals>.funcz-test:3r   r9   )r4   r1   r1   zx:yr   )NN)r   callr+   r   Z_val_or_dict)r	   r   r   r   r   r   test_val_or_dict  s   
z&InternalFunctionsTest.test_val_or_dictc                 C   s8   ddddg dfdf}|D ]\}}|  t|| qd S )N)r   r   )Z09	   )rH   rH   )   áÚr   z[])NNone)r+   r   Z_convert_stringval)r	   ZtestsZorigZexpectedr   r   r   test_convert_stringval  s   z,InternalFunctionsTest.test_convert_stringvalN)r   r   r   rG   rX   ra   rt   r{   r~   r   r   r   r   r   r   r   r   r&   )   s    X(;9+	.r&   c                   @   s$   e Zd Zdd Zdd Zdd ZdS )TclObjsToPyTestc                 C   sH   ddi}|  t|ddi t|d |d< |  t|ddi d S )NrN   u   välúè)r+   r   tclobjs_to_pyr   r	   Zadictr   r   r   test_unicode  s   zTclObjsToPyTest.test_unicodec                 C   s   dg di}|  t|dg di g d|d< |  t|dg di tdddf|d< |  t|ddgi |  tdd	gidd	gi d S )
NrN   r0   )r(   Zxmr1   rH   rA      válũè)rH   rA   r   r\   zy z)r+   r   r   r!   r   r   r   r   test_multivalues  s   z TclObjsToPyTest.test_multivaluesc                 C   s   |  tddiddi d S )Ntextz	some text)r+   r   r   r   r   r   r   test_nosplit  s   zTclObjsToPyTest.test_nosplitN)r   r   r   r   r   r   r   r   r   r   r     s    r   __main__)Ztest.supportr   import_moduleZunittesttkinterr   r   objectr   r!   ZTestCaser&   r   r   mainr   r   r   r   <module>   s    


   