a 4êdg+ã@s¦ddlZddlZddlZddlmZddlmZmZddlmZm Z edƒGdd„deej ƒZ Gdd „d eej ƒZ Gd d „d e ej ƒZ e e e fZed kr¢eeŽdS) éN)Úttk)ÚrequiresÚ run_unittest)ÚAbstractTkTestÚAbstractDefaultRootTestZguicsDeZdZ‡fdd„Zdd„Zdd„Zdd„Zd d „Zd d „Z‡Z S) ÚLabeledScaleTestcs|j ¡tƒ ¡dS©N)ÚrootÚupdate_idletasksÚsuperÚtearDown©Úself©Ú __class__©úA/usr/local/lib/python3.9/tkinter/test/test_ttk/test_extensions.pyr s zLabeledScaleTest.tearDowncCsþt |j¡}|jj}| ¡| tj|j j |¡t  |j¡}|j}tj|j|d}| ¡|j rz|  |j   |¡| ¡¡n|  t|j   |¡ƒ| ¡¡~| tj|j j |¡t |j¡}tj|j|d}| ¡tj|j|dttdƒrú| tjtj¡dS)N©ÚvariableÚ last_type)rÚ LabeledScaler Ú _variableÚ_nameÚdestroyÚ assertRaisesÚtkinterÚTclErrorÚtkÚ globalgetvarÚ DoubleVarÚ wantobjectsÚ assertEqualÚgetÚfloatZIntVarÚhasattrÚsysÚassertNotEqualr)rÚxÚvarÚmyvarÚnamerrrÚtest_widget_destroys&    z$LabeledScaleTest.test_widget_destroycsît ˆj¡}t |¡}ˆ |j|¡| ¡ddddtj dtj dfddf}|D]2}tjˆj|dd }ˆ |j |d¡| ¡qRtjˆjdd }ˆ  t tj f|jj¡| ¡tjˆjd d }tjˆj|d }ˆ |j d¡| ¡tjˆj|d d}ˆ |j d ¡ˆ |jj|j¡| ¡‡fdd„}tjˆjdd}||jd|jdƒ| ¡tjˆjdd}||jd|jdƒ| ¡tjˆjdd}||jd|jdƒ| ¡t ˆj¡}||jd|jdƒ| ¡ˆj tj tj|dddS)N)Ú0r)rr)é r-)éÿÿÿÿr.é)g@é)z2.5r0r)Úfrom_é)Úvaluergà?)rr1cs,ˆ | ¡d|¡ˆ | ¡d|¡dS)NZsideÚanchor)r!Z pack_infoÚ place_info)ÚscaleZ scale_posÚlabelZ label_posr rrÚcheck_positionsOsz=LabeledScaleTest.test_initialization..check_positionsÚtop)ZcompoundZbottomÚnÚsÚunknownÚb)Úa)rZFramer rrr!Úmasterrr%Úmaxsizer3rÚ ValueErrorrrr"rrr6r7)rr?r'Zpassed_expectedZpairr)r8rr rÚtest_initialization1sJ  þ   z$LabeledScaleTest.test_initializationcCsötj|jddd}| ¡| ¡|j ¡}|j ¡d}|  |t |dƒ¡|jj ddd| ¡|j ¡d}|  ||¡|j ¡}|  |jd|j r dnd¡|  |t |dƒ¡|jj ddd|  ||¡|  |t |dƒ¡| ¡dS) Nrr-)r1Útor'éûÿÿÿéÚtextr,)rrr ÚpackÚupdater7r5r6Úcoordsr!ÚintZ configurer&r r)rZlscaleZlinfo_1Z prev_xcoordÚ curr_xcoordZlinfo_2rrrÚtest_horizontal_rangeds"    z&LabeledScaleTest.test_horizontal_rangecCs²t |j¡}| ¡| ¡|j ¡d}|jd}||_| ¡| |j|¡| |j d|j rf|nt |ƒ¡| t |j  ¡ƒ|¡| |j ¡d|¡| |j ¡dt|j  ¡dƒ¡|j rÐdd„}nt}||jdƒd|_| ¡| |j|¡| ||j dƒ|¡| t |j  ¡ƒ|¡| |j ¡dt|j  ¡dƒ¡|d|_}| ¡| |jt|ƒ¡| ||j dƒt|ƒ¡| t |j  ¡ƒ|¡| ¡dS) Nrr/rFr'cSs|Srr)r'rrrÚ–óz7LabeledScaleTest.test_variable_change..rCgø?)rrr rGrHr6rIr3r!r7r Ústrr#r"Z assertGreaterrJr5r)rr'rKZnewvalÚconvrrrÚtest_variable_changesB   ÿÿ ÿz%LabeledScaleTest.test_variable_changecCs°t |j¡}|jddd| ¡|j ¡|j ¡}}|d|d}}d|_| ¡|j  d||f¡|  t |j   ¡dƒ|j ¡d¡|j  d||f¡| ¡dS) NTZboth)ÚexpandÚfillr0éz%dx%dr'r)rrr rGrHr?Z winfo_widthZ winfo_heightr3Z wm_geometryr!rJr7r5r6rIr)rr'ÚwidthZheightZ width_newZ height_newrrrÚ test_resize«s  ÿzLabeledScaleTest.test_resize) Ú__name__Ú __module__Ú __qualname__r r+rBrLrQrVÚ __classcell__rrrrr s  !3*rcsHeZdZ‡fdd„Z‡fdd„Zdd„Zdd„Zd d „Zd d „Z‡Z S) ÚOptionMenuTestcstƒ ¡t |j¡|_dSr)r ÚsetUprÚ StringVarr Útextvarr rrrr\Às zOptionMenuTest.setUpcs|`tƒ ¡dSr)r^r r r rrrr ÄszOptionMenuTest.tearDowncCsbt |j¡}t |j|¡}|j}| ¡| ¡| |j   |¡|  ¡¡~|  tj |j j |¡dSr)rr]r rÚ OptionMenurr rr!rrr"rr)rr(Úoptmenur*rrrr+És z"OptionMenuTest.test_widget_destroycCsl|jtjtj|j|jddt |j|jddd¡}| |j  ¡d¡|  |d¡|  |d¡|  ¡dS)NÚthing)Úinvalidr=r>ÚmenuZ textvariable) rrrrr_r r^r!rr"Ú assertTruer)rr`rrrrBÔsÿz"OptionMenuTest.test_initializationc s d‰d}tjˆjˆj|gˆ¢RŽ}d}ttˆƒƒD]0}|d |d¡}ˆ |ˆ|¡||kr2d}q2ˆ |¡|  ¡d}tjˆjˆj|gˆ¢RŽ}d}d}||d  |d¡}}||kr¼qÒˆ  ||¡|d 7}qœˆ |tˆƒ¡|  ¡|d  d¡ˆ |j ¡ˆd¡ˆ tj|dj d ¡ˆ |j ¡ˆd¡|  ¡g‰‡‡‡fd d „}tjˆjˆjdgˆ¢Rd |iŽ}|d  d ¡ˆs”ˆ d¡|  ¡dS)N©r>r=Úcr>Frcr3TÚdrr/r.csˆ |ˆd¡ˆ d¡dS)Nr/T)r!Úappend)Úitem©ÚitemsrÚsuccessrrÚcb_test sz)OptionMenuTest.test_menu..cb_testZcommandzMenu callback not invoked)rr_r r^ÚrangeÚlenÚ entrycgetr!rdrZentryconfigurer&rGÚinvokerr"rrrZfail) rÚdefaultr`Z found_defaultÚir3ZcurrZlastrmrrjrÚ test_menuásH   ÿ zOptionMenuTest.test_menucCsæd}d}tj|j|j|g|¢RŽ}t |j¡}tj|j||g|¢RŽ}| ¡| ¡|d d¡|d d¡|d dd¡}|d dd¡}|  ||¡|  |jj   |¡|d¡|  |jj   |¡|d¡|  ¡|  ¡dS)Nrer>rcr/r0rr)rr_r r^rr]rGrqrpr&r!rrr)rrkrrr`Ztextvar2Zoptmenu2Zoptmenu_stringvar_nameZoptmenu2_stringvar_namerrrÚtest_unique_radiobuttonss, ÿÿÿz'OptionMenuTest.test_unique_radiobuttons) rWrXrYr\r r+rBrtrurZrrrrr[¾s     3r[c@seZdZdd„ZdS)ÚDefaultRootTestcCs| tj¡dSr)Z _test_widgetrrr rrrÚtest_labeledscale.sz!DefaultRootTest.test_labeledscaleN)rWrXrYrwrrrrrv,srvÚ__main__)r%ZunittestrrZ test.supportrrZtkinter.test.supportrrZTestCaserr[rvZ tests_guirWrrrrÚs 5n