
    =e0M                         d dl Z d dlZd dlmZmZmZmZ d dlZ e	            Z
 G d de          Z G d d          Z G d d          Z G d	 d
          Zd Zd ZdS )    N)AbstractTkTest
tk_versionpixels_conv
tcl_obj_eqc                       e Zd ZeZdZdZed             Zd Z	de
j        fdZeddddZddZd	 Zd
 ZeddZd ZdddZd Zd ZdddZdddZd Zd Zd Zd Zd ZdS )AbstractWidgetTestNFc                     	 | j         S # t          $ r7 t          | j                            dd                    | _         | j         cY S w xY w)Ntkscaling)_scalingAttributeErrorfloatrootcall)selfs    0/usr/lib/python3.11/tkinter/test/widget_tests.pyr   zAbstractWidgetTest.scaling   sW    	!=  	! 	! 	!!$)..y"A"ABBDM=   	!s   	 >A
	A
c                     | j         s| j        rt          dk    r|S t          |t                    r(d                    t          | j        |                    S t          |          S )N       )	
_stringifywantobjectsr   
isinstancetuplejoinmap_strstr)r   values     r   r   zAbstractWidgetTest._str   sa     	4#3 	
f8L8LLeU## 	388C	5112225zz    c                 P     |||          rd S |                      |||           d S N)assertEqual)r   actualexpectedmsgeqs        r   assertEqual2zAbstractWidgetTest.assertEqual2    s9    2fh 	F3/////r!   )r&   convr(   c                   |||<   |t           u r|}|r ||          }| j        s| j        s9t          |t                    rt          j        |          }nt          |          }|t          }| 	                    ||         ||           | 	                    |
                    |          ||           |                    |          }|                     t          |          d           | 	                    |d         ||           d S )N)r(         )	_sentinelr   r   r   r   tkinter_joinr   r   r)   cget	configurer$   len)r   widgetnamer    r&   r*   r(   ts           r   
checkParamzAbstractWidgetTest.checkParam%   s   ty  H 	&tH~~H? 	)$"2 	)(E** )"=22x==:B&,R888&++d++X"===T""Q###!A$R00000r!   c                 p   ||         }||                     |          }|                     t          j                  5 }|||<   d d d            n# 1 swxY w Y   |(|                     t          |j                  |           |                     ||         |           |                     t          j                  5 }|                    ||i           d d d            n# 1 swxY w Y   |(|                     t          |j                  |           |                     ||         |           d S r#   )formatassertRaisesr/   TclErrorr$   r   	exceptionr2   )r   r4   r5   r    errmsgorigcms          r   checkInvalidParamz$AbstractWidgetTest.checkInvalidParam9   s   d|]]5))Fw/00 	!B F4L	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!S..777t,,,w/00 	,BdE]+++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	,S..777t,,,,,s#   AAAC%%C),C)c                 0    |D ]} | j         |||fi | d S r#   )r7   )r   r4   r5   valueskwargsr    s         r   checkParamszAbstractWidgetTest.checkParamsH   s<     	; 	;EDOFD%::6::::	; 	;r!   c                      | j         ||g|R i | |                     ||dd           |                     ||dd           |                     ||dd           d S )N zexpected integer but got ""r=   10pzexpected integer but got "10p"g	@zexpected integer but got "3.2"rD   r@   )r   r4   r5   rB   rC   s        r   checkIntegerParamz$AbstractWidgetTest.checkIntegerParamL   s    9999&999vtR4 	 	6 	6 	6vtU7 	 	9 	9 	9vtS7 	 	9 	9 	9 	9 	9r!   r*   c                    |D ]} | j         |||fd|i| |                     ||dd           |                     ||dd           d S )Nr*   rF   z)expected floating-point number but got ""rG   spamz-expected floating-point number but got "spam"r7   r@   )r   r4   r5   r*   rB   rC   r    s          r   checkFloatParamz"AbstractWidgetTest.checkFloatParamU   s     	F 	FEDOFD%EEdEfEEEEvtRB 	 	D 	D 	DvtVF 	 	H 	H 	H 	H 	Hr!   c                     dD ]}|                      |||d           dD ]}|                      |||d           |                     ||dd           |                     ||d	d
           d S )N)Fr   falsenooffr   )r&   )T   trueyesonrT   rF   z!expected boolean value but got ""rG   rM   z%expected boolean value but got "spam"rN   )r   r4   r5   r    s       r   checkBooleanParamz$AbstractWidgetTest.checkBooleanParam]   s    5 	= 	=EOOFD%!O<<<<3 	= 	=EOOFD%!O<<<<vtR: 	 	< 	< 	<vtV> 	 	@ 	@ 	@ 	@ 	@r!   )allow_emptyc                j     | j         ||ddddddddd	d
fi | |                     ||dd           d S )Nz#ff0000z#00ff00z#0000ffz#123456redgreenbluewhiteblackgreyrM   zunknown color name "spam"rG   rI   )r   r4   r5   rY   rC   s        r   checkColorParamz"AbstractWidgetTest.checkColorParamg   st    "Iy)'6	# 	# "	# 	# 	# 	vtV2 	 	4 	4 	4 	4 	4r!   c                      | j         ||ddddfi | |                     ||d           |                     ||dd           d S )	NarrowwatchcrossrF   nonerM   zbad cursor spec "spam"rG   )rD   r7   r@   )r   r4   r5   rC   s       r   checkCursorParamz#AbstractWidgetTest.checkCursorParamo   sm    w"NNvNNNf---vtV/ 	 	1 	1 	1 	1 	1r!   c                 z    d }|||<   |                      ||                    |                     ||d           d S )Nc                      d S r#    )argss    r   commandz5AbstractWidgetTest.checkCommandParam.<locals>.commandv   s    Dr!   rF   )
assertTruerD   )r   r4   r5   rl   s       r   checkCommandParamz$AbstractWidgetTest.checkCommandParamu   sN    	 	 	tt%%%r*****r!   rG   c                (    | j         ||g|R i | |dd|dd                    |d d                   t          |          dk    rdndd|d         }|                     ||dd	|z   
           d|z   }|                     ||d|
           d S )Nr   z "{}": must be z,    ,rF   z or 	ambiguousrG   badrM   )rD   r   r3   r@   )r   r4   r5   r=   rB   rC   errmsg2s          r   checkEnumParamz!AbstractWidgetTest.checkEnumParam|   s    9999&999>>DDIIfSbSk***v;;??CC222JJ	 G
 ""64*5*? # A A AW_FvtVFCCCCCr!   c                :   || j         }|D ]\}t          }|}t          |t                    r)|r'|t          urt	          |          | j        z  }t          } | j        |||f||d| ]|                     ||dd           |                     ||dd           d S )Nr&   r*   6xzbad screen distance "6x"rG   rM   zbad screen distance "spam")	_conv_pixelsr.   r   r   r   r   roundr7   r@   )	r   r4   r5   r*   rB   rC   r    r&   conv1s	            r   checkPixelsParamz#AbstractWidgetTest.checkPixelsParam   s    <$D 	2 	2E HE%%% " "U#--*511DL@H!EDOFD% 2(!&2 2*02 2 2 2vtT1 	 	3 	3 	3vtV3 	 	5 	5 	5 	5 	5r!   c           
          |                      ||dddddd           d}t          dk     rd }|                     ||d	|
           d S )NflatgrooveraisedridgesolidsunkenzHbad relief "spam": must be flat, groove, raised, ridge, solid, or sunkenr   rM   rG   )rD   r   r@   )r   r4   r5   r=   s       r   checkReliefParamz#AbstractWidgetTest.checkReliefParam   su    8Wgx	Q 	Q 	Q?FvtV 	 	 	 	 	 	r!   c                     t          j        | j        d          }|                     |||t                     |                     ||dd           d||<   d S )Nimage1)masterr5   rK   rM   zimage "spam" doesn't existrG   rF   )r/   
PhotoImager   r7   r   r@   )r   r4   r5   images       r   checkImageParamz"AbstractWidgetTest.checkImageParam   sf    "$)(CCCe#666vtV4 	 	6 	6 	6tr!   c                 B    |                      |||t                     d S )NrK   )r7   r   )r   r4   r5   vars       r   checkVariableParamz%AbstractWidgetTest.checkVariableParam   s"    c44444r!   c                 &   |                      |           |                     |t                     t          |          dk    r|                     d|           |D ]2}t          |t                    s|                     d|            d S 3d S )Nr-   zInvalid bounding box: )assertIsNotNoneassertIsInstancer   r3   failr   int)r   bboxitems      r   assertIsBoundingBoxz&AbstractWidgetTest.assertIsBoundingBox   s    T"""dE***t99>>IIIDD:;;; 	 	DdC(( 			>???	 	r!   c                    |                                  }|                                }|                     t          |          t          |                                                     |D ]
}||          t
          j        j        rwdddddd}t          |          }t          | j	                  }t          ||z
            D ];}||v r||         |v r
||         |v st          | j        j        d|d           :d S d S )	Nborderwidth
background
foregroundinvalidcommandvalidatecommand)bdbgfginvcmdvcmdz.OPTIONS doesn't contain "")createkeysr$   sortedr2   testsupportverbosesetOPTIONSprint	__class____name__)r   r4   r   kaliasesr&   s         r   	test_keyszAbstractWidgetTest.test_keys   s,   {{}}vf.>.>.@.@'A'ABBB 	 	A1III< 	8#""*) G t99D4<((HD8O,, 8 8W
d**
h..>222AAA7 8 8 8	8 	88 8r!   r#   )r   
__module____qualname__r{   rz   _conv_pad_pixelsr   propertyr   r   object__eq__r)   r.   r7   r@   rD   rJ   r   rO   rX   ra   rg   rn   rv   r}   r   r   r   r   r   rj   r!   r   r   r      s       LJ! ! X!   26&- 0 0 0 0
 ;D$1 1 1 1 1(- - - -; ; ;9 9 9 ;@ H H H H H@ @ @ <@ 4 4 4 4 41 1 1+ + + <@ D D D D D #5 5 5 5 5$    5 5 5  8 8 8 8 8r!   r   c                   J   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 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 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& Z(d' Z)d( Z*d) Z+d* Z,d+ Z-d, Z.d- Z/d. Z0d/ Z1d0 Z2d1 Z3d2 Z4d3 Z5d4 Z6d5 Z7d6S )7StandardOptionsTests)*activebackgroundactiveborderwidthactiveforegroundanchorr   bitmapr   compoundcursordisabledforegroundexportselectionfontr   highlightbackgroundhighlightcolorhighlightthicknessr   insertbackgroundinsertborderwidthinsertofftimeinsertontimeinsertwidthjumpjustifyorientpadxpadyreliefrepeatdelayrepeatintervalselectbackgroundselectborderwidthselectforegroundsetgrid	takefocustexttextvariabletroughcolor	underline
wraplengthxscrollcommandyscrollcommandc                 Z    |                                  }|                     |d           d S )Nr   r   ra   r   r4   s     r   test_configure_activebackgroundz4StandardOptionsTests.test_configure_activebackground   ,    V%788888r!   c           
      f    |                                  }|                     |ddddddd           d S )Nr   r   ?g333333@r   rH   r   r}   r   s     r    test_configure_activeborderwidthz5StandardOptionsTests.test_configure_activeborderwidth   C    f&9c1b%	9 	9 	9 	9 	9r!   c                 Z    |                                  }|                     |d           d S )Nr   r   r   s     r   test_configure_activeforegroundz4StandardOptionsTests.test_configure_activeforeground   r   r!   c                 l    |                                  }|                     |ddddddddd	d
           d S )Nr   nneesesswwnwcenterr   rv   r   s     r   test_configure_anchorz*StandardOptionsTests.test_configure_anchor   sM    FHT3c4dH	F 	F 	F 	F 	Fr!   c                     |                                  }|                     |d           d| j        v r|                     |d           d S d S )Nr   r   r   ra   r   r   s     r   test_configure_backgroundz.StandardOptionsTests.test_configure_background   V    V\2224<  .....  r!   c                    |                                  }|                     |dd           |                     |dd           t          j                            dd          }|                     |dd|z              d| j        j                            d	d
          v rd| j                                        v s| 	                    |ddd           d S d S )Nr   	questheadgray50z
python.xbm
imghdrdata)subdir@aquar
   windowingsystemAppKitrM   zbitmap "spam" not definedrG   )
r   r7   r   r   findfiler   r
   r   winfo_serverr@   )r   r4   filenames      r   test_configure_bitmapz*StandardOptionsTests.test_configure_bitmap   s    +666(333<((l(KK#.999 $),++D2CDDDDDI224444""68V6 # 8 8 8 8 8 54r!   c           
          |                                  }|                     |ddddddd           d| j        v r|                     |ddddddd           d S d S )	Nr   r   r   @r   r   rH   r   )r   r}   r   r   s     r   test_configure_borderwidthz/StandardOptionsTests.test_configure_borderwidth  su    fmc1b%	9 	9 	94<!!&$3QEJJJJJ  r!   c           
      f    |                                  }|                     |ddddddd           d S )Nr   bottomr   leftrf   righttopr   r   s     r   test_configure_compoundz,StandardOptionsTests.test_configure_compound  sG    FJ(FFGU	D 	D 	D 	D 	Dr!   c                 Z    |                                  }|                     |d           d S )Nr   )r   rg   r   s     r   test_configure_cursorz*StandardOptionsTests.test_configure_cursor  +    fh/////r!   c                 Z    |                                  }|                     |d           d S )Nr   r   r   s     r   !test_configure_disabledforegroundz6StandardOptionsTests.test_configure_disabledforeground  s,    V%9:::::r!   c                 Z    |                                  }|                     |d           d S )Nr   r   rX   r   s     r   test_configure_exportselectionz3StandardOptionsTests.test_configure_exportselection  s,    v'899999r!   c                     |                                  }|                     |dd           |                     |ddd           d S )Nr   z3-Adobe-Helvetica-Medium-R-Normal--*-120-*-*-*-*-*-*rF   zfont "" doesn't existrG   )r   r7   r@   r   s     r   test_configure_fontz(StandardOptionsTests.test_configure_font  sd    M	O 	O 	Ovvr&> 	 	@ 	@ 	@ 	@ 	@r!   c                     |                                  }|                     |d           d| j        v r|                     |d           d S d S )Nr   r   r   r   s     r   test_configure_foregroundz.StandardOptionsTests.test_configure_foreground&  r   r!   c                 Z    |                                  }|                     |d           d S )Nr   r   r   s     r   "test_configure_highlightbackgroundz7StandardOptionsTests.test_configure_highlightbackground,  s,    V%:;;;;;r!   c                 Z    |                                  }|                     |d           d S )Nr   r   r   s     r   test_configure_highlightcolorz2StandardOptionsTests.test_configure_highlightcolor0  s,    V%566666r!   c           	          |                                  }|                     |dddddd           |                     |ddd| j                   d S )	Nr   r   r   r
  r   rH   r   rx   )r   r}   r7   rz   r   s     r   !test_configure_highlightthicknessz6StandardOptionsTests.test_configure_highlightthickness4  sk    f&:c1e	5 	5 	5 4b1!. 	 	0 	0 	0 	0 	0r!   c                 Z    |                                  }|                     |d           d S )Nr   r   r   r   s     r   test_configure_imagez)StandardOptionsTests.test_configure_image;  s+    VW-----r!   c                 Z    |                                  }|                     |d           d S )Nr   r   r   s     r   test_configure_insertbackgroundz4StandardOptionsTests.test_configure_insertbackground?  r   r!   c           
      f    |                                  }|                     |ddddddd           d S )Nr   r   r   r
  r   r   rH   r   r   s     r    test_configure_insertborderwidthz5StandardOptionsTests.test_configure_insertborderwidthC  r   r!   c                 \    |                                  }|                     |dd           d S )Nr   d   r   rJ   r   s     r   test_configure_insertofftimez1StandardOptionsTests.test_configure_insertofftimeH  s-    v<<<<<r!   c                 \    |                                  }|                     |dd           d S )Nr   r,  r-  r   s     r   test_configure_insertontimez0StandardOptionsTests.test_configure_insertontimeL  s-    v~s;;;;;r!   c                 b    |                                  }|                     |ddddd           d S )Nr   r   r
  r   rH   r   r   s     r   test_configure_insertwidthz/StandardOptionsTests.test_configure_insertwidthP  s3    fmS#r5IIIIIr!   c                 Z    |                                  }|                     |d           d S )Nr   r  r   s     r   test_configure_jumpz(StandardOptionsTests.test_configure_jumpT  s+    vv.....r!   c                     |                                  }|                     |ddddd           |                     |ddd           d S )	Nr   r  r  r   z6bad justification "{}": must be left, right, or centerrG   rF   z:ambiguous justification "": must be left, right, or center)r   rv   r@   r   s     r   test_configure_justifyz+StandardOptionsTests.test_configure_justifyX  so    FIvw0 	 	1 	1 	1 	vy"0 	 	1 	1 	1 	1 	1r!   c                     |                                  }|                     t          |d                   | j                   |                     |ddd           d S )Nr   
horizontalvertical)r   r$   r   default_orientrv   r   s     r   test_configure_orientz*StandardOptionsTests.test_configure_orienta  sU    VH-..0CDDDFHlJGGGGGr!   c           
      r    |                                  }|                     |dddddd| j                   d S )Nr      皙@ffffff@r   12mrK   r   r}   r   r   s     r   test_configure_padxz(StandardOptionsTests.test_configure_padxf  J    ffac2u#'#8 	 	: 	: 	: 	: 	:r!   c           
      r    |                                  }|                     |dddddd| j                   d S )Nr   r=  r>  r?  r   r@  rK   rA  r   s     r   test_configure_padyz(StandardOptionsTests.test_configure_padyk  rC  r!   c                 Z    |                                  }|                     |d           d S )Nr   r   r   r   s     r   test_configure_reliefz*StandardOptionsTests.test_configure_reliefp  r  r!   c                 ^    |                                  }|                     |ddd           d S )Nr     r-  r   s     r   test_configure_repeatdelayz/StandardOptionsTests.test_configure_repeatdelayt  s/    v}dC@@@@@r!   c                 ^    |                                  }|                     |ddd           d S )Nr   rJ  rK  r-  r   s     r   test_configure_repeatintervalz2StandardOptionsTests.test_configure_repeatintervalx  s0    v'7sCCCCCr!   c                 Z    |                                  }|                     |d           d S )Nr   r   r   s     r   test_configure_selectbackgroundz4StandardOptionsTests.test_configure_selectbackground|  r   r!   c                 b    |                                  }|                     |ddddd           d S )Nr   r   r
  r   rH   r   r   s     r    test_configure_selectborderwidthz5StandardOptionsTests.test_configure_selectborderwidth  s4    f&93ROOOOOr!   c                 Z    |                                  }|                     |d           d S )Nr   r   r   s     r   test_configure_selectforegroundz4StandardOptionsTests.test_configure_selectforeground  r   r!   c                 Z    |                                  }|                     |d           d S )Nr   r  r   s     r   test_configure_setgridz+StandardOptionsTests.test_configure_setgrid  +    vy11111r!   c                 `    |                                  }|                     |dddd           d S )Nstateactivedisablednormalr   r   s     r   test_configure_statez)StandardOptionsTests.test_configure_state  s1    FGXz8LLLLLr!   c                 `    |                                  }|                     |dddd           d S )Nr   01rF   r   rD   r   s     r   test_configure_takefocusz-StandardOptionsTests.test_configure_takefocus  s1    c3;;;;;r!   c                 ^    |                                  }|                     |ddd           d S )Nr   rF   z
any stringra  r   s     r   test_configure_textz(StandardOptionsTests.test_configure_text  s/    \:::::r!   c                     |                                  }t          j        | j                  }|                     |d|           d S )Nr   )r   r/   	StringVarr   r   r   r4   r   s      r   test_configure_textvariablez0StandardOptionsTests.test_configure_textvariable  s?    	**<<<<<r!   c                 Z    |                                  }|                     |d           d S )Nr   r   r   s     r   test_configure_troughcolorz/StandardOptionsTests.test_configure_troughcolor  +    V]33333r!   c                 `    |                                  }|                     |dddd           d S )Nr   r   rT   
   r-  r   s     r   test_configure_underlinez-StandardOptionsTests.test_configure_underline  s1    v{Aq"=====r!   c                 \    |                                  }|                     |dd           d S )Nr   r,  r   r   s     r   test_configure_wraplengthz.StandardOptionsTests.test_configure_wraplength  s-    flC88888r!   c                 Z    |                                  }|                     |d           d S )Nr   r   rn   r   s     r   test_configure_xscrollcommandz2StandardOptionsTests.test_configure_xscrollcommand  ,    v'788888r!   c                 Z    |                                  }|                     |d           d S )Nr   rr  r   s     r   test_configure_yscrollcommandz2StandardOptionsTests.test_configure_yscrollcommand  rt  r!   c                 Z    |                                  }|                     |d           d S )Nrl   rr  r   s     r   test_configure_commandz+StandardOptionsTests.test_configure_command  rW  r!   c                 Z    |                                  }|                     |d           d S )Nindicatoronr  r   s     r   test_configure_indicatoronz/StandardOptionsTests.test_configure_indicatoron  s+    v}55555r!   c                 Z    |                                  }|                     |d           d S )N	offreliefrG  r   s     r   test_configure_offreliefz-StandardOptionsTests.test_configure_offrelief  s+    fk22222r!   c                 Z    |                                  }|                     |d           d S )N
overreliefrG  r   s     r   test_configure_overreliefz.StandardOptionsTests.test_configure_overrelief  s+    fl33333r!   c                 Z    |                                  }|                     |d           d S )Nselectcolorr   r   s     r   test_configure_selectcolorz/StandardOptionsTests.test_configure_selectcolor  rk  r!   c                 Z    |                                  }|                     |d           d S )Nselectimager%  r   s     r   test_configure_selectimagez/StandardOptionsTests.test_configure_selectimage  rk  r!   c                 Z    |                                  }|                     |d           d S )Ntristateimager%  r   s     r   test_configure_tristateimagez1StandardOptionsTests.test_configure_tristateimage  s+    V_55555r!   c                 \    |                                  }|                     |dd           d S )Ntristatevalue
unknowable)r   r7   r   s     r   test_configure_tristatevaluez1StandardOptionsTests.test_configure_tristatevalue  s+    >>>>>r!   c                     |                                  }t          j        | j                  }|                     |d|           d S )Nvariable)r   r/   	DoubleVarr   r   rg  s      r   test_configure_variablez,StandardOptionsTests.test_configure_variable  s?    	**
C88888r!   N)8r   r   r   STANDARD_OPTIONSr   r   r   r   r   r  r  r  r  r  r  r  r  r  r!  r#  r&  r(  r*  r.  r0  r2  r4  r6  r;  rB  rE  rH  rL  rN  rP  rR  rT  rV  r]  rb  rd  rh  rj  rn  rp  rs  rv  rx  r{  r~  r  r  r  r  r  r  rj   r!   r   r   r      sF       9 9 99 9 9
9 9 9F F F
/ / /8 8 8K K KD D D
0 0 0; ; ;: : :@ @ @/ / /< < <7 7 70 0 0. . .9 9 99 9 9
= = =< < <J J J/ / /1 1 1H H H
: : :
: : :
0 0 0A A AD D D9 9 9P P P9 9 92 2 2M M M< < <; ; ;= = =
4 4 4> > >9 9 99 9 99 9 92 2 26 6 63 3 34 4 44 4 44 4 46 6 6? ? ?9 9 9 9 9r!   r   c                       e Zd Zd Zd ZdS )IntegerSizeTestsc                 `    |                                  }|                     |dddd           d S )Nheightr,  r   r-  r   s     r   test_configure_heightz&IntegerSizeTests.test_configure_height  s1    vxdA>>>>>r!   c                 `    |                                  }|                     |dddd           d S )Nwidth  nr   r-  r   s     r   test_configure_widthz%IntegerSizeTests.test_configure_width  s1    vwT1=====r!   Nr   r   r   r  r  rj   r!   r   r  r    s2        ? ? ?> > > > >r!   r  c                       e Zd Zd Zd ZdS )PixelSizeTestsc           
      f    |                                  }|                     |ddddddd           d S )Nr  r,  gLY@gfffffY@r  r   3cr   r   s     r   r  z$PixelSizeTests.test_configure_height  s7    fhUE4DQQQQQr!   c           
      f    |                                  }|                     |ddddddd           d S )Nr  r  gfffff6y@gIy@r  r   5ir   r   s     r   r  z#PixelSizeTests.test_configure_width  s7    fgsE5$4PPPPPr!   Nr  rj   r!   r   r  r    s:        R R RQ Q Q Q Qr!   r  c                        fd}|S )Nc           
            j         D ]l}d|z   }t           |          sUD ]3}t          ||          r!t           |t          ||                      n 4|f fd	}||_        t           ||           m S )Ntest_configure_c                 p    |                                  }||          t          d|dj                  )NzOption "z" is not tested in )r   AssertionErrorr   )r   optionr4   clss      r   r   z5add_standard_options.<locals>.decorator.<locals>.test  sC    !%v,n.4ffcll.D E E Er!   )r   hasattrsetattrgetattrr   )r  r  
methodnamesource_classr   source_classess   `    r   	decoratorz'add_standard_options.<locals>.decorator  s    k 	3 	3F*V3J3
++ 3$2 3 3L|Z88 Z 'j A AC C C
 +1 E E E E E E
 %/DMCT222
r!   rj   )r  r  s   ` r   add_standard_optionsr    s$        $ r!   c                      t           j        j        r;t          j                    } t          d|                     dd          d           d S d S )Nzpatchlevel =info
patchlevelT)flush)r   r   r   r/   Tclr   r   )tcls    r   setUpModuler    sP    | Jkmmnchhv|<<DIIIIIIJ Jr!   )unittestr/   tkinter.test.supportr   r   r   r   test.supportr   r   r.   r   r   r  r  r  r  rj   r!   r   <module>r     sW    ; ; ; ; ; ; ; ; ; ; ; ;     FHH	D8 D8 D8 D8 D8 D8 D8 D8NC9 C9 C9 C9 C9 C9 C9 C9L> > > > > > > >Q Q Q Q Q Q Q Q  0J J J J Jr!   