a 4êdgÈÉã@sddlZddlZddlmZddlZddlmZddlmZmZm Z m Z m Z ddl m Z mZmZmZmZmZmZmZedƒdd„ZGd d „d eeƒZe eƒGd d „d eejƒƒZe eƒGd d„deejƒƒZe eƒGdd„deejƒƒZGdd„deeƒZe eƒGdd„deejƒƒZe eƒGdd„deejƒƒZe eƒGdd„deejƒƒZe eƒGdd„deejƒƒZe eƒGdd„deejƒƒZ Gdd„de ejƒZ!e eeƒGdd „d eejƒƒZ"e eƒGd!d"„d"e"ejƒƒZ#e eƒGd#d$„d$eejƒƒZ$e eeƒGd%d&„d&eejƒƒZ%e eeƒGd'd(„d(eejƒƒZ&e eeƒGd)d*„d*eejƒƒZ'e eeƒGd+d,„d,eejƒƒZ(e eƒGd-d.„d.eejƒƒZ)e eƒGd/d0„d0eejƒƒZ*e eeƒGd1d2„d2eejƒƒZ+Gd3d4„d4e ejƒZ,ee%ee"eeee&e e*e+e!e)ee'e(e#e$ee,fZ-e.d5kre /¡dS)6éN)ÚTclError)Úrequires)Ú tcl_versionÚ requires_tclÚget_tk_patchlevelÚ widget_eqÚAbstractDefaultRootTest)Úadd_standard_optionsÚnoconvÚ pixels_roundÚAbstractWidgetTestÚStandardOptionsTestsÚIntegerSizeTestsÚPixelSizeTestsÚ setUpModuleZguicCs tt|ƒƒS©N)ÚfloatÚround©Úx©rúB/usr/local/lib/python3.9/tkinter/test/test_tkinter/test_widgets.pyÚ float_roundsrc@s0eZdZeZdd„Zdd„Zdd„Zdd„Zd S) ÚAbstractToplevelTestcCsR| ¡}| |d|jj ¡¡|j|dddd|jdd}| |dd¡dS)NÚclassZFooz2can't modify -class option after widget is created©Úerrmsg)Úclass_)ÚcreateÚ assertEqualÚ __class__Ú__name__ÚtitleÚcheckInvalidParam©ÚselfÚwidgetÚwidget2rrrÚtest_configure_classs  ÿ ÿ z)AbstractToplevelTest.test_configure_classcCsJ| ¡}| |dd¡|j|dddd|jdd}| |dd¡dS)NÚcolormapÚÚnewz5can't modify -colormap option after widget is createdr)r)©rrr#r$rrrÚtest_configure_colormap"s ÿ z,AbstractToplevelTest.test_configure_colormapcCs^| ¡}| |d|jrdnd¡|j|dddd|jdd}| |d|jrTdnd ¡dS) NÚ containerrÚ0éz6can't modify -container option after widget is createdrT©r.Ú1)rrÚ wantobjectsr#r$rrrÚtest_configure_container*s ÿ z-AbstractToplevelTest.test_configure_containercCsJ| ¡}| |dd¡|j|dddd|jdd}| |dd¡dS)NÚvisualr*Údefaultz3can't modify -visual option after widget is createdr)r5r,r$rrrÚtest_configure_visual2s ÿ z*AbstractToplevelTest.test_configure_visualN) r!Ú __module__Ú __qualname__r Ú_conv_pad_pixelsr(r-r4r7rrrrrs  rc@s0eZdZdZdd„Zdd„Zdd„Zdd „Zd S) Ú ToplevelTest)Ú backgroundÚ borderwidthrr)r.ÚcursorÚheightÚhighlightbackgroundÚhighlightcolorÚhighlightthicknessÚmenuÚpadxÚpadyÚreliefÚscreenÚ takefocusÚuser5ÚwidthcKstj|jfi|¤ŽSr)ÚtkinterZToplevelÚroot©r%ÚkwargsrrrrEszToplevelTest.createcCs8| ¡}t |j¡}|j|d|td| |dd¡dS)NrC©Úeqr*)rrKÚMenurLÚ checkParamr©r%r&rCrrrÚtest_configure_menuHs z ToplevelTest.test_configure_menucCsv| ¡}| |dd¡ztjd}WntyB| d¡Yn0|j|d|dd|j|d}| |d|¡dS)NrGr*ZDISPLAYzNo $DISPLAY set.z3can't modify -screen option after widget is createdr)rG)rrÚosÚenvironÚKeyErrorZskipTestr#)r%r&Zdisplayr'rrrÚtest_configure_screenNs  ÿ z"ToplevelTest.test_configure_screencCs|| ¡}| |dd¡|jdd}t| ¡ƒ}|j|d,|j|d}| |d|¡Wdƒn1sn0YdS)NrIr*Tr1)Úwid)rI)rrÚhexZwinfo_idZsubTest)r%r&ÚparentrYr'rrrÚtest_configure_useZs   zToplevelTest.test_configure_useN)r!r8r9ÚOPTIONSrrTrXr\rrrrr;;s  r;c@seZdZdZdd„ZdS)Ú FrameTest)r<r=rr)r.r>r?r@rArBrDrErFrHr5rJcKstj|jfi|¤ŽSr)rKÚFramerLrMrrrrmszFrameTest.createN©r!r8r9r]rrrrrr^dsr^c@s(eZdZdZdd„Zdd„Zdd„ZdS) ÚLabelFrameTest)r<r=rr)r.r>ÚfontÚ foregroundr?r@rArBÚ labelanchorÚ labelwidgetrDrErFrHÚtextr5rJcKstj|jfi|¤ŽSr)rKZ LabelFramerLrMrrrr|szLabelFrameTest.createcCs>| ¡}| |ddddddddd d d d d ¡| |dd¡dS)NrdÚeÚenÚesÚnÚneÚnwÚsÚseÚswÚwZwnÚwsÚcenter)rÚcheckEnumParamr#©r%r&rrrÚtest_configure_labelanchors   þz)LabelFrameTest.test_configure_labelanchorcCs8| ¡}tj|jddd}|j|d|dd| ¡dS)NZMuppÚfoo)rfÚnamerez.foo©Úexpected)rrKÚLabelrLrRÚdestroy)r%r&ÚlabelrrrÚtest_configure_labelwidget†sz)LabelFrameTest.test_configure_labelwidgetN)r!r8r9r]rrur}rrrrraqs rac@seZdZeZdd„ZdS)ÚAbstractLabelTestc Cs$| ¡}| |ddddddd¡dS)NrBrçÍÌÌÌÌÌô?çÍÌÌÌÌÌ@ééþÿÿÿÚ10p©rÚcheckPixelsParamrtrrrÚ!test_configure_highlightthicknesss ÿz3AbstractLabelTest.test_configure_highlightthicknessN)r!r8r9r Ú _conv_pixelsr†rrrrr~sr~c@seZdZdZdd„ZdS)Ú LabelTest)ÚactivebackgroundÚactiveforegroundÚanchorr<Úbitmapr=Úcompoundr>Údisabledforegroundrbrcr?r@rArBÚimageÚjustifyrDrErFÚstaterHrfÚ textvariableÚ underlinerJÚ wraplengthcKstj|jfi|¤ŽSr)rKrzrLrMrrrr¢szLabelTest.createNr`rrrrrˆ–s rˆc@s eZdZdZdd„Zdd„ZdS)Ú ButtonTest) r‰rŠr‹r<rŒr=Úcommandrr>r6rŽrbrcr?r@rArBrrÚ overreliefrDrErFÚ repeatdelayÚrepeatintervalr‘rHrfr’r“rJr”cKstj|jfi|¤ŽSr)rKÚButtonrLrMrrrr³szButtonTest.createcCs| ¡}| |dddd¡dS)Nr6ZactiveÚdisabledÚnormal©rrsrtrrrÚtest_configure_default¶sz!ButtonTest.test_configure_defaultN)r!r8r9r]rržrrrrr•¦s r•c@s(eZdZdZdd„Zdd„Zdd„ZdS) ÚCheckbuttonTest)&r‰rŠr‹r<rŒr=r–rr>rŽrbrcr?r@rArBrÚ indicatoronrÚ offreliefÚoffvalueÚonvaluer—rDrErFÚ selectcolorÚ selectimager‘rHrfr’Ú tristateimageÚ tristatevaluer“ÚvariablerJr”cKstj|jfi|¤ŽSr)rKZ CheckbuttonrLrMrrrrËszCheckbuttonTest.createcCs | ¡}| |ddddd¡dS)Nr¢r0çffffff@r*ú any string©rÚ checkParamsrtrrrÚtest_configure_offvalueÏsz'CheckbuttonTest.test_configure_offvaluecCs | ¡}| |ddddd¡dS)Nr£r0r©r*rªr«rtrrrÚtest_configure_onvalueÓsz&CheckbuttonTest.test_configure_onvalueN)r!r8r9r]rr­r®rrrrrŸ»srŸc@s eZdZdZdd„Zdd„ZdS)ÚRadiobuttonTest)%r‰rŠr‹r<rŒr=r–rr>rŽrbrcr?r@rArBrr rr¡r—rDrErFr¤r¥r‘rHrfr’r¦r§r“Úvaluer¨rJr”cKstj|jfi|¤ŽSr)rKZ RadiobuttonrLrMrrrrçszRadiobuttonTest.createcCs | ¡}| |ddddd¡dS)Nr°r0r©r*rªr«rtrrrÚtest_configure_valueêsz$RadiobuttonTest.test_configure_valueN)r!r8r9r]rr±rrrrr¯Øs r¯c@s^eZdZdZeeƒZdd„Zdd„Zdd„Z e j Z dd „Z d d „Z d d „Zdd„Zdd„ZdS)ÚMenubuttonTest)r‰rŠr‹r<rŒr=rr>Ú directionrŽrbrcr?r@rArBrr rrCrDrErFr‘rHrfr’r“rJr”cKstj|jfi|¤ŽSr)rKZ MenubuttonrLrMrrrrþszMenubuttonTest.createc Cs"| ¡}| |dddddd¡dS)Nr³ZaboveZbelowÚflushÚleftÚrightrrtrrrÚtest_configure_directions ÿz'MenubuttonTest.test_configure_directioncCs"| ¡}|j|ddddtddS)Nr?édéœÿÿÿr©Úconv©rÚcheckIntegerParamÚstrrtrrrÚtest_configure_heightsz$MenubuttonTest.test_configure_heightcCsÔ| ¡}tj|jdd}|j|d|tdd}| tj¡}d|d<Wdƒn1sX0Y|dur|| t|j ƒ|¡| tj¡}|  ddi¡Wdƒn1s¬0Y|durÐ| t|j ƒ|¡dS)NZimage1)Zmasterrwrrºzimage "spam" doesn't existÚspam) rrKZ PhotoImagerLrRr¾Ú assertRaisesrrÚ exceptionZ configure)r%r&rrÚcmrrrÚtest_configure_image s&,z#MenubuttonTest.test_configure_imagecCs4| ¡}tj|dd}|j|d|td| ¡dS)NrC)rwrO)rrKrQrRrr{rSrrrrTsz"MenubuttonTest.test_configure_menucCs2| ¡}| |ddddd¡|j|dddddS) NrDéçš™™™™™@çffffff@Ú12mr‚rrx©rr…rRrtrrrÚtest_configure_padx!sz"MenubuttonTest.test_configure_padxcCs2| ¡}| |ddddd¡|j|dddddS) NrErÅrÆrÇrÈr‚rrxrÉrtrrrÚtest_configure_pady&sz"MenubuttonTest.test_configure_padycCs"| ¡}|j|ddddtddS)NrJé’énþÿÿrrºr¼rtrrrÚtest_configure_width+sz#MenubuttonTest.test_configure_widthN)r!r8r9r]Ú staticmethodr r‡rr·r¿r r†rÄrTrÊrËrÎrrrrr²ïs ÿr²c@seZdZddd„Zdd„ZdS) ÚOptionMenuTestÚb©ÚarÑÚccKstj|jd|g|¢Ri|¤ŽSr)rKÚ OptionMenurL)r%r6ÚvaluesrNrrrr2szOptionMenuTest.createcCsD| td¡$tj|jddddWdƒn1s60YdS)Nz^unknown option -image$rÑr*)r)ÚassertRaisesRegexrrKrÕrL©r%rrrÚtest_bad_kwarg5szOptionMenuTest.test_bad_kwargN)rÑrÒ)r!r8r9rrÙrrrrrÐ0s rÐc@sheZdZdZdd„Zdd„Zdd„Zdd „Zd d „Zd d „Z dd„Z dd„Z dd„Z dd„Z dd„ZdS)Ú EntryTest)r<r=r>ÚdisabledbackgroundrŽÚexportselectionrbrcr@rArBÚinsertbackgroundÚinsertborderwidthÚ insertofftimeÚ insertontimeÚ insertwidthÚinvalidcommandrÚreadonlybackgroundrFÚselectbackgroundÚselectborderwidthÚselectforegroundÚshowr‘rHr’ÚvalidateÚvalidatecommandrJÚxscrollcommandcKstj|jfi|¤ŽSr)rKZEntryrLrMrrrrIszEntryTest.createcCs| ¡}| |d¡dS)NrÛ©rZcheckColorParamrtrrrÚ!test_configure_disabledbackgroundLsz+EntryTest.test_configure_disabledbackgroundc Cs:|jdd}| |ddddddd ¡|j|dd d d dS) Nr¸)rárÞrrr€rr‚rƒé<é2rxrÉrtrrrÚ test_configure_insertborderwidthPs   ÿz*EntryTest.test_configure_insertborderwidthcCst| ¡}| |dddd¡|j|dddd|j|ddddtd ƒd kr^|j|dd ddn|j|dd d ddS) NrárçÍÌÌÌÌÌ @rƒgš™™™™™¹?érxr‚gÍÌÌÌÌÌì?rr0)rr…rRr rtrrrÚtest_configure_insertwidthWs z$EntryTest.test_configure_insertwidthcCs$| ¡}| |d¡| |d¡dS)NrâZinvcmd©rZcheckCommandParamrtrrrÚtest_configure_invalidcommandas z'EntryTest.test_configure_invalidcommandcCs| ¡}| |d¡dS)NrãrërtrrrÚ!test_configure_readonlybackgroundfsz+EntryTest.test_configure_readonlybackgroundcCs6| ¡}| |dd¡| |dd¡| |dd¡dS)NrçÚ*r*ú ©rrRrtrrrÚtest_configure_showjszEntryTest.test_configure_showcCs| ¡}| |dddd¡dS)Nr‘r›rœÚreadonlyrrtrrrÚtest_configure_statepsÿzEntryTest.test_configure_statec Cs$| ¡}| |ddddddd¡dS)NrèÚallÚkeyZfocusZfocusinZfocusoutÚnonerrtrrrÚtest_configure_validateus ÿz!EntryTest.test_configure_validatecCs$| ¡}| |d¡| |d¡dS)NréZvcmdrórtrrrÚtest_configure_validatecommandzs z(EntryTest.test_configure_validatecommandcCs$| ¡}| dd¡| | ¡¡| dd¡| | ¡d¡| | ¡¡| d¡|  d¡| | ¡d¡| dd¡| | ¡d ¡|  ¡| | ¡¡| dd¡|  d¡| | ¡d ¡|  d¡| | ¡d ¡|  d ¡| | ¡d ¡|  d¡| | ¡d¡|  d¡dS©NrZ12345Úendr0rñÚ2rÅéÚ4Z1234Z234éZ2345© rÚinsertZ assertFalseZselection_presentZselection_rangerZ selection_getZ assertTrueZselection_fromZ selection_toÚselection_clearZselection_adjustrtrrrÚtest_selection_methodss.          z EntryTest.test_selection_methodsN)r!r8r9r]rrìrïròrôrõrùrûrÿrr rrrrrÚ:s  rÚc@s„eZdZdZdd„ZdZdd„Zdd„Zd d „Zd d „Z d d„Z dd„Z dd„Z dd„Z dd„Zdd„Zdd„Zdd„Zdd„ZdS)Ú SpinboxTest),r‰r<r=ÚbuttonbackgroundÚ buttoncursorÚbuttondownreliefÚbuttonupreliefr–r>rÛrŽrÜrbrcÚformatÚfromr@rArBÚ incrementrÝrÞrßràrárârrFrãr˜r™rärårær‘rHr’ÚtorèrérÖrJÚwraprêcKstj|jfi|¤ŽSr)rKZSpinboxrLrMrrrr¬szSpinboxTest.createNcCs| ¡}| |d¡dS)Nr rërtrrrÚtest_configure_buttonbackground±sz+SpinboxTest.test_configure_buttonbackgroundcCs| ¡}| |d¡dS)Nr ©rZcheckCursorParamrtrrrÚtest_configure_buttoncursorµsz'SpinboxTest.test_configure_buttoncursorcCs| ¡}| |d¡dS)Nr©rZcheckReliefParamrtrrrÚtest_configure_buttondownrelief¹sz+SpinboxTest.test_configure_buttondownreliefcCs| ¡}| |d¡dS)NrrrtrrrÚtest_configure_buttonuprelief½sz)SpinboxTest.test_configure_buttonupreliefcCs´| ¡}| |dd¡| |dd¡| |dd¡| |dd¡| |dd¡| |dd¡| |dd¡| |dd ¡| |dd ¡| |dd ¡| |dd ¡| |dd ¡dS)Nrz%2fz%2.2fz%.2fz%2.fz%2e-1fz2.2z%2.-2fz%-2.02fz% 2.02fz % -2.200fz%09.200fz%d©rrRr#rtrrrÚtest_configure_formatÁsz!SpinboxTest.test_configure_formatcCs>| ¡}| |dd¡| |dddd¡|j|dddd dS) NrgY@réöÿÿÿçffffff$@çffffff'@éÈú*-to value must be greater than -from valuer©rrRÚcheckFloatParamr#rtrrrÚtest_configure_fromÐs  ÿzSpinboxTest.test_configure_fromc Cs"| ¡}| |dddddd¡dS)Nréÿÿÿÿr0rgš™™™™™)@r©rr#rtrrrÚtest_configure_increment×sz$SpinboxTest.test_configure_incrementcCs>| ¡}| |dd¡| |dddd¡|j|dddd dS) NrgYÀrrrri8ÿÿÿr!rr"rtrrrÚtest_configure_toÛs  ÿzSpinboxTest.test_configure_tocCs\| ¡}| |dd¡| |dd¡|j|dddd|j|dddd| |dd¡dS)NrÖr*zmon tue wed thur)ZmonZtueZwedZthurrx)é*g…ëQ¸ @r*rªz42 3.14 {} {any string})rrrRrtrrrÚtest_configure_valuesâs ÿ ÿz!SpinboxTest.test_configure_valuescCs| ¡}| |d¡dS)Nr©rZcheckBooleanParamrtrrrÚtest_configure_wrapíszSpinboxTest.test_configure_wrapcCs`| ¡}| | d¡¡| tj|jd¡| tj|jd¡| t|j¡| t|jdd¡dS)NrÚnoindexr0)rÚassertIsBoundingBoxÚbboxrÁrKrÚ TypeErrorrtrrrÚ test_bboxñs zSpinboxTest.test_bboxcCs| ¡}| dd¡| | ¡¡| dd¡| | ¡d¡| | ¡¡| d¡|  d¡| | ¡d¡| dd¡| | ¡d ¡|  ¡| | ¡¡| dd¡|  d¡| | ¡d ¡|  d¡| | ¡d ¡|  d ¡| | ¡d ¡|  d¡| | ¡d¡dSrrrtrrrr ùs,          z"SpinboxTest.test_selection_methodscCsP| ¡}| | ¡d¡| d¡| | ¡d¡| d¡| | ¡d¡dS)NrþZbuttonupZ buttondown)rrZselection_elementrtrrrÚtest_selection_elements   z"SpinboxTest.test_selection_element)r!r8r9r]rrùrrrrrr$r'r(r*r,r1r r2rrrrr ™s  r c@søeZdZdZedkrdZdd„Zdd„Zedd ƒd d „ƒZ edd ƒd d „ƒZ dd„Z dd„Z edd ƒdd„ƒZ eddƒdd„ƒZdd„Zdd„Zdd„Zdd„Zedd ƒdd „ƒZd!d"„Zd#d$„Zedd ƒd%d&„ƒZd'd(„Zd)d*„Zd+d,„Zd-d.„Zd/S)0ÚTextTest))Úautoseparatorsr<Ú blockcursorr=r>ÚendlinerÜrbrcr?r@rArBÚinactiveselectbackgroundrÝrÞrßràÚinsertunfocussedráÚmaxundorDrErFräråræÚsetgridÚspacing1Úspacing2Úspacing3Ú startliner‘ÚtabsÚtabstylerHÚundorJrrêÚyscrollcommand©érTcKstj|jfi|¤ŽSr)rKÚTextrLrMrrrr,szTextTest.createcCs| ¡}| |d¡dS)Nr4r+rtrrrÚtest_configure_autoseparators/sz&TextTest.test_configure_autoseparatorsrDrcCs| ¡}| |d¡dS)Nr5r+rtrrrÚtest_configure_blockcursor3sz#TextTest.test_configure_blockcursorcCs”| ¡}d dd„tdƒDƒ¡}| d|¡|j|dddd |j|dd dd |j|dd d d | |dd¡| |dd¡|j|dddd dS)NÚ css|] }dVqdS©zLine %dNr©Ú.0ÚirrrÚ ;óz2TextTest.test_configure_endline..r¸rr6r r*rxrrÀúexpected integer but got "spam"rrîr>éé ú1-startline must be less than or equal to -endline©rÚjoinÚrangerrRr#©r%r&rfrrrÚtest_configure_endline8s  ÿ ÿzTextTest.test_configure_endlinecCsD| ¡}| |ddddd¡|j|dddd|j|dd dddS) Nr?r¸çÍÌÌÌÌLY@çfffff¦Y@Z3cr¹r0rxrrÉrtrrrr¿FszTextTest.test_configure_heightcCs| ¡}| |dddd¡dS)Nr9rrr%©rr½rtrrrÚtest_configure_maxundoLszTextTest.test_configure_maxundocCs| ¡}| |d¡dS)Nr7rërtrrrÚ'test_configure_inactiveselectbackgroundPsz0TextTest.test_configure_inactiveselectbackgroundrcCs| ¡}| |dddd¡dS)Nr8ZhollowrþZsolidrrtrrrÚtest_configure_insertunfocussedUsÿz(TextTest.test_configure_insertunfocussedc Cs*| ¡}|j|dddddttdkddS)Nrårr€r‚rƒrC)r»Ú keep_orig)rr…r rrtrrrÚ test_configure_selectborderwidth[s  þz)TextTest.test_configure_selectborderwidthcCs2| ¡}| |ddddd¡|j|dddddS) Nr;éçffffff5@çš™™™™™6@ú0.5céûÿÿÿrrxrÉrtrrrÚtest_configure_spacing1asz TextTest.test_configure_spacing1cCs2| ¡}| |ddddd¡|j|dddddS) Nr<rçš™™™™™@çffffff@z0.1cr%rrxrÉrtrrrÚtest_configure_spacing2fsz TextTest.test_configure_spacing2cCs2| ¡}| |ddddd¡|j|dddddS) Nr=r`rarbrcrrrxrÉrtrrrÚtest_configure_spacing3ksz TextTest.test_configure_spacing3cCs”| ¡}d dd„tdƒDƒ¡}| d|¡|j|dddd |j|dd dd |j|dd d d | |dd¡| |dd¡|j|dddd dS)NrHcss|] }dVqdSrIrrJrrrrMsrNz4TextTest.test_configure_startline..r¸rr>r r*rxrrÀrOrrQr6rîéFrRrSrVrrrÚtest_configure_startlineps  ÿ ÿz!TextTest.test_configure_startlinecCs6| ¡}tdkr"| |ddd¡n| |ddd¡dS)NrCr‘r›rœ©rrr¬rsrtrrrrû~szTextTest.test_configure_statecCst| ¡}tƒdkr&|j|ddddn| |dd¡|j|dddd|j|dddd|j|dd d td kd dS) N©rDré r?)rg33333³4@Ú1iÚ2i)z10.2z20.7rorprxz10.2 20.7 1i 2iz2c left 4c 6c center)Z2crµZ4cZ6crrrÀzbad screen distance "spam"rC)rr^)rrrRr#rrtrrrÚtest_configure_tabs…s   ÿ ÿ ÿ þzTextTest.test_configure_tabscCs| ¡}| |ddd¡dS)Nr@ZtabularZ wordprocessorrrtrrrÚtest_configure_tabstyle”sz TextTest.test_configure_tabstylecCs| ¡}| |d¡dS)NrAr+rtrrrÚtest_configure_undo™szTextTest.test_configure_undocCs>| ¡}| |dd¡|j|dddd|j|dddddS)NrJrÌrÍr0rxr)rr½rRrtrrrrÎszTextTest.test_configure_widthcCs:| ¡}tdkr$| |dddd¡n| |dddd¡dS)NrCrÚcharrþZwordrlrtrrrr,£szTextTest.test_configure_wrapcCsp| ¡}| | d¡¡| | d¡¡| tj|jd¡| tj|jd¡| t|j¡| t|jdd¡dS)Nz1.1rr-)rr.r/Ú assertIsNonerÁrKrr0rtrrrr1ªszTextTest.test_bboxN)r!r8r9r]rÚ _stringifyrrFrrGrWr¿r[r\r]r_rerhrirkrûrqrrrsrÎr,r1rrrrr3s:       r3c@sjeZdZdZeZdZdd„Zdd„Zdd„Z d d „Z d d „Z d d„Z dd„Z dd„Zeddƒdd„ƒZdS)Ú CanvasTest)r<r=Ú closeenoughÚconfiner>r?r@rArBrÝrÞrßràráÚoffsetrFÚ scrollregionrärårær‘rHrêÚxscrollincrementrBÚyscrollincrementrJTcKstj|jfi|¤ŽSr)rKZCanvasrLrMrrrrÆszCanvasTest.createc Cs$| ¡}|j|dddddtddS)Nrxéç333333@rðéýÿÿÿrº)rr#rrtrrrÚtest_configure_closeenoughÉsÿz%CanvasTest.test_configure_closeenoughcCs| ¡}| |d¡dS)Nryr+rtrrrÚtest_configure_confineÎsz!CanvasTest.test_configure_confinec Csd| ¡}| |dd¡| |dddddddd d d ¡ | |dd ¡| |dd ¡| |dd¡dS)Nrzz0,0rjrkrgrnrmrorprlrrz10,20z#5,6rÀ)rrr¬rRr#rtrrrÚtest_configure_offsetÒsÿz CanvasTest.test_configure_offsetcCsv| ¡}| |dd¡|j|dddd| |dd¡|j|dddd| |dd ¡| |dd ¡| |dd ¡dS) Nr{z 0 0 200 150)rrr é–rxr*rÀzbad scrollRegion "spam"r)rrr rÀ)rrr )rrr r„rrrtrrrÚtest_configure_scrollregionÛs ÿ ÿz&CanvasTest.test_configure_scrollregioncCs | ¡}|j|ddddddS)Nr‘r›rœz0bad state value "{}": must be normal or disabledrrrtrrrrûçs ÿzCanvasTest.test_configure_statec Cs$| ¡}| |ddddddd¡dS)Nr|é(rgš™™™™™D@gÍÌÌÌÌÌE@iØÿÿÿz0.5ir„rtrrrÚtest_configure_xscrollincrementìs ÿz*CanvasTest.test_configure_xscrollincrementc Cs$| ¡}| |ddddddd¡dS)Nr}rQrçffffff&@g333333+@rz0.1ir„rtrrrÚtest_configure_yscrollincrementñs ÿz*CanvasTest.test_configure_yscrollincrementrDrcCsH| ¡}|jdddddd}|jdddddd}| |¡\}}}}| |¡\}}}}| ddd ¡| |¡\} } }}| |¡\} } }}| | d¡| | d ¡| ||| | ¡| ||| | ¡| ||¡|jddd | |¡\} }}}| |¡\}}}}| |d¡| || ¡| | | || ¡| | | ||¡dS) Nr0r`Úgroup)Útagsérîrjr r¸)Úy)rZcreate_rectangler/ZmovetorZ tag_lower)r%r&Zi1Zi2Zx1Zy1Ú_Zx2Zy2Zx1_2Zy1_2Zx2_2Zy2_2Zx1_3Zy1_3Zx2_3Zy2_3rrrÚ test_movetoös(     zCanvasTest.test_movetoN)r!r8r9r]rr‡rvrrr‚rƒr…rûr‡r‰rrrrrrrw´s   rwc@s¢eZdZdZdd„Zdd„ZedddƒejƒZ d d „Z d d „Z d d„Z dd„Z dd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd „Zd!d"„Zd#d$„Zd%S)&Ú ListboxTest)Ú activestyler<r=r>rŽrÜrbrcr?r@rArBrÚ listvariablerFräråræÚ selectmoder:r‘rHrJrêrBcKstj|jfi|¤ŽSr)rKZListboxrLrMrrrrszListboxTest.createcCs| ¡}| |dddd¡dS)Nr‘Zdotboxrþr“rrtrrrÚtest_configure_activestylesÿz&ListboxTest.test_configure_activestylerDrrcCs&| ¡}t |j¡}| |d|¡dS)Nr’)rrKZ DoubleVarrLZcheckVariableParam)r%r&ÚvarrrrÚtest_configure_listvariable%s z'ListboxTest.test_configure_listvariablecCsD| ¡}| |dd¡| |dd¡| |dd¡| |dd¡dS)Nr“ZsingleZbrowseZmultipleZextendedrørtrrrÚtest_configure_selectmode*s z%ListboxTest.test_configure_selectmodecCs| ¡}| |ddd¡dS)Nr‘r›rœrrtrrrrû1sz ListboxTest.test_configure_statecCs”| ¡}| td¡| d¡Wdƒn1s40Yd ¡}|jdg|¢RŽt|ƒD]\}}|j||dq`| t¡| ¡Wdƒn1s 0Y| td¡| d¡Wdƒn1sÖ0Y|  | dd¡d ¡|  | dd¡d ¡|  | d d¡d ¡| d¡}|  |t ¡|  ¡D]T\}}|  t|ƒd ¡t|ƒd kr:|  || d|¡¡|  |d| d|¡¡q:dS)Nzitem number "0" out of rangerz)red orange yellow green blue white violetr)r<zbad listbox index "red"Úredr<)r<r<Ú Backgroundr*r˜)r<r<r™r*Zvioletz@0,0)rñrrr)rr×rÚ itemconfigureÚsplitrÚ enumeraterÁr0rÚassertIsInstanceÚdictÚitemsZassertInÚlenÚitemcget)r%r&ZcolorsrLZcolorÚdÚkÚvrrrÚtest_itemconfigure5s6( &(ÿÿÿ  zListboxTest.test_itemconfigurecCsž| ¡}| ddddd¡|jd i||i¤Ž| | d|¡d|¡| | d|¡|¡| td¡$|jd i|d i¤ŽWdƒn1s0YdS) NrrÓrÑrÔr¢rrzunknown color name "spam"rÀ)r)r)rrršrr¡r×r)r%rwr°r&rrrÚcheck_itemconfigurePszListboxTest.check_itemconfigurecCs| dd¡dS)Nr<ú#ff0000©r¦rØrrrÚtest_itemconfigure_backgroundYsz)ListboxTest.test_itemconfigure_backgroundcCs| dd¡dS)NÚbgr§r¨rØrrrÚtest_itemconfigure_bg\sz!ListboxTest.test_itemconfigure_bgcCs| dd¡dS)NZfgú#110022r¨rØrrrÚtest_itemconfigure_fg_sz!ListboxTest.test_itemconfigure_fgcCs| dd¡dS)Nrcr¬r¨rØrrrÚtest_itemconfigure_foregroundbsz)ListboxTest.test_itemconfigure_foregroundcCs| dd¡dS)Nrär¬r¨rØrrrÚ#test_itemconfigure_selectbackgroundesz/ListboxTest.test_itemconfigure_selectbackgroundcCs| dd¡dS)Nræz#654321r¨rØrrrÚ#test_itemconfigure_selectforegroundhsz/ListboxTest.test_itemconfigure_selectforegroundcCs¤| ¡}|jdgdd„tdƒDƒ¢RŽ| ¡| | d¡¡| | d¡¡| | d¡¡| t|jd¡| t|jd¡| t |j¡| t |jdd¡dS) Nrcss|]}d|VqdS©zel%dNrrJrrrrMmrNz'ListboxTest.test_box..rDr%rQr-r0) rrrUÚpackr.r/rurÁrr0©r%ZlbrrrÚtest_boxks zListboxTest.test_boxcCsp| ¡}|jdgdd„tdƒDƒ¢RŽ| dtj¡| dd¡| d¡| | ¡d¡|  t |jd¡dS) Nrcss|]}d|VqdSr±rrJrrrrMyrNz0ListboxTest.test_curselection..rDrñrr)rñrÅrr) rrrUr rKZENDZ selection_setrZ curselectionrÁr0r³rrrÚtest_curselectionws   zListboxTest.test_curselectioncCs:| ¡}|jdgdd„tdƒDƒ¢RŽ| | d¡d¡| | d¡d¡| | d¡d ¡| | d¡d ¡| | d ¡d ¡| | dd ¡d ¡| | d d¡d¡| | d d¡d¡| | dd¡d¡| t|jd¡| t|jd¡| t|j¡| t|jdd¡| t|jddd¡| t|jd¡dS)Nrcss|]}d|VqdSr±rrJrrrrM‚rNz'ListboxTest.test_get..rDÚel0rÅÚel3rÚel7r*r%r)r·Zel4Úel5)r¹Zel6r¸r)r¶r-r0rñr)rrrUrÚgetrÁrr0r³rrrÚtest_get€s" zListboxTest.test_getN)r!r8r9r]rr”rr Ztest_configure_justifyZ test_justifyr–r—rûr¥r¦r©r«r­r®r¯r°r´rµr»rrrrrs$    rc@steZdZdZdZdd„Zdd„Zdd„Zd d „Zd d „Z d d„Z dd„Z dd„Z dd„Z dd„Zdd„Zdd„ZdS)Ú ScaleTest)r‰r<Ú bigincrementr=r–r>Údigitsrbrcrr@rArBr|ÚlengthÚorientrFr˜r™Ú resolutionÚ showvalueÚ sliderlengthÚ sliderreliefr‘rHÚ tickintervalrÚ troughcolorr¨rJÚverticalcKstj|jfi|¤ŽSr)rKZScalerLrMrrrr¡szScaleTest.createcCs| ¡}| |dddd¡dS)Nr½gÍÌÌÌÌÌ(@gš™™™™™7@rdr&rtrrrÚtest_configure_bigincrement¤sz%ScaleTest.test_configure_bigincrementcCs| ¡}| |ddd¡dS)Nr¾rrrZrtrrrÚtest_configure_digits¨szScaleTest.test_configure_digitscCs4| ¡}tƒdkrdnt}|j|dddd|ddS)N)rDrrQFrr¸çÍÌÌÌÌÌ-@ç333333.@rº)rrrr#)r%r&r»rrrr$¬szScaleTest.test_configure_fromcCs(| ¡}| |dd¡| |dd¡dS)Nr|rªr*rørtrrrÚtest_configure_label±szScaleTest.test_configure_labelcCs | ¡}| |ddddd¡dS)Nr¿é‚gffffff`@g33333ó`@Ú5ir„rtrrrÚtest_configure_length¶szScaleTest.test_configure_lengthcCs | ¡}| |ddddd¡dS)NrÁgÍÌÌÌÌÌ@rgÍÌÌÌÌÌ@r‚r&rtrrrÚtest_configure_resolutionºsz#ScaleTest.test_configure_resolutioncCs| ¡}| |d¡dS)NrÂr+rtrrrÚtest_configure_showvalue¾sz"ScaleTest.test_configure_showvaluec Cs"| ¡}| |dddddd¡dS)NrÃrQrˆç333333/@r€Z3mr„rtrrrÚtest_configure_sliderlengthÂs ÿz%ScaleTest.test_configure_sliderlengthcCs| ¡}| |d¡dS)NrÄrrtrrrÚtest_configure_sliderreliefÇsz%ScaleTest.test_configure_sliderreliefc Cs8| ¡}|j|dddddtd|j|dddtd dS) NrÅr0ç333333@rgrrºr‚rñ)ryr»)rr#rrRrtrrrÚtest_configure_tickintervalËsÿ ÿz%ScaleTest.test_configure_tickintervalc Cs$| ¡}|j|dddddtddS)Nri,rÊrËrrº)rr#rrtrrrr(ÒsÿzScaleTest.test_configure_toN)r!r8r9r]Údefault_orientrrÈrÉr$rÌrÏrÐrÑrÓrÔrÖr(rrrrr¼”s r¼c@sLeZdZdZeZdZdZdd„Zdd„Z dd „Z d d „Z d d „Z dd„Z dS)Ú ScrollbarTest)r‰Ú activereliefr<r=r–r>Úelementborderwidthr@rArBZjumprÀrFr˜r™rHrÆrJTrÇcKstj|jfi|¤ŽSr)rKZ ScrollbarrLrMrrrrçszScrollbarTest.createcCs| ¡}| |d¡dS)NrÙrrtrrrÚtest_configure_activereliefêsz)ScrollbarTest.test_configure_activereliefcCs | ¡}| |ddddd¡dS)NrÚrÕrÇr‚Ú1mr„rtrrrÚ!test_configure_elementborderwidthîsz/ScrollbarTest.test_configure_elementborderwidthcCs | ¡}|j|ddddddS)NrÀrÇÚ horizontalz4bad orientation "{}": must be vertical or horizontalrrrtrrrÚtest_configure_orientòs ÿz#ScrollbarTest.test_configure_orientcCsZ| ¡}dD]}| |¡| | ¡|¡q | d¡| | ¡¡| t|jdd¡dS)N)Úarrow1ZsliderÚarrow2r*ràrá)rZactivaterrurÁr0)r%ÚsbrgrrrÚ test_activate÷s  zScrollbarTest.test_activatecCs‚| ¡}| dd¡| | ¡d¡| t|jdd¡| t|jdd¡| t|jdd¡| t|jd¡| t|jddd¡dS) Nçš™™™™™É?çš™™™™™Ù?)räråÚabcÚdefg333333ã?gffffffæ?gš™™™™™é?)rÚsetrrºrÁrr0)r%rârrrÚtest_sets zScrollbarTest.test_setN)r!r8r9r]rr‡rvr×rrÛrÝrßrãrérrrrrØØs  rØc@s.eZdZdZdZdd„Zdd„Zdd„Zd d „Zd d „Z e d ddƒdd„ƒZ e d ddƒdd„ƒZ e d ddƒdd„ƒZ dd„Zdd„Zdd„Zdd„Zdd„Zd d!„Zd"d#„Zd$d%„Zd@d'd(„Zd)d*„Zd+d,„Zd-d.„Zd/d0„Ze d dƒd1d2„ƒZd3d4„Zd5d6„Zd7d8„Zd9d:„Ze d dƒd;d<„ƒZ d=d>„Z!d?S)AÚPanedWindowTest)r<r=r>Ú handlepadÚ handlesizer?Ú opaqueresizerÀÚproxybackgroundÚproxyborderwidthÚ proxyreliefrFÚ sashcursorÚsashpadÚ sashreliefÚ sashwidthÚ showhandlerJrÞcKstj|jfi|¤ŽSr)rKZ PanedWindowrLrMrrrrszPanedWindowTest.createc Cs"| ¡}| |dddddd¡dS)Nrërrfrgr€rÜr„rtrrrÚtest_configure_handlepadsz(PanedWindowTest.test_configure_handlepadc Cs&| ¡}|j|ddddddtddS)NrìrDgÍÌÌÌÌÌ"@g333333%@r€Ú2mrº©rr…r rtrrrÚtest_configure_handlesizesÿz)PanedWindowTest.test_configure_handlesizec Cs(| ¡}|j|dddddddtd dS) Nr?r¸rXrYr¹rrorºrørtrrrr¿$sÿz%PanedWindowTest.test_configure_heightcCs| ¡}| |d¡dS)Nrír+rtrrrÚtest_configure_opaqueresize)sz+PanedWindowTest.test_configure_opaqueresizerDrrcCs| ¡}| |d¡dS)NrîrërtrrrÚtest_configure_proxybackground-sz.PanedWindowTest.test_configure_proxybackgroundc Cs(| ¡}|j|dddddddtd dS) Nrïrrg333333@rr‚rƒrºrørtrrrÚtest_configure_proxyborderwidth2s  þz/PanedWindowTest.test_configure_proxyborderwidthcCs| ¡}| |d¡dS)NrðrrtrrrÚtest_configure_proxyrelief9sz*PanedWindowTest.test_configure_proxyreliefcCs| ¡}| |d¡dS)NrñrrtrrrÚtest_configure_sashcursor>sz)PanedWindowTest.test_configure_sashcursorc Cs"| ¡}| |dddddd¡dS)NròrDrr€r‚r÷r„rtrrrÚtest_configure_sashpadBsz&PanedWindowTest.test_configure_sashpadcCs| ¡}| |d¡dS)NrórrtrrrÚtest_configure_sashreliefFsz)PanedWindowTest.test_configure_sashreliefc Cs&| ¡}|j|ddddddtddS)NrôrQg333333&@rÒr€rÜrºrørtrrrÚtest_configure_sashwidthJsÿz(PanedWindowTest.test_configure_sashwidthcCs| ¡}| |d¡dS)Nrõr+rtrrrÚtest_configure_showhandleOsz)PanedWindowTest.test_configure_showhandlec Cs(| ¡}|j|dddddddtd dS) NrJrÌgfffff6y@gš™™™™Iy@rÍrrÎrºrørtrrrrÎSsÿz$PanedWindowTest.test_configure_widthcCs:| ¡}t |¡}t |¡}| |¡| |¡|||fSr)rrKršÚadd©r%ÚprÑrÔrrrÚcreate2Xs     zPanedWindowTest.create2cCs„| ¡\}}}| t|j¡| |¡}| |t¡| ¡D]D\}}| t|ƒd¡| || ||¡¡| |d|  ||¡¡q:dS)Nrr) rrÁr0Ú paneconfigurerržrŸrr Úpanecget)r%rrÑrÔr¢r£r¤rrrÚtest_paneconfigure`s  z"PanedWindowTest.test_paneconfigureFcCsvdd„}|jr|rt|ƒ}|jr(|r(t}|j|fi||i¤Ž| || ||¡dƒ|¡| || ||¡ƒ|¡dS)NcSs|SrrrrrrÚkrNz5PanedWindowTest.check_paneconfigure..r)r3r¾rrr)r%rrÑrwr°ryÚ stringifyr»rrrÚcheck_paneconfigurejs  z#PanedWindowTest.check_paneconfigurecCsF| t|¡&|j|fi|di¤ŽWdƒn1s80YdS)NZbadValue)r×rr)r%rrÑrwÚmsgrrrÚcheck_paneconfigure_badtsz'PanedWindowTest.check_paneconfigure_badcCs8| ¡\}}}| ||d|t|ƒ¡| ||dd¡dS)NZafterúbad window path name "badValue"©rr r¾rrrrrÚtest_paneconfigure_afterxs  ÿz(PanedWindowTest.test_paneconfigure_aftercCs8| ¡\}}}| ||d|t|ƒ¡| ||dd¡dS)NÚbeforerrrrrrÚtest_paneconfigure_before~s  ÿz)PanedWindowTest.test_paneconfigure_beforecCs>| ¡\}}}|j||dddtƒdkd| ||dd¡dS)Nr?rQrm©r úbad screen distance "badValue"©rr rrrrrrÚtest_paneconfigure_height„sÿ ÿz)PanedWindowTest.test_paneconfigure_heightcCs4| ¡\}}}| ||ddd¡| ||dd¡dS)NÚhideFrz)expected boolean value but got "badValue"©rr rrrrrÚtest_paneconfigure_hide‹s  ÿz'PanedWindowTest.test_paneconfigure_hidecCs4| ¡\}}}| ||ddd¡| ||dd¡dS)NZminsizerQrrrrrrÚtest_paneconfigure_minsize’s  ÿz*PanedWindowTest.test_paneconfigure_minsizecCs4| ¡\}}}| ||ddd¡| ||dd¡dS)NrDrr0rrrrrrÚtest_paneconfigure_padx˜s  ÿz'PanedWindowTest.test_paneconfigure_padxcCs4| ¡\}}}| ||ddd¡| ||dd¡dS)NrErr0rrrrrrÚtest_paneconfigure_padyžs  ÿz'PanedWindowTest.test_paneconfigure_padycCs4| ¡\}}}| ||ddd¡| ||dd¡dS)NZstickyZnsewZneswz[bad stickyness value "badValue": must be a string containing zero or more of n, e, s, and wrrrrrÚtest_paneconfigure_sticky¤s  ÿz)PanedWindowTest.test_paneconfigure_stickycCs4| ¡\}}}| ||ddd¡| ||dd¡dS)NZstretchZalwÚalwayszEbad stretch "badValue": must be always, first, last, middle, or neverrrrrrÚtest_paneconfigure_stretch¬s  ÿz*PanedWindowTest.test_paneconfigure_stretchcCs>| ¡\}}}|j||dddtƒdkd| ||dd¡dS)NrJrQrmrrrrrrrÚtest_paneconfigure_width´sÿ ÿz(PanedWindowTest.test_paneconfigure_widthN)F)"r!r8r9r]r×rrörùr¿rúrrûrürýrþrÿrrrrÎrr r rrrrrrrrrr r!rrrrrê sF          rêc@s\eZdZdZeZdd„Zdd„Zdd„Zdd „Z d d „Z d d „Z dd„Z dd„Z dd„ZdS)ÚMenuTest)r‰ZactiveborderwidthrŠr<r=r>rŽrbrcÚ postcommandrFr¤rHÚtearoffÚtearoffcommandr"ÚtypecKstj|jfi|¤ŽSr)rKrQrLrMrrrrÇszMenuTest.createcCs| ¡}| |d¡dS)Nr#rórtrrrÚtest_configure_postcommandÊsz#MenuTest.test_configure_postcommandcCs| ¡}| |d¡dS)Nr$r+rtrrrÚtest_configure_tearoffÎszMenuTest.test_configure_tearoffcCs| ¡}| |d¡dS)Nr%rórtrrrÚtest_configure_tearoffcommandÒsz&MenuTest.test_configure_tearoffcommandcCs| ¡}| |dd¡dS)Nr"rªrørtrrrÚtest_configure_titleÖszMenuTest.test_configure_titlecCs| ¡}| |dddd¡dS)Nr&rœr$ZmenubarrrtrrrÚtest_configure_typeÚsÿzMenuTest.test_configure_typecCsÜ| ¡}|jdd| t|j¡| td¡| d¡Wdƒn1sN0Y| d¡}| |t¡|  ¡D]X\}}| |t ¡| |t ¡|  t |ƒd¡|  |d|¡|  | d|¡|d¡qv| ¡dS) NÚtest©r|zbad menu entry index "foo"rvr0rrr)rÚ add_commandrÁr0Úentryconfigurer×rrržrŸr¾Útuplerr Ú entrycgetr{)r%Úm1r¢r£r¤rrrÚtest_entryconfigureßs (    zMenuTest.test_entryconfigurecCsN| ¡}|jdd| | dd¡d¡|jddd| | dd¡d¡dS)Nr,r-r0r|Úchanged)rr.rr1r/)r%r2rrrÚtest_entryconfigure_labelïs  z"MenuTest.test_entryconfigure_labelcCs|| ¡}t |j¡}t |j¡}|j|dddd| t| dd¡ƒt|ƒ¡|jd|d| t| dd¡ƒt|ƒ¡dS)NTFZNonsense)r¨r£r¢r|r0r¨)r¨) rrKZ BooleanVarrLZadd_checkbuttonrr¾r1r/)r%r2Zv1Zv2rrrÚtest_entryconfigure_variableös   ÿz%MenuTest.test_entryconfigure_variableN)r!r8r9r]r r‡rr'r(r)r*r+r3r5r6rrrrr"¼sr"c@s$eZdZdZeZdd„Zdd„ZdS)Ú MessageTest)r‹Úaspectr<r=r>rbrcr@rArBrrDrErFrHrfr’rJcKstj|jfi|¤ŽSr)rKZMessagerLrMrrrr szMessageTest.createcCs| ¡}| |dddd¡dS)Nr8éúriÔþÿÿrZrtrrrÚtest_configure_aspectsz!MessageTest.test_configure_aspectN)r!r8r9r]r r:rr:rrrrr7sr7c@seZdZdd„Zdd„ZdS)ÚDefaultRootTestcCs| tj¡dSr)Ú _test_widgetrKr_rØrrrÚ test_frameszDefaultRootTest.test_framecCs| tj¡dSr)r<rKrzrØrrrÚ test_labelszDefaultRootTest.test_labelN)r!r8r9r=r>rrrrr;sr;Ú__main__)0ZunittestrKrrUZ test.supportrZtkinter.test.supportrrrrrZtkinter.test.widget_testsr r r r r rrrrrZTestCaser;r^rar~rˆr•rŸr¯r²rÐrÚr r3rwrr¼rØrêr"r7r;Z tests_guir!ÚmainrrrrÚsx  (%(  @ ^YC21D û