o
    gB                     @   s   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e	fZ
edkrGd dlmZ ee
  dS dS )    N)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
   Z/Users/admin/.pyenv/versions/3.10.0/lib/python3.10/tkinter/test/test_ttk/test_functions.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'   r2   2mr   r0   r2   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\ \{)r3   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)r2   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))r@   cr   )dZotherval)r2   Zsingler&   )-az{b c} val d otherval {} singleTr7   )rJ   z {{b c} val d otherval {} single})z-2r2      üñíćódèr:   u   vãl)u   -üñíćódèu   á vãlopt)value)-optz{} value)r2   r2   hi)rO   z{ } hi)r'   r&   	valid valr'   2rQ   rN   )rO   z1 valuer   Fr2   )	r   Z_format_mapdictr*   r)   rC   rD   assertRaises	TypeErrorset)r   rE   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
   )r2   rG   )z	test {} ar
   rG   r@   rH   )ztest {a b} cr
   rG   r@   x)rG   )ztest a b)rJ   r[   T)rG   r@   rH   rI   r&   r0   )r[   )z{test {a b c} d}z-x {2 3}ZvsapirG   r@   )za b r
   )za b {a b} cr
   )rM   )za b a b)rO   r[   r'   )z{a b {a b} {1 2}}z-opt xfrom)rG   r
   )rG   )r@   )z{a}r@   )
assertTruer   Z_format_elemcreaterS   
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 )NrG   )r'   r&   r0   r@   childrenrH   rI   nicerM   )r'   r&   )ra   	something)otherra   indentindent_sizer   )r   _format_layoutlistre   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
   )Zamountrf   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&   r0   )r   r
   )rf   rg   spacesr
   rj   r   sample_expected   s   
zEInternalFunctionsTest.test_format_layoutlist.<locals>.sample_expectedr2   rZ   )rG   Nrj   )rG   r2   rG   r1   badformat)namern   rp   ra   )r   r&   )r*   r   rh   rS   AttributeErrorr(   r_   )r   ri   rm   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 )Nrp   )	configuremapelement createZlayoutzttk::style layout name {
null
}TFr9   rs   rK   rL   rt   ru   rX   thing)rX   rp   )Zstate1Zstate2r   zAttk::style element create thing image {name {state1 state2} val} rM      zHttk::style element create thing image {name {state1 state2} val} -opt 30r0   r6   r5   zLttk::style element create thing image {name {state1 state2} val} -opt {3 2m})	rA   r   Z_script_from_settingsr*   r]   rS   r^   appendr   )r   Z
configdictZmapdictrX   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 )	NrG   r@   r   )rG   r@   r   1r&   3m)r'   r&   r{   )r*   r   Z_tclobj_to_pyr    r   r   r
   r
   r   test_tclobj_to_pyE  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sspecrN   Z	res_valueZstatesr   r
   r   test_itO  s
   
z?InternalFunctionsTest.test_list_from_statespec.<locals>.test_itc                 s       | ]}d | V  qdS zstate%dNr
   .0r-   r
   r
   r   	<genexpr>S      zAInternalFunctionsTest.test_list_from_statespec.<locals>.<genexpr>   r   c                 s   r~   r   r
   r   r
   r
   r   r   X  r      rY   )r   r(   r    r   )r   r}   Zstates_evenZ	statespecZ
states_oddr
   r   r   test_list_from_statespecN  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
   )rp   rp   )rp   r=   rN   r;   rN   )rc   	-childrenr
   rc   ra   )rp   r=   niceoner   )otheroner   )childz	-otheropt
othervaluer   r   r   r   )Zotheroptra   )r;   ra   )rp   no_minus)rp   r   rN   )rc   r   )r   rA   r   Z_list_from_layouttupler*   rS   r_   )r   tkZsample_ltupleZltupler
   r
   r   test_list_from_layouttuple_  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
   )resrM   r   r
   r
   r   func  s
   z4InternalFunctionsTest.test_val_or_dict.<locals>.funcz-test:3r   r8   )r3   r0   r0   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	   )rG   rG   )   áÚ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   rF   rW   r`   rr   ry   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 )NrM   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 )
NrM   r/   )r'   Zxmr0   rG   r@      válũè)rG   r@   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__)run_unittest)Zunittesttkinterr   r   objectr   r    ZTestCaser%   r   Ztests_noguir   Ztest.supportr   r
   r
   r
   r   <module>   s   

   