j f(@sdZddlZddlmZddlmZdZddZGd d d eZGd ddeZ Gd d d eZ ddZ GdddeZ dS) TestSuiteN)case)utilTcCs#t||dd}|dS)NcSsdS)Nrrr3/opt/alt/python34/lib64/python3.4/unittest/suite.py sz!_call_if_exists..)getattr)parentattrfuncrrr_call_if_exists sr c@seZdZdZdZfddZddZddZd d Zd d Z d dZ ddZ ddZ ddZ ddZddZdS) BaseTestSuitezNA simple test suite that doesn't provide class or module shared fixtures. TcCs#g|_d|_|j|dS)Nr)_tests_removed_testsaddTests)selftestsrrr__init__s  zBaseTestSuite.__init__cCs dtj|jt|fS)Nz <%s tests=%s>)rstrclass __class__list)rrrr__repr__szBaseTestSuite.__repr__cCs,t||jstSt|t|kS)N) isinstancerNotImplementedr)rotherrrr__eq__szBaseTestSuite.__eq__cCs t|jS)N)iterr)rrrr__iter__"szBaseTestSuite.__iter__cCs7|j}x'|D]}|r||j7}qqW|S)N)rcountTestCases)rZcasestestrrrr%s   zBaseTestSuite.countTestCasescCstt|s*tdjt|nt|tr`t|tjt fr`tdn|j j |dS)Nz{} is not callablezNTestCases and TestSuites must be instantiated before passing them to addTest()) callable TypeErrorformatreprrtype issubclassrZTestCaserrappend)rr rrraddTest,s  zBaseTestSuite.addTestcCs@t|trtdnx|D]}|j|q%WdS)Nz0tests must be an iterable of tests, not a string)rstrr"r()rrr rrrr6s zBaseTestSuite.addTestscCsQxJt|D]<\}}|jr&Pn|||jr |j|q q W|S)N) enumerate shouldStop_cleanup_removeTestAtIndex)rresultindexr rrrrun<s   zBaseTestSuite.runc Cs^y|j|}Wntk r%Yn5Xt|drM|j|j7_nd|j|s,      *z TestSuite._tearDownPreviousClassN) r6r7r8r9r0r5r@rPr?rIrBr>rrrrr\s !     c@s|eZdZdZdZddZddZddZd d Zd d Z d dZ ddZ ddZ dS)rWz 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. NcCs ||_dS)N) description)rr\rrrrsz_ErrorHolder.__init__cCs|jS)N)r\)rrrridsz_ErrorHolder.idcCsdS)Nr)rrrrshortDescription sz_ErrorHolder.shortDescriptioncCsd|jfS)Nz)r\)rrrrr#sz_ErrorHolder.__repr__cCs |jS)N)r])rrrr__str__&sz_ErrorHolder.__str__cCsdS)Nr)rr.rrrr0)sz_ErrorHolder.runcCs |j|S)N)r0)rr.rrrr4.sz_ErrorHolder.__call__cCsdS)Nrr)rrrrr1sz_ErrorHolder.countTestCases) r6r7r8r9ZfailureExceptionrr]r^rr_r0r4rrrrrrWs        rWc Cs+yt|Wntk r&dSYnXdS)z?A crude way to tell apart testcases and suites with duck-typingTF)rr")r rrrr=4s   r=c@s(eZdZdZdZdZdZdS)rCzCUsed by the TestSuite to hold previous class when running in debug.NF)r6r7r8r9rAr<r+rrrrrC=s rC) r9rRrrZ __unittestr objectrrrWr=rCrrrrs  L&