B gR޿v@sddlZddlZddlZddlZGdddZddZddZddlZee e ej dZ d d Zdad d Zd ddddZddZddZddZdS)Nc@s4eZdZeddZeddZddZddZd S) AbstractTkTestcCsftj|_ttt|_|j|_|jdy|j ddWntj k r`YnXdS)NZnormalz-zoomedF) tkinter_support_default_root_old_support_default_rootdestroy_default_rootZ NoDefaultRootZTkrootZ wantobjectsZwm_stateZ wm_attributesZTclError)clsr 9/opt/alt/python37/lib64/python3.7/tkinter/test/support.py setUpClasss   zAbstractTkTest.setUpClasscCs*|j|j|`dt_|jt_dS)N)rupdate_idletasksdestroyr _default_rootrr)rr r r tearDownClasss   zAbstractTkTest.tearDownClasscCs|jdS)N)rZ deiconify)selfr r r setUpszAbstractTkTest.setUpcCs*x|jD] }|q W|jdS)N)rZwinfo_childrenr Zwithdraw)rwr r r tearDown"s zAbstractTkTest.tearDownN)__name__ __module__ __qualname__ classmethodr rrrr r r r rs  rcCs*ttddr&tjtjdt_dS)Nr)getattrrrr r r r r r r's   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)xyzzzN)Zevent_generate)Zwidgetrrr r r simulate_mouse_click-sr.c s<tdkr,ttkddttSfdd}|S)Nzrequires Tcl version >= rcstfdd}|S)Ncs0tkr$|ddtt|dS)Nzrequires Tcl version >= r)get_tk_patchlevelZskipTestjoinmapstr)r)testversionr r newtest?s z+requires_tcl..deco..newtest) functoolswraps)r"r$)r#)r"r deco>szrequires_tcl..deco)lenunittestZ skipUnless tcl_versionrr r!)r#r'r )r#r requires_tcl9s    r+cCstdkrt}|dd}td|}|\}}}}t|t|t|}}}dddd|}|dkr|||||dfan||d||fatS) Ninfo patchlevelz(\d+)\.(\d+)([ab.])(\d+)ZalphaZbetafinal)abrr)_tk_patchlevelrZTclZcallre fullmatchgroupsint)Ztclr-mmajorminor releaselevelserialr r r rIs  rgbX<@HgjZ@)cir6pcCs t|ddt|ddS)N)floatunits)valuer r r pixels_conv_srDcCsn||kr dSt|tjr.t|tr.t||kSt|trjt|trjt|t|kohtddt||DSdS)NTcss|]\}}t||VqdS)N) tcl_obj_eq).0ZactZexpr r r ksztcl_obj_eq..F) isinstance_tkinterZTcl_Objr!tupler(allzip)actualexpectedr r r rEbs     rEcCs@||kr dSt|ttjfrs$!