a ze.@sddlZddlZddlZddlmZddlmZmZddlmZm Z edGdddeej Z Gdd d eej Z Gd d d e ej Z ed kredS) N)ttk)requires gc_collect)AbstractTkTestAbstractDefaultRootTestZguicsDeZdZfddZddZddZddZd d Zd d ZZ S) LabeledScaleTestcs|jtdSN)rootupdate_idletaskssupertearDownself __class__Y/opt/bitninja-python-dojo/embedded/lib/python3.9/tkinter/test/test_ttk/test_extensions.pyr s zLabeledScaleTest.tearDowncCs t|j}|jj}|t|tj |j j |t |j}|j}tj|j|d}||j r||j ||n|t|j ||~t|tj |j j |t|j}tj|j|d}|tj|j|dttdr|tjtj dS)Nvariable last_type)r LabeledScaler _variable_namedestroyr assertRaisestkinterTclErrortk globalgetvar DoubleVar wantobjects assertEqualgetfloatZIntVarhasattrsysassertNotEqualr)rxvarmyvarnamerrrtest_widget_destroys*    z$LabeledScaleTest.test_widget_destroycstj}t|}|j||ddddtj dtj dfddf}|D]2}tjj|dd }|j |d|qRtjjdd } t tj f|jj|tjjd d }tjj|d }|j d|tjj|d d}|j d |jj|j|fdd}tjjdd}||jd|jd|tjjdd}||jd|jd|tjjdd}||jd|jd|tj}||jd|jd|j tj tj|dddS)N)0r)rr) r-)r.)g@)z2.5r0r)from_)valuerg?)rr1cs,|d||d|dS)NZsideanchor)r!Z pack_info place_info)scaleZ scale_poslabelZ label_posr rrcheck_positionsQsz=LabeledScaleTest.test_initialization..check_positionstop)ZcompoundZbottomnsunknownb)a)rZFramer rrr!masterrr%maxsizer3r ValueErrorrrr"rrr6r7)rr?r'Zpassed_expectedZpairr)r8rr rtest_initialization3sJ     z$LabeledScaleTest.test_initializationcCstj|jddd}|||j}|jd}| |t |d|jj ddd||jd}| |||j}| |jd|j rdnd| |t |d|jj ddd| ||| |t |d|dS) Nrr-)r1tor'textr,)rrr packupdater7r5r6coordsr!intZ configurer&r r)rZlscaleZlinfo_1Z prev_xcoord curr_xcoordZlinfo_2rrrtest_horizontal_rangefs"    z&LabeledScaleTest.test_horizontal_rangecCst|j}|||jd}|jd}||_|||j|||j d|j rf|nt ||t |j |||jd|||jdt|j d|j rdd}nt}||jdd|_|||j||||j d||t |j |||jdt|j d|d|_}|||jt||||j dt||t |j ||dS) Nrr/rFr'cSs|Srr)r'rrrz7LabeledScaleTest.test_variable_change..rCg?)rrr rGrHr6rIr3r!r7r strr#r"Z assertGreaterrJr5r)rr'rKZnewvalconvrrrtest_variable_changesB    z%LabeledScaleTest.test_variable_changecCst|j}|jdddt||j|j}}|d|d}}d|_ ||j d||f| t |j d|jd|j d||f|dS) NTZboth)expandfillr0z%dx%dr'r)rrr rGrrHr?Z winfo_widthZ winfo_heightr3Z wm_geometryr!rJr7r5r6rIr)rr'widthZheightZ width_newZ height_newrrr test_resizes  zLabeledScaleTest.test_resize) __name__ __module__ __qualname__r r+rBrLrQrV __classcell__rrrrr s  #3*rcsPeZdZfddZfddZddZddZd d Zd d Zd dZ Z S)OptionMenuTestcstt|j|_dSr)r setUpr StringVarr textvarr rrrr\s zOptionMenuTest.setUpcs|`tdSr)r^r r r rrrr szOptionMenuTest.tearDowncCsht|j}t|j|}|j}||||j || ~t | tj|j j |dSr)rr]r r OptionMenurr rr!rrr"rrr)rr(optmenur*rrrr+s z"OptionMenuTest.test_widget_destroycCsl|jtjtj|j|jddt|j|jddd}||j d| |d| |d| dS)Nthing)invalidr=r>menuZ textvariable) rrrrr_r r^r!rr" assertTruer)rr`rrrrBsz"OptionMenuTest.test_initializationc sdd}tjjj|gR}d}ttD]0}|d|d}||||kr2d}q2|| d}tjjj|gR}d}d}||d |d}}||krq҈ |||d 7}q|t| t |dd|jdtj|djd |jd| gfd d }tjjjdgRd |i}|dd sd| dS)Nr>r=cr>Frcr3Tdrr/r.cs|dddS)Nr/T)r!append)itemitemsrsuccessrrcb_testsz)OptionMenuTest.test_menu..cb_testZcommandzMenu callback not invoked)rr_r r^rangelen entrycgetr!rdrZentryconfigurer&rGrinvokerr"rrrZfail) rdefaultr`Z found_defaultir3ZcurrZlastrmrrjr test_menusJ    zOptionMenuTest.test_menucCsd}d}tj|j|j|g|R}t|j}tj|j||g|R}|||dd|dd|ddd}|ddd}| ||| |jj ||d| |jj ||d| | dS)Nrer>rcr/r0rr)rr_r r^rr]rGrqrpr&r!rrr)rrkrrr`Ztextvar2Zoptmenu2Zoptmenu_stringvar_nameZoptmenu2_stringvar_namerrrtest_unique_radiobuttonss, z'OptionMenuTest.test_unique_radiobuttonscsgd}t|jfdd}tj|jdg|R}|d|}|dd|dg| d d|| dS) NrecsdSr)rhr")argsrlr^rrrm5sz3OptionMenuTest.test_trace_variable..cb_testr>writercr/r=) rr]r rr_rGZ trace_addrqr!r"Z trace_remover)rrkrmr`Zcb_namerrwrtest_trace_variable0s   z"OptionMenuTest.test_trace_variable) rWrXrYr\r r+rBrtruryrZrrrrr[s    4r[c@seZdZddZdS)DefaultRootTestcCs|tjdSr)Z _test_widgetrrr rrrtest_labeledscaleCsz!DefaultRootTest.test_labeledscaleN)rWrXrYr{rrrrrzAsrz__main__)r%ZunittestrrZ test.supportrrZtkinter.test.supportrrZTestCaserr[rzrWmainrrrrs 8