B  ¶eD¢fÌã@sddlZddlZddlZddlZddlZddlZddlZddlmZmZddl m Z m Z m Z dZ e dej¡ZGdd„de jƒZd d „Zd d „Zd d„Zdd„Zdd„ZGdd„deƒZeƒZddd„Ze jdfdd„Zde je jfdd„Zde je jfdd„Z dS)éN)ÚfnmatchÚ fnmatchcaseé)ÚcaseÚsuiteÚutilTz[_a-z]\w*\.py$cs,eZdZdZ‡fdd„Z‡fdd„Z‡ZS)Ú _FailedTestNcs||_tt|ƒ |¡dS)N)Ú _exceptionÚsuperrÚ__init__)ÚselfZ method_nameÚ exception)Ú __class__©ú2/opt/alt/python37/lib/python3.7/unittest/loader.pyr sz_FailedTest.__init__cs*|ˆjkrttˆƒ |¡S‡fdd„}|S)Ncs ˆj‚dS)N)r r)r rrÚ testFailure!sz,_FailedTest.__getattr__..testFailure)Ú_testMethodNamer rÚ __getattr__)r Únamer)r)r rrs  z_FailedTest.__getattr__)Ú__name__Ú __module__Ú __qualname__rr rÚ __classcell__rr)rrrs rcCs"d|t ¡f}t|t|ƒ||ƒS)Nz#Failed to import test module: %s %s)Ú tracebackÚ format_excÚ_make_failed_testÚ ImportError)rÚ suiteClassÚmessagerrrÚ_make_failed_import_test&srcCsdt ¡f}t||||ƒS)NzFailed to call load_tests: %s)rrr)rr rrrrrÚ_make_failed_load_tests+sr cCst||ƒ}||fƒ|fS)N)r)Ú methodnamer rrÚtestrrrr0s rcCs<t t|ƒ¡dd„ƒ}||i}tdtjf|ƒ}|||ƒfƒS)NcSsdS)Nr)r rrrÚ testSkipped5sz'_make_skipped_test..testSkippedZ ModuleSkipped)rÚskipÚstrÚtypeÚTestCase)r!r rr#ZattrsZ TestClassrrrÚ_make_skipped_test4sr(cCs*| ¡ d¡r|dd…Stj |¡dS)Nz $py.classi÷ÿÿÿr)ÚlowerÚendswithÚosÚpathÚsplitext)r,rrrÚ_jython_aware_splitext<s r.cs¨eZdZdZeejƒZdZe j Z dZ ‡fdd„Z dd„Zddœdd „Zd d d „Zd!d d „Zdd„Zd"dd„Zdd„Zdd„Zdd„Zdd„Zd#dd„Zd$dd„Z‡ZS)%Ú TestLoaderr"Ncs tt|ƒ ¡g|_tƒ|_dS)N)r r/r ÚerrorsÚsetÚ_loading_packages)r )rrrr MszTestLoader.__init__cCsFt|tjƒrtdƒ‚| |¡}|s2t|dƒr2dg}| t||ƒ¡}|S)NzYTest cases should not be derived from TestSuite. Maybe you meant to derive from TestCase?ZrunTest)Ú issubclassrÚ TestSuiteÚ TypeErrorÚgetTestCaseNamesÚhasattrrÚmap)r Ú testCaseClassZ testCaseNamesZ loaded_suiterrrÚloadTestsFromTestCaseTs  z TestLoader.loadTestsFromTestCase)Úpatternc Os4t|ƒdksd|kr,t dt¡| dd¡t|ƒdkrRt|ƒd}td |¡ƒ‚t|ƒdkrxt|ƒd}td |¡ƒ‚g}x@t|ƒD]4}t ||ƒ}t |t ƒr†t |t jƒr†| | |¡¡q†Wt |ddƒ} | |¡}| dk r0y | |||ƒStk r.} z$t|j| |jƒ\} } |j | ¡| Sd} ~ XYnX|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)ÚlenÚwarningsÚwarnÚDeprecationWarningÚpopr5ÚformatÚsortedÚdirÚgetattrÚ isinstancer&r3rr'Úappendr:rÚ Exceptionr rr0) r Úmoduler;ÚargsZkwsZ complaintÚtestsrÚobjr<ÚeÚ error_caseÚ error_messagerrrÚloadTestsFromModulebs4           zTestLoader.loadTestsFromModulec Cs>| d¡}d\}}|dkr–|dd…}xb|rˆyd |¡}t|ƒ}PWq(tk r„| ¡}t||jƒ\}}|s€|j |¡|SYq(Xq(W|dd…}|} xœ|D]”} y| t | | ƒ} } Wq t k r2} zZt | ddƒdk rô|dk rô|j |¡|St | | |jdt   ¡fƒ\}}|j |¡|SWdd} ~ XYq Xq Wt| tjƒrP| | ¡St| tƒrtt| tjƒrt| | ¡St| tjƒrÎt| tƒrÎt| tjƒrÎ|d}| |ƒ} tt | |ƒtjƒsà| | g¡Snt| tjƒrà| St| ƒr.| ƒ}t|tjƒr|St|tjƒr| |g¡Std| |fƒ‚n td| ƒ‚dS) NÚ.)NNrÚ__path__zFailed to access attribute: %séÿÿÿÿz"calling %s returned %s, not a testz$don't know how to make test from: %s)ÚsplitÚjoinÚ __import__rrArrr0rGrEÚAttributeErrorrrrrFÚtypesÚ ModuleTyperPr&r3rr'r:Ú FunctionTyperr4Úcallabler5)r rrIÚpartsrNrOZ parts_copyÚ module_nameZnext_attributerLÚpartÚparentrMÚinstr"rrrÚloadTestsFromNameŠsl             zTestLoader.loadTestsFromNamecs‡‡fdd„|Dƒ}ˆ |¡S)Ncsg|]}ˆ |ˆ¡‘qSr)ra)Ú.0r)rIr rrú Üsz1TestLoader.loadTestsFromNames..)r)r ÚnamesrIZsuitesr)rIr rÚloadTestsFromNamesØszTestLoader.loadTestsFromNamescs>‡‡fdd„}tt|tˆƒƒƒ}ˆjr:|jt ˆj¡d|S)NcsZ| ˆj¡sdStˆ|ƒ}t|ƒs&dSdˆjˆj|f‰ˆjdkpXt‡fdd„ˆjDƒƒS)NFz%s.%s.%sc3s|]}tˆ|ƒVqdS)N)r)rbr;)ÚfullNamerrú ìszKTestLoader.getTestCaseNames..shouldIncludeMethod..)Ú startswithÚtestMethodPrefixrEr[rrÚtestNamePatternsÚany)ZattrnameZtestFunc)r r9)rfrÚshouldIncludeMethodâs   z8TestLoader.getTestCaseNames..shouldIncludeMethod)Úkey)ÚlistÚfilterrDÚsortTestMethodsUsingÚsortÚ functoolsÚ cmp_to_key)r r9rlZ testFnNamesr)r r9rr6ßs  zTestLoader.getTestCaseNamesútest*.pyc CsNd}|dkr|jdk r|j}n|dkr.d}|}tj |¡}|tjkrRtj d|¡||_d}d}g}tj tj |¡¡r¨tj |¡}||kr¤tj tj |d¡¡ }nty t |ƒWnt k rÎd}YnNXtj |}|  d¡d} ytj tj  |j¡¡}Wnætk rèy |j} Wntk r8d} YnX| rº| jdkrº| jdk räd}x†|jD]P} |s~|  |¡s~qd|   |j dtjj¡¡d|_| |j| |dd¡qdWn*|jtjkrÔtdƒd‚ntd |¡ƒd‚YnX|r|s| | ¡|_tj |¡n tj |¡|r.t d |ƒ‚|sDt| ||¡ƒ}|  |¡S) NFTrz __init__.pyrQ)Ú 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+r,ÚabspathÚsysÚinsertÚisdirÚisfilerUrVrÚmodulesrTÚdirnameÚ__file__rWÚ__spec__ÚloaderÚsubmodule_search_locationsrRrhrÚreplaceÚsepÚextendÚ _find_testsÚbuiltin_module_namesr5rBÚ _get_directory_containing_moduleÚremovernr) r Ú start_dirr;Z top_level_dirZset_implicit_topZis_not_importableÚ is_namespacerKZ the_moduleZtop_partÚspecr,rrrÚdiscoveròsv                zTestLoader.discovercCsRtj|}tj |j¡}tj |¡ ¡ d¡rBtj  tj  |¡¡Stj  |¡SdS)Nz __init__.py) rxr|r+r,rwr~Úbasenamer)rhr})r r]rIÚ full_pathrrrr‡`s  z+TestLoader._get_directory_containing_modulecCsB||jkrdSttj |¡ƒ}tj ||j¡}| tjjd¡}|S)NrQ)rvr.r+r,ÚnormpathÚrelpathr‚rƒ)r r,Z_relpathrrrrÚ_get_name_from_pathls  zTestLoader._get_name_from_pathcCst|ƒtj|S)N)rVrxr|)r rrrrÚ_get_module_from_namexsz TestLoader._get_module_from_namecCs t||ƒS)N)r)r r,rŽr;rrrÚ _match_path|szTestLoader._match_pathFc csÔ| |¡}|dkrD||jkrD| |||¡\}}|dk r<|V|sDdStt |¡ƒ}x||D]t}tj ||¡} | | ||¡\}}|dk rŠ|V|rX| | ¡}|j |¡z|  | ||¡EdHWd|j  |¡XqXWdS)NrQ) r‘r2Ú_find_test_pathrCr+Úlistdirr,rUÚaddr…Údiscard) r r‰r;rurrKZshould_recurseÚpathsr,rŽrrrr…€s*    zTestLoader._find_testsc CsPtj |¡}tj |¡rHt |¡s(dS| |||¡s:dS| |¡}y| |¡}WnZt j k r„}zt |||j ƒdfSd}~XYnÀt ||j ƒ\}} |j | ¡|dfStj t|d|ƒ¡} ttj | ¡ƒ} ttj |¡ƒ} |  ¡|  ¡kr2tj | ¡} ttj |¡ƒ}tj |¡}d}t||| |fƒ‚|j||ddfSntj |¡rH|sxtj tj |d¡¡sxdSd}d}| |¡}y| |¡}Wn\t j k rÌ}zt |||j ƒdfSd}~XYnzt ||j ƒ\}} |j | ¡|dfSt|ddƒ}|j |¡z(|j||d}|dk r0|dfS|dfS|j |¡XndSdS) N)NFFr~zW%r module incorrectly imported from %r. Expected %r. Is this module globally installed?)r;z __init__.pyr<T)r+r,rr{ÚVALID_MODULE_NAMEÚmatchr“r‘r’rZSkipTestr(rrr0rGrwrEr.Úrealpathr)r}rrPrzrUr2r–r—)r rŽr;rurrrIrMrNrOZmod_filer›Zfullpath_noextZ module_dirZmod_nameZ expected_dirÚmsgr<rKÚpackagerrrr”¢sl           zTestLoader._find_test_path)N)N)rtN)F)F)rrrriÚ staticmethodrÚ three_way_cmprprjrr4rrvr r:rPrarer6rŒr‡r‘r’r“r…r”rrr)rrr/Bs$  ( N  n   "r/cCs&tƒ}||_||_||_|r"||_|S)N)r/rprirjr)ÚprefixÚ sortUsingrrjr€rrrÚ _makeLoaderñsr¢cCst|||d |¡S)N)rj)r¢r6)r9r r¡rjrrrr6úsr6r"cCst|||ƒ |¡S)N)r¢r:)r9r r¡rrrrÚ makeSuiteýs r£cCst|||ƒ |¡S)N)r¢rP)rIr r¡rrrrÚ findTestCasess r¤)NN)!r+ÚrerxrrXrrr>rrÚrrrZ __unittestÚcompileÚ IGNORECASEr™r'rrr rr(r.Úobjectr/ZdefaultTestLoaderr¢rŸr6r4r£r¤rrrrÚs6/