a DOgX@sddlZddlZddlZddlZddlZddlZddlZddlmZmZddl m Z m Z m Z dZ edejZGddde jZd d Zd d Zd dZddZddZGdddeZeZdddZe jdfddZde je jfddZde je jfddZ dS)N)fnmatch fnmatchcase)casesuiteutilTz[_a-z]\w*\.py$cs,eZdZdZfddZfddZZS) _FailedTestNcs||_tt||dSN) _exceptionsuperr__init__)selfZ method_name exception __class__4/opt/alt/python39/lib64/python3.9/unittest/loader.pyr sz_FailedTest.__init__cs*|jkrtt|Sfdd}|S)Ncs jdSr )r rr rr testFailure!sz,_FailedTest.__getattr__..testFailure)_testMethodNamer r __getattr__)r namerrrrrs  z_FailedTest.__getattr__)__name__ __module__ __qualname__rr r __classcell__rrrrrs rcCs"d|tf}t|t|||S)Nz#Failed to import test module: %s %s) traceback format_exc_make_failed_test ImportError)r suiteClassmessagerrr_make_failed_import_test&sr"cCsdtf}t||||S)NzFailed to call load_tests: %s)rrr)rrr r!rrr_make_failed_load_tests+sr#cCst||}||f|fSr )r) methodnamerr r!testrrrr0s rcCs<tt|dd}||i}tdtjf|}|||fS)NcSsdSr rrrrr testSkipped5sz'_make_skipped_test..testSkippedZ ModuleSkipped)rskipstrtypeTestCase)r$rr r&attrsZ TestClassrrr_make_skipped_test4s   r,cCs*|dr|ddStj|dS)Nz $py.classir)lowerendswithospathsplitext)r0rrr_jython_aware_splitext<s r2cseZdZdZeejZdZe j Z dZ fddZ ddZdddd Zd d d Zd!d d ZddZd"ddZddZddZddZddZd#ddZd$ddZZS)% TestLoaderr%Ncs tt|g|_t|_dSr )r r3r errorsset_loading_packagesrrrrr MszTestLoader.__init__cCsFt|tjrtd||}|s2t|dr2dg}|t||}|S)NzYTest cases should not be derived from TestSuite. Maybe you meant to derive from TestCase?ZrunTest) issubclassr TestSuite TypeErrorgetTestCaseNameshasattrr map)r testCaseClassZ testCaseNamesZ loaded_suiterrrloadTestsFromTestCaseTs  z TestLoader.loadTestsFromTestCasepatternc Os8t|dksd|vr,tdt|ddt|dkrRt|d}td|t|dkrxt|d}td|g}t|D]4}t ||}t |t rt |t jr|||qt |dd} ||}| dur4z| |||WSty2} z0t|j| |j\} } |j| | WYd} ~ Sd} ~ 00|S)NrZuse_load_testsz(use_load_tests is deprecated and ignoredrzCloadTestsFromModule() takes 1 positional argument but {} were givenz=loadTestsFromModule() got an unexpected keyword argument '{}' load_tests)lenwarningswarnDeprecationWarningpopr9formatsorteddirgetattr isinstancer)r7rr*appendr>r Exceptionr#rr4) r moduler@argsZkwsZ complainttestsrobjrAe error_case error_messagerrrloadTestsFromModulebs8            zTestLoader.loadTestsFromModulec Cs`|d}d\}}|dur|dd}|rzd|}t|}WqWq&ty|}t||j\}}|s|j||YSYq&0q&|dd}|} |D]} z| t | | } } Wqt yV} zt | dddur|dur|j||WYd} ~ St | | |jdt f\}}|j||WYd} ~ SWYd} ~ qd} ~ 00qt| tjrr|| St| trt| tjr|| St| tjrt| trt| tjr|d}| |} tt | |tjs|| gSnt| tjr| St| rP| }t|tjr$|St|tjr>||gStd| |fn td| dS) N.)NNr__path__zFailed to access attribute: %sz"calling %s returned %s, not a testz$don't know how to make test from: %s)splitjoin __import__rrFr"r r4rLrJAttributeErrorrrrrKtypes ModuleTyperUr)r7rr*r> FunctionTyperr8callabler9)r rrNpartsrSrTZ parts_copy module_nameZnext_attributerQpartparentrRinstr%rrrloadTestsFromNamesz        ,     zTestLoader.loadTestsFromNamecsfdd|D}|S)Ncsg|]}|qSr)rf).0rrNr rr z1TestLoader.loadTestsFromNames..)r )r namesrNZsuitesrrhrloadTestsFromNamesszTestLoader.loadTestsFromNamescs>fdd}tt|t}jr:|jtjd|S)NcsZ|jsdSt|}t|s&dSdjj|fjdupXtfddjDS)NFz%s.%s.%sc3s|]}t|VqdSr )r)rgr@ZfullNamerr rjzKTestLoader.getTestCaseNames..shouldIncludeMethod..) startswithtestMethodPrefixrJr`rrtestNamePatternsany)attrnameZtestFuncr r=rmrshouldIncludeMethods    z8TestLoader.getTestCaseNames..shouldIncludeMethod)key)listfilterrIsortTestMethodsUsingsort functools cmp_to_key)r r=ruZ testFnNamesrrtrr:s  zTestLoader.getTestCaseNamestest*.pyc CsDd}|dur|jdur|j}n|dur.d}|}tj|}|tjvrRtjd|||_d}d}g}tjtj|rtj|}||krtjtj|d }njz t |Wnt yd}YnF0tj |}| dd} ztjtj |j}Wntyz |j} Wnty2d} Yn0| r| jdur| jdurd}|jD]P} |sv| |svq\| |jdtjjd|_||j| |ddq\n*|jtjvrtddntd|dYn0|r|s|| |_tj|n tj||r$t d ||s:t|||}| |S) NFTr __init__.pyrV) namespacez2Can not use builtin modules as dotted module namesz$don't know how to discover from {!r}z%Start directory is not importable: %r)!_top_level_dirr/r0abspathsysinsertisdirisfilerZr[rmodulesrYdirname__file__r\__spec__loadersubmodule_search_locationsrWrorreplacesepextend _find_testsbuiltin_module_namesr9rG _get_directory_containing_moduleremoverwr ) r start_dirr@Z top_level_dirZset_implicit_topZis_not_importable is_namespacerPZ the_moduleZtop_partspecr0rrrdiscovers                zTestLoader.discovercCsRtj|}tj|j}tj|drBtj tj |Stj |SdS)Nr~) rrr/r0rrbasenamer-ror)r rbrN full_pathrrrr`s  z+TestLoader._get_directory_containing_modulecCsB||jkrdSttj|}tj||j}|tjjd}|SNrV)rr2r/r0normpathrelpathrr)r r0Z_relpathrrrr_get_name_from_pathls  zTestLoader._get_name_from_pathcCst|tj|Sr )r[rr)r rrrr_get_module_from_namexsz TestLoader._get_module_from_namecCs t||Sr )r)r r0rr@rrr _match_path|szTestLoader._match_pathFc cs||}|dkrD||jvrD||||\}}|dur<|V|sDdStt|}|D]}tj||} || ||\}}|dur|V|rV|| }|j|z$| | ||EdHW|j |qV|j |0qVdSr) rr6_find_test_pathrHr/listdirr0rZaddrdiscard) r rr@rrrPZshould_recursepathsr0rrrrrs.   zTestLoader._find_testsc Cstj|}tj|rTt|s(dS||||s:dS||}z||}Wnft j y}zt |||j dfWYd}~Sd}~0t ||j \}} |j| |dfYS0tjt|d|} ttj| } ttj|} | | kr>tj| } ttj|}tj|}d}t||| |f|j||ddfSn,tj|r||stjtj|dsdSd}d}||}z||}Wnht j y}zt |||j dfWYd}~Sd}~0t ||j \}} |j| |dfYS0t|dd}|j|zD|j||d}|durV|dfW|j|S|dfW|j|S|j|0ndSdS) N)NFFrzW%r module incorrectly imported from %r. Expected %r. Is this module globally installed?r?r~rAT)r/r0rrVALID_MODULE_NAMEmatchrrrrZSkipTestr,r r"r4rLrrJr2realpathr-rrrUrrZr6rr)r rr@rrrrNrRrSrTZmod_filerZfullpath_noextZ module_dirZmod_nameZ expected_dirmsgrArPpackagerrrrs   &          &       zTestLoader._find_test_path)N)N)r}N)F)F)rrrrp staticmethodr three_way_cmpryrqrr8r rr r>rUrfrlr:rrrrrrrrrrrrr3Bs$  ( N  n   "r3cCs&t}||_||_||_|r"||_|Sr )r3ryrprqr )prefix sortUsingr rqrrrr _makeLoadersrcCst|||d|S)N)rq)rr:)r=rrrqrrrr:sr:r%cCst||||Sr )rr>)r=rrr rrr makeSuites rcCst||||Sr )rrU)rNrrr rrr findTestCasess r)NN)!r/rerrr]r{rCrrrrrZ __unittestcompile IGNORECASErr*rr"r#rr,r2objectr3ZdefaultTestLoaderrrr:r8rrrrrrs:/