a ze @s4ddlZddlZddlmZmZddlmZmZddlZddlm Z ddl m Z m Z m Z mZmZddlmZmZmZmZmZmZmZedGdd d eZGd d d e ejZGd d d eeZeeGdddeejZeeGdddeejZGdddeZeeGdddeejZeeGdddeejZ eeGdddeejZ!eeeGdddeejZ"eeeGddde"ejZ#eeeGdddeejZ$eeGd d!d!eejZ%Gd"d#d#eejZ&eeGd$d%d%eejZ'eeGd&d'd'eejZ(e)ej*d(kd)eeGd*d+d+eejZ+eeeGd,d-d-eejZ,eeeGd.d/d/e"ejZ-eeGd0d1d1eejZ.eeGd2d3d3eejZ/eeGd4d5d5eejZ0Gd6d7d7eejZ1e e!e#e"eeee&e,e$e(e%e'e+e/e0e-e.ee1fZ2e3d8kr0e4dS)9N)ttkTclError)requires gc_collect) MockTclObj)AbstractTkTest tcl_versionget_tk_patchlevelsimulate_mouse_clickAbstractDefaultRootTest)add_standard_optionsnoconvAbstractWidgetTestStandardOptionsTestsIntegerSizeTestsPixelSizeTests setUpModuleZguic@s$eZdZddZddZddZdS)StandardTtkOptionsTestscCs\|}||ddd}tdkr*d}|j|dd|d|jdd}||dddS) Nclass"attempt to change read-only optionrbeta"Attempt to change read-only optionFooerrmsgclass_)create assertEqualr checkInvalidParamselfwidgetrZwidget2r(V/opt/bitninja-python-dojo/embedded/lib/python3.9/tkinter/test/test_ttk/test_widgets.pytest_configure_classs  z,StandardTtkOptionsTests.test_configure_classcCs|}|j|dddd|j|dddd|j|dddd|j|dd d d|j|dd d d||dd |j|dddddS)Npaddingr)0Zexpected)5)r.r)r/6)r.r)r/r07)r.rr1r)r/r0r28)Z5pZ6pZ7pZ8pr(rr" checkParamr&r'r(r(r)test_configure_paddings  z.StandardTtkOptionsTests.test_configure_paddingcCsj|}||ddd}t|dr8dt|d}|j|dd|d|jdd}||d ddS) NstylerzLayout Foo not founddefault_orientzLayout %s.Foo not foundrrr r)r"r#hasattrgetattrtitler$r%r(r(r)test_configure_style)s    z,StandardTtkOptionsTests.test_configure_styleN)__name__ __module__ __qualname__r*r7r=r(r(r(r)rs  rcs0eZdZdZfddZddZddZZS) WidgetTestz,Tests methods available in every ttk widget.cs,ttj|jddd|_|jdS)NrText)widthtext)supersetUprButtonrootr'packr& __class__r(r)rF;s zWidgetTest.setUpcCs|j||jt|jdt|jdd||jddd|tj |jjdd|tj |jjdd|tj |jjdddS)Nlabelrr.) r'updater#identifyint winfo_width winfo_height assertRaisestkinterrrJr(r(r) test_identify@s  zWidgetTest.test_identifycCsB||jd||jdgd||jdgd||jdgd||jddgd||jddgd||jddgddd }||jjdg|d fid d id d d if|j}|tj|jjd g|tj|jjdd g|||j|jddg||jddS)Nr( !disabledTdisabled)rXactive)z!activerYc[s||fSNr()Zarg1kwr(r(r)test_cb\sz-WidgetTest.test_widget_state..test_cbhimsgZthereZbadstate)rZ)r#r'stateZinstaterUrVr)r&r]Z currstater(r(r)test_widget_stateLs6  zWidgetTest.test_widget_state)r>r?r@__doc__rFrWra __classcell__r(r(rKr)rA8s  rAc@seZdZeZdS)AbstractToplevelTestN)r>r?r@r _conv_pixelsr(r(r(r)rdpsrdc@seZdZdZddZdS) FrameTest) borderwidthrcursorheightr+reliefr8 takefocusrCcKstj|jfi|Sr[)rFramerHr&kwargsr(r(r)r"|szFrameTest.createNr>r?r@OPTIONSr"r(r(r(r)rftsrfc@s(eZdZdZddZddZddZdS) LabelFrameTest) rgrrhri labelanchor labelwidgetr+rjr8rkrD underlinerCcKstj|jfi|Sr[)rZ LabelFramerHrmr(r(r)r"szLabelFrameTest.createcCsB|}|j|ddddddddd d d d d dd||dddS)NrreenesnneZnwsZseswwZwnwsz!Bad label anchor specification {}rcenter)r"checkEnumParamr$r6r(r(r)test_configure_labelanchors z)LabelFrameTest.test_configure_labelanchorcCs8|}tj|jddd}|j|d|dd|dS)NZMuppZfoo)rDnamersz.foor-)r"rLabelrHr5destroy)r&r'rNr(r(r)test_configure_labelwidgetsz)LabelFrameTest.test_configure_labelwidgetN)r>r?r@rpr"rrr(r(r(r)rqsrqc@s,eZdZddZddZddZddZd S) AbstractLabelTestcCstj|jdd}tj|jdd}|j|||dd|j||ddd|j|||fdd|j|||d|fdd|j||ddd|j||d d d dS) Nimage1)masterrimage2)rr-rZ)rrZrzimage1 active image2spamzimage "spam" doesn't existr)rVZ PhotoImagerHr5r$)r&r'rimagerr(r(r)checkImageParams  z!AbstractLabelTest.checkImageParamcCsPd}dd|ddd|d}|}|j|dg|Rd|idS)Nz,none text image center top bottom left rightzbad compound "{}": must be z, rOz, or compoundr)splitjoinr"r)r&optionsrr'r(r(r)test_configure_compoundsz)AbstractLabelTest.test_configure_compoundcCs|}||dddddS)Nr`rZrYnormalr"Z checkParamsr6r(r(r)test_configure_statesz&AbstractLabelTest.test_configure_statecCs|}||dddddS)NrCiinrrr6r(r(r)test_configure_widthsz&AbstractLabelTest.test_configure_widthN)r>r?r@rrrrr(r(r(r)rs  rc@s$eZdZdZeZddZddZdS) LabelTest)anchor backgroundrgrrrhfont foregroundrjustifyr+rjr`r8rkrD textvariablertrCZ wraplengthcKstj|jfi|Sr[)rrrHrmr(r(r)r"szLabelTest.createcCs|}||dddS)Nrz3-Adobe-Helvetica-Medium-R-Normal--*-120-*-*-*-*-*-*r4r6r(r(r)test_configure_fontszLabelTest.test_configure_fontN)r>r?r@rpr rer"rr(r(r(r)rsrc@s(eZdZdZddZddZddZdS) ButtonTest)rcommandrrhdefaultrr+r`r8rkrDrrtrCcKstj|jfi|Sr[)rrGrHrmr(r(r)r"szButtonTest.createcCs|}||dddddS)NrrrZrYr"rr6r(r(r)test_configure_defaultsz!ButtonTest.test_configure_defaultcs2gtj|jfddd}||dS)Ncs dSNappendr(successr(r)z(ButtonTest.test_invoke..r)rrGrHinvoke assertTrue)r&Zbtnr(rr) test_invokeszButtonTest.test_invokeN)r>r?r@rpr"rrr(r(r(r)rsrc@s0eZdZdZddZddZddZdd Zd S) CheckbuttonTest)rrrrhroffvalueonvaluer+r`r8rkrDrrtvariablerCcKstj|jfi|Sr[)r CheckbuttonrHrmr(r(r)r"szCheckbuttonTest.createcCs |}||ddddddS)Nrrffffff@r any stringrr6r(r(r)test_configure_offvaluesz'CheckbuttonTest.test_configure_offvaluecCs |}||ddddddS)Nrrrrrrr6r(r(r)test_configure_onvaluesz&CheckbuttonTest.test_configure_onvaluecsgfdd}tj|j|d}||d|tj|jj |d| }||d||d|j |d| d|d <| }| t ||td ||d |j |ddS) NcsddSNrcb test calledrr(rr(r)cb_tests z,CheckbuttonTest.test_invoke..cb_testr)Z alternaterrrrrrr)rrrHr#r`rUrVrtk globalgetvarrr assertFalsestrassertLessEquallen)r&rcbtnresr(rr)rs(     zCheckbuttonTest.test_invokeN)r>r?r@rpr"rrrr(r(r(r)rs  rcseZdZdZejdkrdndZfddZddZd d Z d d Z d dZ ddZ ddZ ddZddZddZddZddZZS) EntryTest)rrrhexportselectionrrinvalidcommandrshowr`r8rkrvalidatevalidatecommandrCxscrollcommanddarwinz Entry.fieldtextareacst||_dSr[)rErFr"entryrJrKr(r)rF"s zEntryTest.setUpcKstj|jfi|Sr[)rZEntryrHrmr(r(r)r"&szEntryTest.createcCs|}||ddS)Nrr"ZcheckCommandParamr6r(r(r)test_configure_invalidcommand)sz'EntryTest.test_configure_invalidcommandcCs6|}||dd||dd||dddS)Nr*r r4r6r(r(r)test_configure_show-szEntryTest.test_configure_showcCs|}||dddddS)Nr`rYrreadonlyrr6r(r(r)r3szEntryTest.test_configure_statec Cs$|}||ddddddddS)NrallkeyfocusZfocusinZfocusoutnonerr6r(r(r)test_configure_validate8s z!EntryTest.test_configure_validatecCs|}||ddS)Nrrr6r(r(r)test_configure_validatecommand=sz(EntryTest.test_configure_validatecommandcCs>||jd|tj|jjd|tj|jjddS)NrZnoindex)assertIsBoundingBoxrbboxrUrVrrJr(r(r) test_bboxAszEntryTest.test_bboxcCs|j|j||jdd|j||jddd|tj|jjdd|tj|jjdd|tj|jjdddS)Nr.rOr) rrIrPr#rQ IDENTIFY_ASrUrVrrJr(r(r)rWFs  zEntryTest.test_identifycsgfdd}d|jd<dd|jd<||jd<|j|d|jd<|j|td ||jd<d d|jd<|j|td d|jd<|j|td d |jd<|tj|jjdS) Ncs dSNTrr(rr(r)rTrz3EntryTest.test_validation_options..rrcSsdS)NFr(r(r(r(r)rWrrrrrcSsdSrr(r(r(r(r)rbrT)rrrr#rrUrVr)r&Z test_invalidr(rr)test_validation_optionsRs&            z!EntryTest.test_validation_optionscsrgfdd}d|jd<|j|df|jd<|jdd|jdd |d d g||jd dS) Ncs6d|krdks(nddSddSNazFT)lowerr)Z to_insertZ validationr(r)ros   z+EntryTest.test_validation..validaterrz%SrendrrFT)rregisterinsertr#getr&rr(rr)test_validationms  zEntryTest.test_validationcCsdd}|j|df|jd<|jdd||jd||jd|jd d||jd |jdd ||jd ||jd |jd||jd||jddS)NcSs.|D]$}d|kr dksndSqdSr)r)ZcontentZletterr(r(r)rsz-EntryTest.test_revalidation..validatez%PrrZavocadoTr(rrZa1bF)invalidr)rrrr#rr`deleterrr(r(r)test_revalidation~s zEntryTest.test_revalidation)r>r?r@rpsysplatformrrFr"rrrrrrrWrrrrcr(r(rKr)rs  rcsbeZdZdZejdkrdndZfddZddZd d Z d d Z d dZ ddZ ddZ ZS) ComboboxTest)rrrhrrrrirr postcommandrr`r8rkrrrvaluesrCrrzCombobox.buttonrcst||_dSr[)rErFr"comborJrKr(r)rFs zComboboxTest.setUpcKstj|jfi|Sr[)rComboboxrHrmr(r(r)r"szComboboxTest.createc Cs$|}||ddddddddS)NridLY@fffffY@rZ1irr6r(r(r)test_configure_heightsz"ComboboxTest.test_configure_heightcCsj|j}|dd}}tjdkr8||j||d|jjd||d|jjd||d|jdS)Nr.r .*downarrow\Zxy)rrSrr assertRegexrQevent_generateupdate_idletasks)r&rCrrr(r(r)_show_drop_down_listboxs  z$ComboboxTest._show_drop_down_listboxcszgdg|jd<|jdfdd|j|j|j}||j|jd|j|dS)Nrrz<>cs dSrrevtrr(r)rrz1ComboboxTest.test_virtual_event..z)rbindrIrPrTrrr)r&rir(rr)test_virtual_events        zComboboxTest.test_virtual_eventcsbgfdd|jd<|j|j||d|jd<||tddS)Ncs dSrrr(rr(r)rrz9ComboboxTest.test_configure_postcommand..rrr)rrIrPrrr#rrJr(rr)test_configure_postcommands    z'ComboboxTest.test_configure_postcommandcsfdd}jdtdkr$dnd|ddjjddd d jdd jdd jddgd jd<jd |d djd|ddjd|ddjddjd<|ddjjgddjdjrdndgdjd<jdjr>dndgdjd<jdjrjdndt j jjt jdt j jjdt j jgdd}|djrdnd|dS)Ncs(j|j|dSr[)r#rrcurrent)ZgetvalZcurrvalrJr(r)check_get_currentsz=ComboboxTest.test_configure_values..check_get_currentrrr.r(rrOmon tue wed thurZmonZtueZwedZthurr-*gQ @rrrrcrrMrrd)rrMrrrrrMr1r21 {} 2za bza bza b{a b} {a b} {a b}za\tbz"a"z} {a\\tb {"a"} \}\ \{rrMrrrr1 2 {})r#rrr5setr configure wantobjectsrUrVrrrrrHr)r&rZcombo2r(rJr)test_configure_valuessZ                     z"ComboboxTest.test_configure_values)r>r?r@rprrrrFr"rrrrr!rcr(r(rKr)rs  rcsXeZdZdZfddZddZddZdd Zd d Zd d Z ddZ ddZ Z S)PanedWindowTest)rrhriorientr8rkrCcst||_dSr[)rErFr"panedrJrKr(r)rFs zPanedWindowTest.setUpcKstj|jfi|Sr[)rZ PanedWindowrHrmr(r(r)r" szPanedWindowTest.createcCsd|}|t|ddd}tdkr.d}|j|dd|d|jdd}|t|dddS) Nr#verticalrrr horizontalr)r#)r"r#rr r$r%r(r(r)test_configure_orient#s   z%PanedWindowTest.test_configure_orientcCst|j}t|}|tj|jj|||t|j}t|}|tj|jj|||t|j}|j||tj|jj|t|j}|j|| |j d|j d|tj|jj d|||tj|jj ddS)NrrrM) rrr$rUrVraddrrHr#pane)r&rNchildZ good_childZ other_childr(r(r)test_add.s(        zPanedWindowTest.test_addcCs`|tj|jjd|tj|jjd|jt|j|jd|tj|jjddS)Nr) rUrVrr$forgetr(rrrHrJr(r(r) test_forgetIs  zPanedWindowTest.test_forgetcCst|tj|jjdd|tj|jjdd|tj|jjddt|j}t|j}t|j}|tj|jjd||jd||jd|||j t |t |f|jd|||j t |t |f|jd|||j t |t |t |f|j }|jd||||j |j||||j t |t |t |fdS)Nrr) rUrVrr$rrrrHr#panesr)r&r*child2child3r.r(r(r) test_insertQs.      zPanedWindowTest.test_insertcCs|tj|jjdt|j}|j|| |jdt | |jjddd|j r\dnd| |jdd|j r|dnd| |jd|jt ||jtj|jjddddS)Nrweightr,r3Z somevalue)Z badoption)rUrVrr$r)rrrHr(assertIsInstancedictr#r r)r&r*r(r(r) test_paness     zPanedWindowTest.test_panecCs|tj|jjd|tj|jjd|tj|jjdtj|jdd}|jj|dd|tj|jjdtj|jdd}|j||tj|jjd|jjdd d |jd}|jdd | ||jd| |jdt dS) NrrrrDrr2bTZboth)expandfilli) rUrVrr$Zsashposrrr(rIassertNotEqualr4rR)r&r*r/Zcurr_posr(r(r) test_sashposs  zPanedWindowTest.test_sashpos) r>r?r@rprFr"r'r+r-r1r6r<rcr(r(rKr)r"s  "r"c@s(eZdZdZddZddZddZdS) RadiobuttonTest)rrrrhrr+r`r8rkrDrrtvaluerrCcKstj|jfi|Sr[)r RadiobuttonrHrmr(r(r)r"szRadiobuttonTest.createcCs |}||ddddddS)Nr>rrrrrr6r(r(r)test_configure_valuesz$RadiobuttonTest.test_configure_valuecs6gfdd}t|j}tj|j||dd}tj|j||dd}|jrTdd}nt}|}||d|||d | || ||j |d | d |d <|}|t |d |td|||d | || ||j |d |t |d t |d dS) NcsddSrrr(rr(r)rs z6RadiobuttonTest.test_configure_invoke..cb_testr)rrr>rcSs|Sr[r(rr(r(r)rrz7RadiobuttonTest.test_configure_invoke..rr>rrr)rVZIntVarrHrr?r rRrr#rrrrrrr)r&rZmyvarrZcbtn2convrr(rr)test_configure_invokes8         z%RadiobuttonTest.test_configure_invokeN)r>r?r@rpr"r@rCr(r(r(r)r=sr=c@s(eZdZdZddZddZddZdS) MenubuttonTest)rrrh directionrmenur+r`r8rkrDrrtrCcKstj|jfi|Sr[)rZ MenubuttonrHrmr(r(r)r"szMenubuttonTest.createc Cs"|}||dddddddS)NrEZaboveZbelowleftrightflushrr6r(r(r)test_directions zMenubuttonTest.test_directioncCs4|}tj|dd}|j|d|td|dS)NrF)rrB)r"rVZMenur5rr)r&r'rFr(r(r)test_configure_menusz"MenubuttonTest.test_configure_menuN)r>r?r@rpr"rJrLr(r(r(r)rDsrDcsheZdZdZeZdZfddZddZddZ d d Z d d Z d dZ ddZ ddZddZZS) ScaleTest) rrrhfromlengthr#r8rktor>rr&cs,t||_|j|jdSr[)rErFr"scalerIrPrJrKr(r)rFs   zScaleTest.setUpcKstj|jfi|Sr[)rZScalerHrmr(r(r)r"szScaleTest.createcCs"|}|j|dddddddS)NrNr-@333333.@FrKr"ZcheckFloatParamr6r(r(r)test_configure_fromszScaleTest.test_configure_fromcCs |}||ddddddS)NrOgffffff`@g33333`@Z5ir"checkPixelsParamr6r(r(r)test_configure_lengthszScaleTest.test_configure_lengthc Cs$|}|j|ddddddddS)NrP,rRrSFrKrTr6r(r(r)test_configure_toszScaleTest.test_configure_toc Cs$|}|j|ddddddddS)Nr>rZrRrSr[FrKrTr6r(r(r)r@szScaleTest.test_configure_valuecsgd|jdfdd}d|jd<d|jd<d|jd <|gd|jjd d d |jjd dd |jjdd|dS)N)rrrz<>csSr[)poprZfailurer(r)rrz-ScaleTest.test_custom_event.. rNfrom_rrPrMr.)r`rPr)rP)rQrrr)r&Zfuncidr(r^r)test_custom_events    zScaleTest.test_custom_eventcCs|jrdd}nt}|j}||j|d|jd|||jdd||jd||j|jdd|jd<||j|jd|tj|jjdd|tj|jjdddS) NcSs|Sr[r(rAr(r(r)rrz$ScaleTest.test_get..rrPrNr>r) r floatrQrSr#rrUrVr)r&rBZ scale_widthr(r(r)test_gets  $ zScaleTest.test_getcCsz|jrdd}nt}||jd}|d}|j||||j|||jd}|j|d|||j|t|j}||jd<||d|||j||||j|d~t |d|jd <|||j|d|||j||jd |||jd d ||||j|j d || tj |jjddS) NcSs|Sr[r(rAr(r(r)r)rz$ScaleTest.test_set..rPr_rNrrr.r>r) r rdrQrr#rrVZ DoubleVarrHrrSrUr)r&rBmaxZnew_maxminvarr(r(r)test_set's.      zScaleTest.test_set)r>r?r@rpr rer9rFr"rUrYr\r@rbrerircr(r(rKr)rMs rMc@sHeZdZdZeZdZddZddZddZ d d Z d d Z d dZ dS)ProgressbarTest) rrhr#rOmodemaximumZphaser8rkr>rr&cKstj|jfi|Sr[)rZ ProgressbarrHrmr(r(r)r"VszProgressbarTest.createcCs|}||dddddS)NrOgfffffY@gYL@Z2irWr6r(r(r)rYYsz%ProgressbarTest.test_configure_lengthc Cs$|}|j|ddddddddS)Nrlfffffb@lS@rr[FrKrTr6r(r(r)test_configure_maximum]sz&ProgressbarTest.test_configure_maximumcCs|}||ddddS)NrkZ determinateZ indeterminaterr6r(r(r)test_configure_modeasz#ProgressbarTest.test_configure_modecCsdSr[r(rJr(r(r)test_configure_phaseesz$ProgressbarTest.test_configure_phasec Cs$|}|j|ddddddddS)Nr>rmrnrr[FrKrTr6r(r(r)r@isz$ProgressbarTest.test_configure_valueN) r>r?r@rpr rer9r"rYrorprqr@r(r(r(r)rjLsrjrz"ttk.Scrollbar is special on MacOSXc@seZdZdZdZddZdS) ScrollbarTest)rrrhr#r8rkr%cKstj|jfi|Sr[)rZ ScrollbarrHrmr(r(r)r"xszScrollbarTest.createNr>r?r@rpr9r"r(r(r(r)rrosrrcspeZdZdZfddZddZddZdd Zd d Zd d Z ddZ ddZ ddZ ddZ ddZZS) NotebookTest)rrhrir+r8rkrCcs\t|jdd|_t|j|_t|j|_|jj |jdd|jj |jdddS)Nrr+rr7r8) rErFr"nbrrrHchild1r/r(rJrKr(r)rFs  zNotebookTest.setUpcKstj|jfi|Sr[)rZNotebookrHrmr(r(r)r"szNotebookTest.createc Cs:|jd|j|j|tj|jj|j| |j dd|j |j| |j dd|j |j| |jd|jj |jdd|j|jtjdkrd}nd }| |j||jdtd d d D]B}z&|jjd |dddkrWq6Wqtjy(Yq0q|d dS)Nrrrrrr7rz@20,5z@5,5r.rz@%d, 5zTab with text 'a' not found)rvr,hider/rUrVrtabrwr#indexr(selectrrIrPrrrangefail)r&Ztb_idxir(r(r)test_tab_identifierss,     z!NotebookTest.test_tab_identifierscCsd|tj|jjd|tj|jjd|tj|jjd|tj|jjd|jtj|jjt|jdd|j }|j|j |j|j | |j |t|j}|jj|dd|j }|j d}|j |j }|j|j |j|j | |j || |j |j || t|j |j || |j d|ddS) NrOr^option)unknownrr7rr)rUrVrrvrxr(rrrHtabsrwr#rzr/r)r&rr*ZcurrZ child2_indexr(r(r)test_add_and_hiddens,    z NotebookTest.test_add_and_hiddencCs|tj|jjd|tj|jjd|tj|jjd|j}|j|j}|j|j|t |j|j| t |dt |j|j |j| |j|jd| ||j|jdS)NrOr^r)rUrVrrvr,rrzrwZ assertNotInrr#rr(r;)r&rZ child1_indexr(r(r)r-s zNotebookTest.test_forgetcCs|tj|jjd|tj|jjd||jdt||j|jd||j|j d||jdddS)NrOrrrrM) rUrVrrvrzr4rRr#rwr/rJr(r(r) test_indexs zNotebookTest.test_indexcCs|j}|jd|d||j|d|df|j|j|j||j||jd|j||j|d|df|jdd||j||tj|jjd|d|tj|jjd|dt |j }|jd|||j|dt ||df|j |||j||j|j|||jt |f||j ||tj|jjd||tj|jjd||tj|jjdd|tj|jjdd|tj|jjdddS)NrrrrMrO)rvrrr#rwr/rUrVrrrrHrr,)r&rr0r(r(r)r1s0  $  zNotebookTest.test_insertcs|j|jgg|jdfdd|jdfdd||jt|j|j|j| ||jt|j|j| dS)Nzcs dSrrrrr(r)rrz*NotebookTest.test_select..z<>cs dSrrr) tab_changedr(r)rr) rvrIrPrwrr#r{rr/rrJr()rrr) test_selects     zNotebookTest.test_selectcCs|tj|jjd|tj|jjd|tj|jjd||j|jt||jj|jddd||j|jdd|jj|jdd||jj|jddd||j|jdddS)NrOZnotabr7rrDabc) rUrVrrvryr4rwr5r#rJr(r(r)test_tabszNotebookTest.test_tabcCsH|t|jd|j|j|j|j||jddS)NrMr()r#rrvrr,rwr/rJr(r(r)test_configure_tabssz NotebookTest.test_configure_tabscCs|j|j|jdtjdkr.dnd}||jdd|t|jdd|j |j d||jt |j |j |j d||jt |j |j |j d||jt |j |jj|j ddd |jj|j d dd |j|j ||jdd|t|jddtjdkrVd }d }nd }d}|j |||jt |j |j |||jt |j dS)Nrrrrr.z zr)rDrtruzzzz)rvrIrPr{rrr#rQr Z focus_forcerrr/rwryZenable_traversal)r&Zfocus_identify_asZbeginrr(r(r)test_traversal's<              zNotebookTest.test_traversal)r>r?r@rprFr"rrr-rr1rrrrrcr(r(rKr)rt|s    rtcseZdZdZejdkrdndZfddZddZd d Z d d Z d dZ ddZ ddZ ddZddZddZddZZS) SpinboxTest)rrrrhrrrformatrN incrementrrrr`r8rkrrPrrrrCwraprrz Spinbox.fieldrcs"t||_|jdSr[)rErFr"spinrIrJrKr(r)rFYs  zSpinboxTest.setUpcKstj|jfi|Sr[)rSpinboxrHrmr(r(r)r"^szSpinboxTest.createcCsp|j}|j}|d}|dd}||j||d|jjd||d|jjd||d|jdS)Nr.rMz .*uparrow\ZrrrrrSrTrrQrrr&rCrirrr(r(r)_click_increment_arrowas   z"SpinboxTest._click_increment_arrowcCsp|j}|j}|d}|dd}||j||d|jjd||d|jjd||d|jdS)Nr.rMrrrrrrr(r(r)_click_decrement_arrowks   z"SpinboxTest._click_decrement_arrowcsgfdd|jd<|j||j|||tdd|jd<|j|||j|tddS)Ncs dSrrr(rr(r)rxrz4SpinboxTest.test_configure_command..rrMr)rrPrrrr#rrrJr(rr)test_configure_commandus      z"SpinboxTest.test_configure_commandcCsbd|jd<d|jd<|jd|j|||jd|||jddS)NrrNr.rPrr/)rrrPrr#rrJr(r(r)r\s    zSpinboxTest.test_configure_tocCsbd|jd<d|jd<|jd|j|||jd|||jddS)NrrNr_rPrMr)rrrPrr#rrJr(r(r)rUs    zSpinboxTest.test_configure_fromcCsd|jd<d|jd<d|jd<|jd|j|||jdd |jd<|j|||jd dS) NrrNr_rPrrrr/rM3)rrrPrr#rrrJr(r(r)test_configure_increments       z$SpinboxTest.test_configure_incrementcCs|jdd|jd<|j||j}|t|d||ddd|jd<|j||j}|d|v|t|ddS)Nrz%10.3frr_.rr) rrrPrrr#rrzr)r&r>r(r(r)test_configure_formats       z!SpinboxTest.test_configure_formatcCsd|jd<d|jd<|jdd|jd<|j|||jd|||jdd |jd<|j|||jddS) Nr_rPrrNTr10rF)rrrPrr#rrrJr(r(r)test_configure_wraps       zSpinboxTest.test_configure_wrapcCs|||jdtdkrdnd|j|jdddd||jdd||jdd||jddgd |jd<|jd |j|||jd |||jd |jj gd d ||jd|j rdndgd|jd<||jd|j rdndgd|jd<||jd|j r:dndt j |j gdd }||d|j rjdnd|dS)Nrr r(rr r r-r rrrrrrrrrrrrrr)r#rrr5rrPrrrrr rrrHr)r&Zspin2r(r(r)r!sH           z!SpinboxTest.test_configure_values)r>r?r@rprrrrFr"rrrr\rUrrrr!rcr(r(rKr)rNs     rcseZdZdZfddZddZddZdd Zd d Zd d Z ddZ ddZ ddZ ddZ ddZddZddZddZddZd d!Zd"d#Zd$d%Zd&d'Zd(d)Zd*d+Zd,d-Zd.d/ZZS)0 TreeviewTest) rcolumnsrhdisplaycolumnsrir+ selectmoderr8rkrZyscrollcommandcst|jdd|_dS)Nrru)rErFr"tvrJrKr(r)rFs zTreeviewTest.setUpcKstj|jfi|Sr[)rZTreeviewrHrmr(r(r)r" szTreeviewTest.createcCs:|}|j|dddd||dd||dddS)Nra b crr8rr-rr4r6r(r(r)test_configure_columns s  z#TreeviewTest.test_configure_columnscCs|}d|d<|j|dddd||dd|j|dddd||dd |j|dd d d |j|dd dd |j|dddd dS)Nrrrzb a c)r8rrr-#all)r)rMrr)rr8rzInvalid column index dr)rrMrzColumn index 3 out of bounds)rrazColumn index -2 out of bounds)r"r5r$r6r(r(r)test_configure_displaycolumnss&     z*TreeviewTest.test_configure_displaycolumnsc Cs8|}|j|ddddddd|j|ddd tddS) NrirrrZ3cFrKrr)r"rXr r6r(r(r)r$sz"TreeviewTest.test_configure_heightcCs|}||dddddS)NrrZbrowseZextendedrr6r(r(r)test_configure_selectmode)sz&TreeviewTest.test_configure_selectmodecCs^|}|j|dddd||dd||dd|j|dddd|j|ddd ddS) Nrz tree headings)treeheadingsr-)rrr)rr)rr4r6r(r(r)r.s z TreeviewTest.test_configure_showcCs|j||jdd|j|jdd}|j}|||j|d}||dg|jd<|jj ddd|j|dd}|jj ddd}|j st |}||d|d||j|d}||j|ddS) Nrrrtestr2rC#0) rrIr#rrPr get_childrenrrcolumnr rR)r&item_idZchildrenrZ bbox_column0Z root_widthrwr(r(r)r7s"      zTreeviewTest.test_bboxcCs||jd|jdd}||jt||jd||jdd}|jdd}|j|||||j|||f|tj |jj|||j|||j|d|jd||jddS)Nr(rrr) r#rrrr4tupleZ set_childrenrUrVr)r&rr/r0r(r(r) test_childrenPs   zTreeviewTest.test_childrencCs||jdt|jr2||jjdddt|jjddd||jdd|jr\dnd||jjddd|jr~dnd|jtj |jjddd|tj |jjdd d id d id d idd idd ig}|D] }|jtj |jjdfi|qdS)Nrrr_rCrXidrZunknown_optionz some valueZstretchZwrongrZminwidth) r4rrr5r rRr#rUrVr)r&Z invalid_kwsr\r(r(r) test_columnks&   zTreeviewTest.test_columncCs|tj|jjd|jdd}|j|d}||j|f||j||f|j|||j|tj|jj |dd|jdd}|jdd}||j||f|j||||jdS)Nrrr) rUrVrrrrr#rrreattach)r&ritem2item1r(r(r) test_deletes  zTreeviewTest.test_deletecCs|jdd}|j|d}|j}|j|||j||j|f||j||f|j|||j|j|dd||j|f||j||f|j|dd||j||f||j|d|t j |jjddd|t j |jjd|t j |jj|dd|t j |jj|dd|j||||jd||j|ddS)Nrrr(Z nonexistentZ otherparentr) rrrdetachr#rrmoverUrVr)r&rrprevr(r(r)test_detach_reattachs<      z!TreeviewTest.test_detach_reattachcCsT||jdd||jdd||jid|tj|jjddS)NZ somethingFrT)r#rexistsrUrVrrJr(r(r) test_existsszTreeviewTest.test_existscCst||jd|jdd}|j|||j||j|||jd|tj|jjddS)Nrrr^)r#rrrrrUrVr)r&rr(r(r) test_focuss  zTreeviewTest.test_focuscCs||jdt|jjddd||jddd||jjdddd|jtj|jjddd|jtj|jjddddS)Nrr^r7rD)rr)r)r4rheadingr5r#rUrVrrJr(r(r) test_headingszTreeviewTest.test_headingcsfdd}gjjjdfdddjjdddj|d d sdd gjjj}jjdtjjdddd |jjj|d d sd dS) NcsNtdkr2j|dj||dtj||jdS)N)rrrr)rr#rZidentify_columnZidentify_regionr rPrrJr(r)simulate_heading_clicks zBTreeviewTest.test_heading_callback..simulate_heading_clickrcs dSrrr(rr(r)rrz4TreeviewTest.test_heading_callback..rrrr.z>The command associated to the treeview heading wasn't invoked.) rrIrrrPr}rZ _tclCommandsrr#)r&rcommandsr()r&rr)test_heading_callbacks         z"TreeviewTest.test_heading_callbackcCsL|tj|jjd||jdd|jdd}|jdd}|j|d}|j|d}||j|d||j|d||j|d||j|d|j|dd||j|d||j|d|j|||j|d|j|||j|d|j ||tj|jj|dS)NZwhatrrrr) rUrVrrrzr#rrrr)r&rrc1c2r(r(r)rs&   zTreeviewTest.test_indexc Cs|tj|jjdd|jtj|jjdddd|jtj|jjdddd||j|jjdddd||j|jjdddd|tj|jjdd|jddd }||d |tj|jjddd |tj|jjddtd d }|jjdd|fd }||j |d |j r&|fn|||jj |dd |j rL|fn||jj ||j |jj |dd d ||jj |dd |j r|fn|| |j |t|jj |dd ||jj |dd |jjddd d|gd}||jj |dd|j rdd|fnd||jj |gd||jj |dd|jj |dd||jj |dd|j rpdnd|jjdddd||ffd }||jj |dd |j rdd||ffn d||f||jj |jjddddddd||jj |jjdd|ddd||jddd}||d|jddd}||d|tj|jjddd|tj|jjddddS)Nrrr)openZpleaseTFZmiddlez first-itemuábarrrrMtagsrrz1 2 %srrM)rrz1 2rz%s %sz{a b c} {%s %s}z Label herer7rr,gz0.0)rUrVrrrrrr#ritemr rHZ splitlistr4r5)r&Zitemidr>rr(r(r)test_insert_item-s   $       zTreeviewTest.test_insert_itemcCs|t|jjd|tj|jjd|tj|jjd|tj|jjd|tj|jj d|j dd}|j dd}|j |d}|j |d}|j |d}| |jd|j||| |j||f|j|| |j|f|j||| |j|||f|j|| |j||||f|j| |j||||f|j||| |j|||f|j|| |j||f|j| |j||f|j ||| |j||f|j || |j|f|j | |j|f|jj dddd|jd| |jd|jj ddd d|jd | |jd |jj ddd d|jd | |jd |jj ddd d|jd | |jd|j| |jd|j||f| |j||f|j||f| |j|||f|j||f| |j||f|j ||f| |j||fdS)Nrrrrr( with spacesr)r{brace)r unicode€)rsbytes€)u bytes€) rU TypeErrorrZ selectionrVrZ selection_setZ selection_addZselection_removeZselection_togglerr#)r&rrrrZc3r(r(r)test_selectionysn            zTreeviewTest.test_selectioncCsddg|jd<|jjddddgd}||j|ddd |j|dd||jj|dd|jrjd nd dg|jd<||j|ddi|j|dd||jj|dd d||jj|dd|jrd nd|j|dd||j|d|jr dnd||jj|dd|jr.dnd||j||jrRddinddi|tj|jj|d|tj|jj|dd|tj|jjddS)NABrrrrr8r)rr)rrza a)r)r8rzb a{Z123)rrz123 aZnotme) rrr#rrr rUrVr)r&rr(r(r)ris6   zTreeviewTest.test_setc s8g|jjdddgd}|jjdddgd}|jddfdd|jddfd d|j|jt}t}td d d D]@}t|d krq|j|}|r||vr| || |q| t|d |D]}t |jd |q| tdt ddd ddd D]}| |dq dS)Nrrcallrrcs dSrrreventsr(r)rrz,TreeviewTest.test_tag_bind..rcs dS)NrMrrrr(r)rrrrr_rMrrr) rrZtag_bindrIrPrr|rZ identify_rowr(r#r zip) r&rrZpos_yfoundr~rrrr(rr) test_tag_binds4           "zTreeviewTest.test_tag_bindcCs|t|jj|jtj|jjddd|jjddd|t|jddd|t|jjdddd||jdt dS)NrZblue)Zsky)rr) rUrrZ tag_configurerVrr#rr4r5rJr(r(r)test_tag_configureszTreeviewTest.test_tag_configurecCs |jjddddgd}|jjddddgd}|t|jj|t|jjdd||jd|||jd|||jd|||jd|||jd |||jd |||jd|f||jd|f||jd d dS) NrrzItem 1Ztag1)rDrzItem 2Ztag2z non-existingZtag3r() rrrUrZtag_hasrrrr#)r&rrr(r(r) test_tag_has szTreeviewTest.test_tag_has)r>r?r@rprFr"rrrrrrrrrrrrrrrrrrirrrrcr(r(rKr)rs0  ) #LF   rc@seZdZdZdZddZdS) SeparatorTest)rrhr#r8rkr&cKstj|jfi|Sr[)rZ SeparatorrHrmr(r(r)r"#szSeparatorTest.createNrsr(r(r(r)rsrc@seZdZdZddZdS) SizegripTest)rrhr8rkcKstj|jfi|Sr[)rZSizegriprHrmr(r(r)r".szSizegripTest.createNror(r(r(r)r'src@seZdZddZddZdS)DefaultRootTestcCs|tjdSr[) _test_widgetrrlrJr(r(r) test_frame4szDefaultRootTest.test_framecCs|tjdSr[)rrrrJr(r(r) test_label7szDefaultRootTest.test_labelN)r>r?r@rrr(r(r(r)r2sr__main__)5ZunittestrVrrZ test.supportrrrZtest.test_ttk_textonlyrZtkinter.test.supportrrr r r Ztkinter.test.widget_testsr r rrrrrrZTestCaserArdrfrqrrrrrrr"r=rDrMrjZskipIfrrrrtrrrrrZ tests_guir>mainr(r(r(r)s $'8 !0}3i"  R0