PNG  IHDR;IDATxܻn0K )(pA 7LeG{ §㻢|ذaÆ 6lذaÆ 6lذaÆ 6lom$^yذag5bÆ 6lذaÆ 6lذa{ 6lذaÆ `}HFkm,mӪôô! x|'ܢ˟;E:9&ᶒ}{v]n&6 h_tڠ͵-ҫZ;Z$.Pkž)!o>}leQfJTu іچ\X=8Rن4`Vwl>nG^is"ms$ui?wbs[m6K4O.4%/bC%t Mז -lG6mrz2s%9s@-k9=)kB5\+͂Zsٲ Rn~GRC wIcIn7jJhۛNCS|j08yiHKֶۛkɈ+;SzL/F*\Ԕ#"5m2[S=gnaPeғL lذaÆ 6l^ḵaÆ 6lذaÆ 6lذa; _ذaÆ 6lذaÆ 6lذaÆ RIENDB`  qY8)@sddlZddlZddlZddlmZmZddlmZdZdZ dZ dd Z d d Z Gd d d e ZeZdS)N)loaderrunner)installHandlerTaExamples: %(prog)s test_module - run tests from test_module %(prog)s module.TestClass - run tests from module.TestClass %(prog)s module.Class.test_method - run specified test method %(prog)s path/to/test_file.py - run tests from test_file.py aFExamples: %(prog)s - run default set of tests %(prog)s MyTestSuite - run suite 'MyTestSuite' %(prog)s MyTestCase.testSomething - run MyTestCase.testSomething %(prog)s MyTestCase - run all 'test*' test methods in MyTestCase cCstjj|r|jjdrtjj|rtjj|tj}tjj|sx|jtj r||S|}|ddj ddj ddS|S)Nz.py\./) ospathisfilelowerendswithisabsrelpathgetcwd startswithpardirreplace)nameZrel_pathr#/opt/python35/lib/python3.5/main.py _convert_names'$&rcCsdd|DS)NcSsg|]}t|qSr)r).0rrrr .s z"_convert_names..r)namesrrr_convert_names-src@seZdZdZdZdZZZZZ dZ dddde j dddddddddd Z dd d Zd d Zd dZddZddZddZddZddZdddZddZdS) TestProgramNr__main__T tb_localsFc Cs(t|trZt||_xB|jdddD]} t|j| |_q8Wn ||_|dkrxtj}||_||_ | |_ ||_ | |_ | |_ | dkrtj rd|_n | |_||_||_||_tjj|d|_|j||jdS)Nrrdefaultr) isinstancestr __import__modulesplitgetattrsysargvexitfailfast catchbreak verbositybufferr warnoptionswarnings defaultTest testRunner testLoaderr r basenameprogName parseArgsrunTests)selfr%r1r)r2r3r*r-r+r,r.r0r partrrr__init__;s,                zTestProgram.__init__cCsD|rt||jdkr)|j|jtjddS)N)print_discovery_parser_initArgParsers _print_helpr(r*)r8msgrrr usageExitas    zTestProgram.usageExitcOsw|jdkrIt|jjttd|ji|jjn*t|jjttd|jidS)Nprog) r%r< _main_parser format_help MAIN_EXAMPLESr5r= print_helpMODULE_EXAMPLES)r8argskwargsrrrr?is zTestProgram._print_helpcCsE|j|jdkrt|dkr\|djdkr\|j|dddS|jj|dd||js|jgdSn|jj|dd||jrt|j|_ t dkr7d|_nQ|j dkrd|_ n6t |j t r%|j f|_ nt|j |_ |jdS)Nrdiscoverr;r)r>r%lenr _do_discoveryrC parse_argstestsr testNames__name__r1r"r#list createTests)r8r)rrrr6rs( (      zTestProgram.parseArgscCsL|jdkr*|jj|j|_n|jj|j|j|_dS)N)rOr3ZloadTestsFromModuler%testZloadTestsFromNames)r8rrrrRszTestProgram.createTestscCs4|j}|j||_|j||_dS)N)_getParentArgParser_getMainArgParserrC_getDiscoveryArgParserr=)r8Z parent_parserrrrr>s zTestProgram._initArgParsersc Cs3tjdd}|jddddddd d d d |jd dddddd dd d|jdddddd d|jdkr|jddddddd dd|_|jdkr|jddddddd dd|_|jdkr/|jddddddd d d|_|S)!Nadd_helpFz-vz --verbosedestr-action store_constconstr;helpzVerbose outputz-qz--quietrz Quiet outputz--localsr store_truez"Show local variables in tracebacksz-fz --failfastr+zStop on first fail or errorz-cz--catchr,z'Catch Ctrl-C and display results so farz-bz--bufferr.z%Buffer stdout and stderr during tests)argparseArgumentParser add_argumentr+r,r.)r8parserrrrrTs4     zTestProgram._getParentArgParsercCsJtjd|g}|j|_|j|_|jddddd|S)NparentsrNnargs*r\z?a list of any number of test modules, classes and test methods.)r^r_r5rBr?rFr`)r8parentrarrrrUs   zTestProgram._getMainArgParserc Cstjd|g}d|j|_d|_|jdddddd |jd d dd dd |jddddddx3dD]+}|j|dddtjdtjqW|S)Nrbz %s discoverzcFor test discovery all test modules must be importable from the top level directory of the project.z-sz--start-directoryrXstartr\z*Directory to start discovery ('.' default)z-pz --patternpatternz+Pattern to match tests ('test*.py' default)z-tz--top-level-directorytopzrMr3rJrS)r8r)LoaderrrrrrLs     zTestProgram._do_discoverycCs)|jrt|jdkr+tj|_t|jtryy=|jd|jd|jd|j d|j d|j }WnBt k r|jd|jd|jd|j d|j }YnXWqt k r|j}YqXn |j}|j |j|_|jr%tj|jj dS)Nr-r+r.r0r )r,rr2rZTextTestRunnerr"typer-r+r.r0r TypeErrorrunrSresultr*r(Z wasSuccessful)r8r2rrrr7s.           zTestProgram.runTests)rP __module__ __qualname__r%r-r+r,r.r5r0r=rZdefaultTestLoaderr:rAr?r6rRr>rTrUrVrLr7rrrrr1s$    #     r)r(r^r rrZsignalsrZ __unittestrErGrrobjectrmainrrrrs