e(SrSSKrSSKrSSKrSSKJr SSKJr SSKJ r Sr "SS \ 5r "S S \R5r"S S \ 5rg)z Running testsN)result)_SubTest)registerResultTc.\rSrSrSrSrSrSSjrSrg) _WritelnDecoratorz@Used to decorate file-like objects with a handy 'writeln' methodcXlgNstream)selfr s 5/opt/imh/python3.13/lib/python3.13/unittest/runner.py__init___WritelnDecorator.__init__s cPUS;a [U5e[URU5$)N)r __getstate__)AttributeErrorgetattrr )rattrs r __getattr___WritelnDecorator.__getattr__s' - - & &t{{4((rNcVU(aURU5 URS5 gN )write)rargs rwriteln_WritelnDecorator.writelns  JJsO 4rr r ) __name__ __module__ __qualname____firstlineno____doc__rrr__static_attributes__rrrrsJ) rrc^\rSrSrSrSrSrSS.U4SjjrSrU4S jr S r U4S jr U4S jr U4S jr U4SjrU4SjrU4SjrU4SjrSrSrSrU=r$)TextTestResultz`A test result class that can print formatted text results to a stream. Used by TextTestRunner. zF======================================================================zF----------------------------------------------------------------------N durationsc>[[U] XU5 XlUS:UlUS:HUlX lSUlX@lg)zoConstruct a TextTestResult. Subclasses should accept **kwargs to ensure compatibility as the interface changes.rTN) superr)rr showAlldots descriptions_newliner,)rr r1 verbosityr, __class__s rrTextTestResult.__init__&sC nd,V9M  1} N ( "rcUR5nUR(a#U(aSR[U5U45$[U5$r)shortDescriptionr1joinstr)rtestdoc_first_lines rgetDescriptionTextTestResult.getDescription1s=..0   99c$i89 9t9 rc>[[U] U5 UR(agURR UR U55 URR S5 URR5 SUlgg)N ... F) r.r) startTestr/r rr<flushr2rr:r4s rr@TextTestResult.startTest8sd nd-d3 << KK  d11$7 8 KK  g & KK   !DM rc[U[5nU(dUR(aUR(dURR 5 U(aURR S5 URR UR U55 URR S5 URR U5 URR5 SUlg)Nz r?T) isinstancerr2r rrr<rA)rr:status is_subtests r _write_statusTextTestResult._write_status@sh/ == ##% !!$' KK  d11$7 8 KK  g & F#  rc>UbUR(aD[USUR5(aURUS5 OURUS5 OUR(ao[USUR5(aUR R S5 OUR R S5 UR R5 [[U]+XU5 g)NrFAILERRORFE) r/ issubclassfailureExceptionrHr0r rrAr.r) addSubTest)rr:subtesterrr4s rrQTextTestResult.addSubTestMs ?||c!fg&>&>??&&w7&&w8c!fg&>&>??KK%%c*KK%%c* !!# nd.tcBrc>[[U] U5 UR(aUR US5 gUR (a6UR RS5 UR R5 gg)Nok.) r.r) addSuccessr/rHr0r rrArBs rrXTextTestResult.addSuccess\sW nd.t4 <<   tT * YY KK  c " KK   rc>[[U] X5 UR(aUR US5 gUR (a6UR RS5 UR R5 gg)NrLrN) r.r)addErrorr/rHr0r rrArr:rSr4s rr[TextTestResult.addErrordsW nd,T7 <<   tW - YY KK  c " KK   rc>[[U] X5 UR(aUR US5 gUR (a6UR RS5 UR R5 gg)NrKrM) r.r) addFailurer/rHr0r rrAr\s rr_TextTestResult.addFailurelsW nd.t9 <<   tV , YY KK  c " KK   rc >[[U] X5 UR(a"UR USR U55 gUR (a6URRS5 URR5 gg)Nz skipped {0!r}s) r.r)addSkipr/rHformatr0r rrA)rr:reasonr4s rrcTextTestResult.addSkiptsb nd+D9 <<   t_%;%;F%C D YY KK  c " KK   rcH>[[U] X5 UR(a6URR S5 URR 5 gUR(a6URRS5 URR 5 gg)Nzexpected failurex) r.r)addExpectedFailurer/r rrAr0rr\s rri!TextTestResult.addExpectedFailure|sj nd6tA << KK   2 3 KK    YY KK  c " KK   rcH>[[U] U5 UR(a6URR S5 URR 5 gUR(a6URRS5 URR 5 gg)Nzunexpected successu) r.r)addUnexpectedSuccessr/r rrAr0rrBs rrm#TextTestResult.addUnexpectedSuccesssj nd8> << KK   4 5 KK    YY KK  c " KK   rc4UR(dUR(a4URR5 URR 5 UR SUR 5 UR SUR5 [USS5nU(avURRUR5 UH0nURRSURU535 M2 URR 5 gg)NrLrKunexpectedSuccessesr'zUNEXPECTED SUCCESS: ) r0r/r rrAprintErrorListerrorsfailuresr separator1r<)rrpr:s r printErrorsTextTestResult.printErrorss 99 KK   ! KK    GT[[1 FDMM2%d,A2F  KK   0+ ##&:4;N;Nt;T:U$VW, KK    rcUHup4URRUR5 URRU<SURU5<35 URRUR5 URRSU-5 URR 5 M g)Nz: z%s)r rrtr< separator2rA)rflavourrrr:rSs rrqTextTestResult.printErrorListsID KK   0 KK  GD4G4G4M N O KK   0 KK  s + KK     r)r2r1r0r,r/r )r!r"r#r$r%rtrxrr<r@rHrQrXr[r_rcrirmrurqr& __classcell__)r4s@rr)r)scJJEI # #"  C          rr)cF\rSrSrSr\rS SSS.SjjrSrSr S r S r g) TextTestRunnerzA test runner class that displays results in textual form. It prints out the names of tests as they are run, errors as they occur, and a summary of the results at the end of the test run. NF) tb_localsr,cUc[Rn[U5UlX lX0lX@lXPlXlXl Xpl UbX`l gg)zqConstruct a TextTestRunner. Subclasses should accept **kwargs to ensure compatibility as the interface changes. N) sysstderrrr r1r3failfastbufferrr,warnings resultclass) rr r1r3rrrrrr,s rrTextTestRunner.__init__sS >ZZF'/ ("  ""  "*  #rcURURURURURS9$![ a4 URURURUR5s$f=f)Nr+)rr r1r3r, TypeError)rs r _makeResultTextTestRunner._makeResultss 4##DKK1B1B$(NNdnn$N N 4##DKK1B1B$(NN4 4 4s9<;A:9A:cJUR(dg[URSSS9nURS:aUSURnURR S5 [ US5(a%URR UR 5 SnUHEupEURS:a US :aSnMURR S U-<S S U<35 MG U(aURR S 5 gURR S5 g)Nc US$)Nrr')rhs r0TextTestRunner._printDurations..sQqTrT)keyreverserzSlowest test durationsrxFgMbP?z%.3fs10 zA (durations < 0.001s were hidden; use -v to show these durations))collectedDurationssortedr,r rhasattrrxr3)rrlshiddenr:elapseds r_printDurationsTextTestRunner._printDurationss((  F--> " >>A OT^^$B 45 6< ( ( KK   1 1 2MD~~!go KK  g.? F G   KK  !B C KK   #rcUR5n[U5 URUlURUlURUl[ R "5 UR (a [ R"UR 5 [R"5n[USS5nUbU"5 U"U5 [USS5nUbU"5 [R"5nSSS5 WW- nUR"5 URbURU5 [US5(a%URR!UR"5 UR$nURR!SXS:g=(a S=(d SU4-5 URR!5 S =n =p['[(UR*UR,UR.45n U upn /n UR2"5(d{URR5S 5 [)UR65[)UR85pU(aU R;S U-5 U(aU R;S U-5 ODUS :Xa#U (dURR5S 5 OURR5S5 U (aU R;SU -5 U (aU R;SU -5 U (aU R;SU -5 U (a0URR!SSR=U 5<S35 OURR5S5 URR?5 U$![USS5nUbU"5 ff=f!,(df  GN=f![0a GNf=f)z&Run the given test case or test suite. startTestRunN stopTestRunrxzRan %d test%s in %.3fsrrbrrFAILEDz failures=%dz errors=%dz NO TESTS RANOKz skipped=%dzexpected failures=%dzunexpected successes=%dz (z, )r) rrrrrrcatch_warnings simplefiltertime perf_counterrrur,rrr rrxtestsRunmaplenexpectedFailuresrpskippedr wasSuccessfulrrsrrappendr8rA)rr:r startTimerrstopTime timeTakenrun expectedFailsrprresultsinfosfailederroreds rrTextTestRunner.runs!!#v--  >>  $ $ &}}%%dmm4))+I"6>4@L' "V %fmTB *M((*H'y(  >> %   ( 6< ( ( KK   1 1 2oo 4 ("2s"8b)DE F 899 9+ B# 7 7 & : : & 01G ;B 7M##%% KK  h '!&//2C 4FG ]V34 [723 AXg KK  n - KK  d #  LL/ 0  LL/-? @  LL25HH I  KK  499U+; = > KK  d #  e&fmTB *M+' &B   s7$AN3N ,N3 1ON00N33 O OO) rr1r,rrr rr3r)NTrFFNN) r!r"r#r$r%r)rrrrrr&r'rrr}r}s3 !KABJN+#t+*4$,Drr})r%rrrrrcasersignalsr __unittestobjectr TestResultr)r}r'rrrsN #     C V&&C L@V@r