grthtrhthjhtyjytjytkergtrhtrjytjerhrfh3 \ÐVã@sþddlZddlZddlZddlZddlZddlZddlZddlmZddlm Z m Z m Z dZ ej dejƒZGdd„de jƒZd d „Zd d „Zd d„Zdd„Zdd„ZGdd„deƒZeƒZddd„Ze jfdd„Zde je jfdd„Zde je jfdd„ZdS)éN)Úfnmatché)ÚcaseÚsuiteÚutilTz[_a-z]\w*\.py$cs,eZdZdZ‡fdd„Z‡fdd„Z‡ZS)Ú _FailedTestNcs||_tt|ƒj|ƒdS)N)Ú _exceptionÚsuperrÚ__init__)ÚselfZ method_nameÚ exception)Ú __class__©ú'/usr/lib64/python3.6/unittest/loader.pyr sz_FailedTest.__init__cs*|ˆjkrttˆƒj|ƒS‡fdd„}|S)Ncs ˆj‚dS)N)rr)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)r rrs rcCs"d|tjƒ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&srcCsdtjƒf}t||||ƒS)NzFailed to call load_tests: %s)rrr)rr rrrrrÚ_make_failed_load_tests+srcCst||ƒ}||fƒ|fS)N)r)Ú methodnamer rrÚtestrrrr0s rcCs<tjt|ƒƒ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*|jƒjdƒr|dd…Stjj|ƒdS)Nz $py.classé ri÷ÿÿÿ)ÚlowerÚendswithÚosÚpathÚsplitext)r,rrrÚ_jython_aware_splitext<s r.cs¤eZdZdZeejƒZej Z dZ ‡fdd„Z dd„Z ddœdd „Zd d d „Zd!d d „Zdd„Zd"dd„Zdd„Zdd„Zdd„Zdd„Zd#dd„Zd$dd„Z‡ZS)%Ú TestLoaderr!Ncs tt|ƒjƒg|_tƒ|_dS)N)r r/r ÚerrorsÚsetÚ_loading_packages)r )r rrr LszTestLoader.__init__cCsHt|tjƒrtdƒ‚|j|ƒ}| r4t|dƒr4dg}|jt||ƒƒ}|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ÚloadTestsFromTestCaseSs  z TestLoader.loadTestsFromTestCase)Úpatternc Os2t|ƒdksd|kr,tjdtƒ|jddƒt|ƒdkrRt|ƒd}tdj|ƒƒ‚t|ƒdkrxt|ƒd}tdj|ƒƒ‚g}x@t|ƒD]4}t ||ƒ}t |t ƒr†t |t jƒr†|j|j|ƒƒq†Wt |ddƒ} |j|ƒ}| dk �r.y | |||ƒStk �r,} z$t|j| |jƒ\} } |jj| ƒ| Sd} ~ XnX|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Ú Exceptionrrr0) r Úmoduler;ÚargsZkwsZ complaintÚtestsrÚobjr<ÚeÚ error_caseÚ error_messagerrrÚloadTestsFromModuleas4           zTestLoader.loadTestsFromModulecCs>|jdƒ}d\}}|dkr–|dd…}xb|rˆydj|ƒ}t|ƒ}PWq(tk r„|jƒ}t||jƒ\}}|s€|jj|ƒ|SYq(Xq(W|dd…}|} xœ|D]”} y| t | | ƒ} } Wq t k �r2} z\t | ddƒdk rô|dk rô|jj|ƒ|St | | |jdt j ƒfƒ\}}|jj|ƒ|SWYdd} ~ Xq Xq Wt| tjƒ�rP|j| ƒSt| tƒ�rtt| tjƒ�rt|j| ƒSt| tjƒ�rÎt| tƒ�rÎt| tjƒ�rÎ|d}| |ƒ} tt | |ƒtjƒ�sà|j| gƒSnt| tjƒ�rà| St| ƒ�r.| ƒ}t|tjƒ�r|St|tjƒ�r|j|gƒStd| |fƒ‚n td| ƒ‚dS) NÚ.rÚ__path__zFailed to access attribute: %sz"calling %s returned %s, not a testz$don't know how to make test from: %s)NNéÿÿÿÿ)ÚsplitÚjoinÚ __import__rrArrr0rGrEÚAttributeErrorrrrrFÚtypesÚ ModuleTyperPr%r3rr&r:Ú FunctionTyperr4Úcallabler5)r rrIÚpartsrNrOZ parts_copyÚ module_nameZnext_attributerLÚpartÚparentrMZinstr!rrrÚloadTestsFromName‰sl             zTestLoader.loadTestsFromNamecs‡‡fdd„|Dƒ}ˆj|ƒS)Ncsg|]}ˆj|ˆƒ‘qSr)r`)Ú.0r)rIr rrú Ûsz1TestLoader.loadTestsFromNames..)r)r ÚnamesrIZsuitesr)rIr rÚloadTestsFromNames×szTestLoader.loadTestsFromNamescCs@||jfdd„}tt|t|ƒƒƒ}|jr<|jtj|jƒd�|S)NcSs|j|ƒott||ƒƒS)N)Ú startswithr[rE)Zattrnamer9ÚprefixrrrÚ isTestMethodás z1TestLoader.getTestCaseNames..isTestMethod)Úkey)ÚtestMethodPrefixÚlistÚfilterrDÚsortTestMethodsUsingÚsortÚ functoolsÚ cmp_to_key)r r9rgZ testFnNamesrrrr6Þs zTestLoader.getTestCaseNamesútest*.pyc CsRd}|dkr|jdk r|j}n|dkr.d}|}tjj|ƒ}|tjkrRtjjd|ƒ||_d}d}g}tjjtjj|ƒƒr¨tjj|ƒ}||kr¤tjjtjj|dƒƒ }�nxy t |ƒWnt k rÎd}Y�nRXtj |}|j dƒd} ytjjtjj |jƒƒ}Wnêtk �rìy |j} Wntk �r8d} YnX| �r¾| jdk�r¾| jdk �rèd}xŠ|jD]T} | �r‚| j|ƒ �r‚�qd| j |jjdtjjƒƒd|_|j|j| |dd�ƒ�qdWn*|jtjk�rØtdƒd‚ntdj|ƒƒd‚YnX|�r |�s|j| ƒ|_tjj|ƒn tjj|ƒ|�r2t d |ƒ‚|�sHt|j||ƒƒ}|j |ƒ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_locationsrRrerÚreplaceÚsepÚextendÚ _find_testsÚbuiltin_module_namesr5rBÚ _get_directory_containing_moduleÚremoverjr) r Ú start_dirr;Z top_level_dirZset_implicit_topZis_not_importableÚ is_namespacerKZ the_moduleZtop_partÚspecr,rrrÚdiscoverêsv               zTestLoader.discovercCsRtj|}tjj|jƒ}tjj|ƒjƒjdƒrBtjj tjj |ƒƒStjj |ƒSdS)Nz __init__.py) rtrxr+r,rsrzÚbasenamer)rery)r r]rIÚ full_pathrrrrƒXs  z+TestLoader._get_directory_containing_modulecCsB||jkrdSttjj|ƒƒ}tjj||jƒ}|jtjjdƒ}|S)NrQ)rrr.r+r,ÚnormpathÚrelpathr~r)r r,Z_relpathrrrrÚ_get_name_from_pathds  zTestLoader._get_name_from_pathcCst|ƒtj|S)N)rVrtrx)r rrrrÚ_get_module_from_namepsz TestLoader._get_module_from_namecCs t||ƒS)N)r)r r,rŠr;rrrÚ _match_pathtszTestLoader._match_pathFc csÔ|j|ƒ}|dkrD||jkrD|j|||ƒ\}}|dk r<|V|sDdSttj|ƒƒ}x||D]t}tjj||ƒ} |j| ||ƒ\}}|dk rŠ|V|rX|j| ƒ}|jj|ƒz|j | ||ƒEdHWd|jj |ƒXqXWdS)NrQ) r�r2Ú_find_test_pathrCr+Úlistdirr,rUÚaddr�Údiscard) r r…r;rqrrKZshould_recurseÚpathsr,rŠrrrr�xs*    zTestLoader._find_testscCsPtjj|ƒ}tjj|ƒ�rFtj|ƒs(dS|j|||ƒs:d S|j|ƒ}y|j|ƒ}WnXt j k r‚}zt |||j ƒdfSd}~XnÀt ||j ƒ\}} |jj| ƒ|dfStjjt|d|ƒƒ} ttjj| ƒƒ} ttjj|ƒƒ} | jƒ| jƒk�r0tjj| ƒ} ttjj|ƒƒ}tjj|ƒ}d}t||| |fƒ‚|j||d�dfS�ntjj|ƒ�rH| �rztjjtjj|dƒƒ �rzd Sd}d}|j|ƒ}y|j|ƒ}WnZt j k �rÌ}zt |||j ƒdfSd}~Xnzt ||j ƒ\}} |jj| ƒ|dfSt|ddƒ}|jj|ƒz(|j||d�}|dk �r0|dfS|dfS|jj|ƒXnd SdS) NFrzzW%r module incorrectly imported from %r. Expected %r. Is this module globally installed?)r;z __init__.pyr<T)NF)NF)NF)NF)r+r,r‰rwÚVALID_MODULE_NAMEÚmatchr�r�rŽrZSkipTestr'rrr0rGrsrEr.Úrealpathr)ryrrPrvrUr2r’r“)r rŠr;rqr‰rrIrMrNrOZmod_filer—Zfullpath_noextZ module_dirZmod_nameZ expected_dirÚmsgr<rKÚpackagerrrr�šsl           zTestLoader._find_test_path)N)N)rpN)F)F)rrrriÚ staticmethodrÚ three_way_cmprlrr4rrrr r:rPr`rdr6rˆrƒr�rŽr�r�r�rrr)r rr/Bs"  ( N  n   "r/cCs tƒ}||_||_|r||_|S)N)r/rlrir)rfÚ sortUsingrr|rrrÚ _makeLoaderés r�cCst||ƒj|ƒS)N)r�r6)r9rfrœrrrr6ñsr6r!cCst|||ƒj|ƒS)N)r�r:)r9rfrœrrrrÚ makeSuiteôs ržcCst|||ƒj|ƒS)N)r�rP)rIrfrœrrrrÚ findTestCasesùs rŸ)N) r+ÚrertrrXrnr>rÚrrrZ __unittestÚcompileÚ IGNORECASEr•r&rrrrr'r.Úobjectr/ZdefaultTestLoaderr�r›r6r4ržrŸrrrrÚs6 '