ó {fc@s¦dZddlZddlmZddlmZeZd„Zdefd„ƒYZ de fd „ƒYZ d efd „ƒYZ d „Z d efd„ƒYZ dS(t TestSuiteiÿÿÿÿNi(tcase(tutilcCs t||d„ƒ}|ƒdS(NcSsdS(N(tNone(((s&/usr/lib64/python2.7/unittest/suite.pyt t(tgetattr(tparenttattrtfunc((s&/usr/lib64/python2.7/unittest/suite.pyt_call_if_exists st BaseTestSuitecBszeZdZd d„Zd„Zd„Zd„Zd Zd„Z d„Z d„Z d„Z d „Z d „Zd „ZRS(sNA simple test suite that doesn't provide class or module shared fixtures. cCsg|_|j|ƒdS(N(t_teststaddTests(tselfttests((s&/usr/lib64/python2.7/unittest/suite.pyt__init__s cCs dtj|jƒt|ƒfS(Ns <%s tests=%s>(Rtstrclasst __class__tlist(R((s&/usr/lib64/python2.7/unittest/suite.pyt__repr__scCs,t||jƒstSt|ƒt|ƒkS(N(t isinstanceRtNotImplementedR(Rtother((s&/usr/lib64/python2.7/unittest/suite.pyt__eq__scCs ||k S(N((RR((s&/usr/lib64/python2.7/unittest/suite.pyt__ne__scCs t|jƒS(N(titerR (R((s&/usr/lib64/python2.7/unittest/suite.pyt__iter__%scCs+d}x|D]}||jƒ7}q W|S(Ni(tcountTestCases(Rtcasesttest((s&/usr/lib64/python2.7/unittest/suite.pyR(s cCswt|dƒs-tdjt|ƒƒƒ‚nt|tƒrct|tjt fƒrctdƒ‚n|j j |ƒdS(Nt__call__s{} is not callablesNTestCases and TestSuites must be instantiated before passing them to addTest()( thasattrt TypeErrortformattreprRttypet issubclassRtTestCaseRR tappend(RR((s&/usr/lib64/python2.7/unittest/suite.pytaddTest.s cCs@t|tƒrtdƒ‚nx|D]}|j|ƒq%WdS(Ns0tests must be an iterable of tests, not a string(Rt basestringR!R((RRR((s&/usr/lib64/python2.7/unittest/suite.pyR 8s cCs,x%|D]}|jrPn||ƒqW|S(N(t shouldStop(RtresultR((s&/usr/lib64/python2.7/unittest/suite.pytrun>s   cOs|j||ŽS(N(R,(Rtargstkwds((s&/usr/lib64/python2.7/unittest/suite.pyREscCsx|D]}|jƒqWdS(s7Run the tests without collecting errors in a TestResultN(tdebug(RR((s&/usr/lib64/python2.7/unittest/suite.pyR/Hs (N(t__name__t __module__t__doc__RRRRRt__hash__RRR(R R,RR/(((s&/usr/lib64/python2.7/unittest/suite.pyR s         cBsYeZdZed„Zd„Zd„Zd„Zd„Zd„Z d„Z d„Z RS( s³A test suite is a composite test consisting of a number of TestCases. For use, create an instance of TestSuite, then add test case instances. When all tests have been added, the suite can be passed to a test runner, such as TextTestRunner. It will run the individual test cases in the order in which they were added, aggregating the results. When subclassing, do not forget to call the base class constructor. cCst}t|dtƒtkr.t|_}nx°|D]¨}|jrHPnt|ƒrÀ|j||ƒ|j||ƒ|j||ƒ|j |_ t|j dtƒs5t|dtƒrÀq5qÀn|sÓ||ƒq5|j ƒq5W|r|jd|ƒ|j |ƒt|_n|S(Nt_testRunEnteredt_classSetupFailedt_moduleSetUpFailed(tFalseRtTrueR4R*t _isnotsuitet_tearDownPreviousClasst_handleModuleFixturet_handleClassSetUpRt_previousTestClassR/Rt_handleModuleTearDown(RR+R/ttopLevelR((s&/usr/lib64/python2.7/unittest/suite.pyR,Xs,        cCstƒ}|j|tƒdS(s7Run the tests without collecting errors in a TestResultN(t _DebugResultR,R8(RR/((s&/usr/lib64/python2.7/unittest/suite.pyR/vs c Cs!t|ddƒ}|j}||kr+dS|jr8dSt|dtƒrNdSy t|_Wntk rnnXt|ddƒ}|dk rt|dƒzoy |ƒWn]tk r}t |t ƒrÏ‚nt |_t j |ƒ}d|}|j|||ƒnXWdt|dƒXndS(NR=t__unittest_skip__t setUpClasst _setupStdoutssetUpClass (%s)t_restoreStdout(RRRR6R7R5R!R t ExceptionRR@R8RRt_addClassOrModuleLevelException( RRR+t previousClasst currentClassRBtet classNamet errorName((s&/usr/lib64/python2.7/unittest/suite.pyR<}s4          cCs4d}t|ddƒ}|dk r0|j}n|S(NR=(RRR1(RR+tpreviousModuleRG((s&/usr/lib64/python2.7/unittest/suite.pyt_get_previous_modules   c Cs |j|ƒ}|jj}||kr+dS|j|ƒt|_ytj|}Wntk rfdSXt |ddƒ}|dk rt |dƒz`y |ƒWnNt k rð}t |tƒrÇ‚nt|_d|}|j|||ƒnXWdt |dƒXndS(Nt setUpModuleRCssetUpModule (%s)RD(RMRR1R>R7R6tsystmodulestKeyErrorRRR RERR@R8RF( RRR+RLt currentModuletmoduleRNRIRK((s&/usr/lib64/python2.7/unittest/suite.pyR;¥s.          cCslt|ƒ}t|ddƒ}|dk rRt|tjƒrR||t|ƒƒn|j|tj ƒƒdS(NtaddSkip( t _ErrorHolderRRRRtSkipTesttstrtaddErrorROtexc_info(RR+t exceptionRKterrorRT((s&/usr/lib64/python2.7/unittest/suite.pyRFÀs  cCsì|j|ƒ}|dkrdS|jr,dSytj|}Wntk rQdSXt|ddƒ}|dk rèt|dƒzWy |ƒWnEtk rÒ}t |t ƒr²‚nd|}|j |||ƒnXWdt|dƒXndS(NttearDownModuleRCstearDownModule (%s)RD( RMRR6RORPRQRR RERR@RF(RR+RLRSR\RIRK((s&/usr/lib64/python2.7/unittest/suite.pyR>Ès*       c Cst|ddƒ}|j}||kr+dSt|dtƒrAdSt|dtƒrWdSt|dtƒrmdSt|ddƒ}|dk rt|dƒzfy |ƒWnTtk rü}t|tƒrÍ‚ntj |ƒ}d|}|j |||ƒnXWdt|dƒXndS( NR=R5R6RAt tearDownClassRCstearDownClass (%s)RD( RRRR7R RERR@RRRF( RRR+RGRHR]RIRJRK((s&/usr/lib64/python2.7/unittest/suite.pyR:ás.      ( R0R1R2R7R,R/R<RMR;RFR>R:(((s&/usr/lib64/python2.7/unittest/suite.pyRNs      RUcBs\eZdZd Zd„Zd„Zd„Zd„Zd„Z d„Z d„Z d„Z RS( s¾ Placeholder for a TestCase inside a result. As far as a TestResult is concerned, this looks exactly like a unit test. Used to insert arbitrary errors into a test suite run. cCs ||_dS(N(t description(RR^((s&/usr/lib64/python2.7/unittest/suite.pyRscCs|jS(N(R^(R((s&/usr/lib64/python2.7/unittest/suite.pytid scCsdS(N(R(R((s&/usr/lib64/python2.7/unittest/suite.pytshortDescriptionscCsd|jfS(Ns(R^(R((s&/usr/lib64/python2.7/unittest/suite.pyRscCs |jƒS(N(R_(R((s&/usr/lib64/python2.7/unittest/suite.pyt__str__scCsdS(N((RR+((s&/usr/lib64/python2.7/unittest/suite.pyR,scCs |j|ƒS(N(R,(RR+((s&/usr/lib64/python2.7/unittest/suite.pyRscCsdS(Ni((R((s&/usr/lib64/python2.7/unittest/suite.pyRsN( R0R1R2RtfailureExceptionRR_R`RRaR,RR(((s&/usr/lib64/python2.7/unittest/suite.pyRUüs       cCs'yt|ƒWntk r"tSXtS(s?A crude way to tell apart testcases and suites with duck-typing(RR!R8R7(R((s&/usr/lib64/python2.7/unittest/suite.pyR9"s  R@cBs eZdZdZeZeZRS(sCUsed by the TestSuite to hold previous class when running in debug.N(R0R1R2RR=R7R6R*(((s&/usr/lib64/python2.7/unittest/suite.pyR@+s(R2RORRRR8t __unittestR tobjectR RRUR9R@(((s&/usr/lib64/python2.7/unittest/suite.pyts  >®&