CP8ddlZGddeZGddeZGddejZGdd eZGd d eZGd d eZdS)NceZdZdZdZdZdS) TestEqualityUsed as a mixin for TestCasecx|jD]1\}}||||||2dSN)eq_pairs assertEqualselfobj_1obj_2s r8s rr>z_BaseLoggingResult.addErrorEs3 J'''$rch|jdtj|dS)NaddSkip)r%r,r&r@r8s rr@z_BaseLoggingResult.addSkipIs2 I&&&rch|jdtj|dS)NaddExpectedFailure)r%r,r&rBr8s rrBz%_BaseLoggingResult.addExpectedFailureMs4 0111""D))))rch|jdtj|dS)NaddUnexpectedSuccess)r%r,r&rDr8s rrDz'_BaseLoggingResult.addUnexpectedSuccessQs4 2333$$d++++r)rrrr'r+r0r3r5r7r<r>r@rBrD __classcell__r)s@rr#r#(s2     """"""""""     *****,,,,,,,,,rr#c(eZdZdZedZdS)LegacyLoggingResultzo A legacy TestResult implementation, without an addSubTest method, which records its method calls. ctr)AttributeErrorr s r addSubTestzLegacyLoggingResult.addSubTest\srN)rrrrpropertyrLrrrrHrHVs9 XrrHc"eZdZdZfdZxZS) LoggingResultzE A TestResult implementation which records its method calls. c||jdn|jdt|||dS)NaddSubTestSuccessaddSubTestFailure)r%r,r&rL)r r.subtesterrr)s rrLzLoggingResult.addSubTestfs[ ; L   3 4 4 4 4 L   3 4 4 4 4#.....r)rrrrrLrErFs@rrOrOasB/////////rrOc<eZdZdZdZdZdZdZdZdZ dZ d S) #ResultWithNoStartTestRunStopTestRunz?An object honouring TestResult before startTestRun/stopTestRun.chg|_g|_d|_g|_g|_g|_d|_dS)NrF)failureserrorstestsRunskippedexpectedFailuresunexpectedSuccesses shouldStoprKs rr'z,ResultWithNoStartTestRunStopTestRun.__init__qs9    "#% rcdSrrr r.s rr+z-ResultWithNoStartTestRunStopTestRun.startTestz rcdSrrr`s rr3z,ResultWithNoStartTestRunStopTestRun.stopTest}rarcdSrrr`s rr>z,ResultWithNoStartTestRunStopTestRun.addErrorrarcdSrrr`s rr7z.ResultWithNoStartTestRunStopTestRun.addFailurerarcdSrrr`s rr<z.ResultWithNoStartTestRunStopTestRun.addSuccessrarcdS)NTrrKs r wasSuccessfulz1ResultWithNoStartTestRunStopTestRun.wasSuccessfulstrN) rrrrr'r+r3r>r7r<rgrrrrVrVnsII                  rrV) unittestobjectrr TestResultr#rHrOrVrrrrks" . . . . .6 . . .OOOOO&OOO*+,+,+,+,+,,+,+,+,\, / / / / /& / / /&r