a oeV@sddlZddlZddlZddlZddlZddlZdZdZddiZ dZ e dZ dd Z Gd d d Zd d ZddZddZGdddejZedkrddlZejddZejdddddejdddde\ZZej redej Z ejdgee_ejed dS)!Na)GetSaveFileName print_desktop win32cred_demo win32gui_demo win32gui_dialog win32gui_menu win32gui_taskbar win32rcparser_demo winprocess win32console_demo win32clipboard_bitmapdemo win32gui_devicenotify NetValidatePasswordPolicyzcerapi desktopmanager win32comport_demo EvtSubscribe_pull EvtSubscribe_push SystemParametersInfo Zrastest)z-lTz([a-zA-Z0-9_.]*): (.*)$c Csd}|D]}|d}|dr,d}q |dr8q |rt|}|r|\}}|dd}t|dkrt|d}t ||d}qt |d}n&zt | }d }WnYdS0z t |}Wn Yn0t |t s|f}z ||} Wnd} Yn0| Sd}q dS) NFasciiz Traceback (T .rz()) splitlinesdecode startswith re_exceptionmatchgroupssplitlen __import__getattrevalstrip isinstancetuple) dataZhave_tracebacklinemexc_typeargsbitsmodexcretr3C:\Program Files\Certbot\pkgs\win32\test\testall.pyfind_exception_in_output&sD              rc@seZdZddZddZdS) TestRunnercCs||_d||_dS)NzTest Runner for cmdline {})argvformat__name__)selfr!rrr__init__VszTestRunner.__init__cCspddl}|j|j|j|jd}|\}}|j}|rltj |jd}t |}|durZ|t d|||fdS)Nr)stdoutstderrrz+%s failed with exit code %s. Output is: %s) subprocessPopenr!PIPEZSTDOUTZ communicate returncodeospathbasenamerAssertionError)r$r(poutput_rcbaseZ reconstitutedrrr__call__Zs   zTestRunner.__call__N)r# __module__ __qualname__r%r5rrrrr Usr cCsddl}g}tjtjtjtdd}tj|s@J|t|D]t}tj |\}}|t vrlt rlqJ|dksJ|t vr~qJt jtj||dft|d}|tjt|d|dqJ|S)Nrz..ZDemos.pyrz win32/demos/ description)win32apir,r-abspathjoindirname__file__isdirlistdirsplitextui_demosno_user_interaction bad_demossys executableargvsgetappendunittestFunctionTestCaser )r;rZdemo_dirnamer4extr!rrrget_demo_testsns&   rOcCsz ddl}WntyYn0ddl}tj|j}d}tj|jd}t |D]|}tj |\}}| dd}|dkrX|dkrX|r|ds|sX|dsXz t |Wnt d|Yn0|d7}qXdS)NrZ_drz.pydz_winxptheme.pydzFAILED to importr)win32ui ImportErrorr;r,r-r>r?r.endswithrArBr rprint)rPr;dirZnumZis_debugrMr4rNrrr import_alls:     rUcCszt}Wnty$tjd}Yn0tj|}ttj|}t }| t t |D]}tj|\}}|dkr`tj||kr`z t|}Wn$td|tYq`Yn0t|dr|}n t j|}| |q`tD]}| |q|S)Nrr8zFAILED to import test module %rsuite)r? NameErrorrFr!r,r-r<rAr>rKZ TestSuiteZaddTestrLrUrBr.rrS traceback print_exchasattrrVZdefaultTestLoaderloadTestsFromModulerO)mefilesrVfiler4rNrtestrrrrVs0           rVc@seZdZddZdS) CustomLoadercCs |tS)N)ZfixupTestsForLeakTestsrV)r$modulerrrr[sz CustomLoader.loadTestsFromModuleN)r#r6r7r[rrrrr`sr`__main__zTest runner for PyWin32/win32r9z-no-user-interactionF store_truezC(This is now the default - use `-user-interaction` to include them))defaultactionhelpz-user-interactionz,Include tests which require user interaction)rerfz\Note: -no-user-interaction is now the default, run with `-user-interaction` to include them.)Z testLoader) r,rerFrXrKZpywin32_testutilr rCrErHrDcompiler rr rOrUrVZ TestLoaderr`r#argparseArgumentParserparser add_argumentparse_known_argsZ parsed_argsZremainsrSZuser_interactionr!ZtestmainrrrrsN  /"