o =?h@sddlZddlZddlZddlZGdddZGdddZddZdd ZddlZe e e ej d Zd d Zdad dZdddddZddZddZddZdS)Nc@s4eZdZeddZeddZddZddZd S) AbstractTkTestcCsdtj|_ttt|_|j|_|jdz |j ddWdStj y1YdSw)NZnormalz-zoomedF) tkinter_support_default_root_old_support_default_rootdestroy_default_root NoDefaultRootZTkroot wantobjectsZwm_stateZ wm_attributesZTclErrorclsr ;/opt/alt/python310/lib64/python3.10/tkinter/test/support.py setUpClasss   zAbstractTkTest.setUpClasscCs*|j|j|`dt_|jt_dSN)rupdate_idletasksdestroyr _default_rootrrr r r r tearDownClasss   zAbstractTkTest.tearDownClasscCs|jdSr)rZ deiconifyselfr r r setUpszAbstractTkTest.setUpcCs&|jD]}|q|jdSr)rZwinfo_childrenrZwithdraw)rwr r r tearDown"s zAbstractTkTest.tearDownN)__name__ __module__ __qualname__ classmethodrrrrr r r r rs   rc@s$eZdZddZddZddZdS)AbstractDefaultRootTestcCs tj|_tdt_tj|_dS)NT)rrrrr rr r r r*s zAbstractDefaultRootTest.setUpcCstdt_|jt_dSr)rrrrrrr r r r0s z AbstractDefaultRootTest.tearDowncCsj|}|tj||jtj||jtjj|tt| t || t tddSNr) ZassertIsNotNonerrZassertIsZmasterZtkrrrZ assertRaises RuntimeErrorZ assertFalsehasattr)r constructorxr r r _test_widget5s  z$AbstractDefaultRootTest._test_widgetN)rrrrrr#r r r r r(s rcCs.ttddrtjtjdt_dSdSr)getattrrrrrr r r r rBs    rcCsD|jdddd|jd||d|jd||d|jd||ddS)zYGenerate proper events to click at the x, y position (tries to act like an X server).zr)r"yzzzN)Zevent_generate)Zwidgetr"r%r r r simulate_mouse_clickHsr&.c s<tdkrttkddttSfdd}|S)Nrequires Tcl version >= r'cstfdd}|S)Ncs0tkr|ddtt|dS)Nr)r')get_tk_patchlevelZskipTestjoinmapstrr)testversionr r newtestZs  z+requires_tcl..deco..newtest) functoolswraps)r.r0r/)r.r decoYszrequires_tcl..deco)lenunittestZ skipUnless tcl_versionr+r,r-)r/r4r r3r requires_tclTs   r8cCstdurFt}|dd}td|}|\}}}}t|t|t|}}}dddd|}|dkr?||||dfatS||d||fatS) Ninfo patchlevelz(\d+)\.(\d+)([ab.])(\d+)ZalphaZbetafinal)abr'r)_tk_patchlevelrZTclZcallre fullmatchgroupsint)Ztclr:mmajorminor releaselevelserialr r r r*ds  r*gbX<@HgjZ@)cirCpcCs t|ddt|ddS)N)floatunits)valuer r r pixels_convzs rQcCsn||krdSt|tjrt|trt||kSt|tr5t|tr5t|t|ko4tddt||DSdS)NTcss|] \}}t||VqdSr) tcl_obj_eq).0ZactZexpr r r sztcl_obj_eq..F) isinstance_tkinterZTcl_Objr-tupler5allzipZactualZexpectedr r r rR}s     rRcCs@||krdSt|ttjfrt|ttjfrt|t|kSdS)NTF)rUr-rZWidgetrZr r r widget_eqs r[)r1r?rr6rrrr&rVrWr,rBZ TCL_VERSIONsplitr7r8r>r*rOrQrRr[r r r r s*"