+
    üÐjÿ}  ã                   óP  € ^ RI t ^ RIt^ RIt^ RIt^ RIHt ^ RIHt ^ RI	H
t
 ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ R	IHtHtHt ^ R
IHt ^ RIHt ^ RIHt ^ RIHtHtHtH t  ^ RI!H"t" ^ RI#H$t$H%t%  ! R R4      t&]
! ]$4       ! R R4      4       t' ! R R4      t( ! R R](]PR                  4      t* ! R R](]PR                  4      t+ ! R R4      t, ! R R],]PR                  4      t- ! R R],]PR                  4      t. ! R  R!],]PR                  4      t/ ! R" R#]PR                  4      t0 ! R$ R%]PR                  4      t1 ! R& R']PR                  4      t2 ! R( R)]24      t3 ! R* R+]Ph                  4      t5 ! R, R-]PR                  4      t6 ! R. R/]PR                  4      t7 ! R0 R14      t8 ! R2 R3]8]74      t9 ! R4 R5]8]74      t: ! R6 R7]PR                  4      t; ! R8 R9]PR                  4      t< ! R: R;]PR                  4      t= ! R< R=]PR                  4      t> ! R> R?]PR                  4      t?R# )@é    N)ÚStringIO©ÚList)Úimplementer)ÚverifyObject)Úplugin)Údefer)Útwisted_trial)ÚfailureÚlogÚreflect)ÚFilePath©ÚnamedAny)Útrial)ÚreporterÚrunnerÚunittestÚutil)Ú _ForceGarbageCollectionDecorator)Ú	IReporterÚ	ITestCasec                   ó,   a € ] tR t^t o R tR tRtV tR# )ÚCapturingDebuggerc                ó   € . V n         R # ©N©Ú_calls©Úselfs   &Ú@/usr/lib/python3/dist-packages/twisted/trial/test/test_runner.pyÚ__init__ÚCapturingDebugger.__init__   s	   € ØˆŽó    c                óh   € V P                   P                  R 4       V^ ,          ! VR,          / VB  R# )Úruncall:é   NNN©r   Úappend)r    ÚargsÚkwargss   &*,r!   r&   ÚCapturingDebugger.runcall"   s)   € Ø�‰×Ñ˜9Ô%ØˆQŽ��b•Ð$˜VÔ$r$   r   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r"   r&   Ú__static_attributes__Ú__classdictcell__©Ú__classdict__s   @r!   r   r      s   ø‡ € ò÷%ð %r$   r   c                   óŒ   a € ] tR t^'t o RtRtRtRtRtRt	RR lt
R tR tR tR tR tR	 tR
 tRR ltRR ltR tR tRtV tR# )ÚCapturingReporterz;
Reporter that keeps a log of all actions performed on it.
Nc                óR   € . V n         RV n        Wn        W n        W0n        W@n        R# )z
Create a capturing reporter.
FN)r   Ú
shouldStopÚ_streamÚ	_tbformatÚ	_rterrorsÚ
_publisher)r    ÚstreamÚtbformatÚrterrorsÚ	publishers   &&&&&r!   r"   ÚCapturingReporter.__init__3   s&   € ð ˆŒØˆŒØŒØ!ŒØ!ŒØ#Žr$   c                ó<   € V P                   P                  R4       R# )zq
Report the beginning of a run of a single test method
@param method: an object that is adaptable to ITestMethod
Ú	startTestNr(   ©r    Úmethods   &&r!   rC   ÚCapturingReporter.startTest>   s   € ð
 	�‰×Ñ˜;Ö'r$   c                ó<   € V P                   P                  R4       R# )ze
Report the status of a single test method
@param method: an object that is adaptable to ITestMethod
ÚstopTestNr(   rD   s   &&r!   rH   ÚCapturingReporter.stopTestE   s   € ð
 	�‰×Ñ˜:Ö&r$   c                ó<   € V P                   P                  R4       R# )zscalled when the reactor has been left in a 'dirty' state
@param errs: a list of L{twisted.python.failure.Failure}s
ÚcleanupErrorNr(   )r    Úerrss   &&r!   ÚcleanupErrorsÚCapturingReporter.cleanupErrorsL   s   € ð 	�‰×Ñ˜>Ö*r$   c                ó<   € V P                   P                  R 4       R# )Ú
addSuccessNr(   ©r    Útests   &&r!   rP   ÚCapturingReporter.addSuccessR   s   € Ø�‰×Ñ˜<Ö(r$   c                ó   € R# )z0
Do nothing. These tests don't care about done.
N© r   s   &r!   ÚdoneÚCapturingReporter.doneU   ó   ‚ r$   c                ó   € R# )z4
Do nothing. These tests don't care about addError.
NrU   ©r    rR   Úerrors   &&&r!   ÚaddErrorÚCapturingReporter.addErrorZ   rX   r$   c                ó   € R# )z6
Do nothing. These tests don't care about addFailure.
NrU   )r    rR   r   s   &&&r!   Ú
addFailureÚCapturingReporter.addFailure_   rX   r$   c                ó   € R# )z>
Do nothing. These tests don't care about addExpectedFailure.
NrU   )r    rR   r   Útodos   &&&&r!   ÚaddExpectedFailureÚ$CapturingReporter.addExpectedFailured   rX   r$   c                ó   € R# )z@
Do nothing. These tests don't care about addUnexpectedSuccess.
NrU   )r    rR   rb   s   &&&r!   ÚaddUnexpectedSuccessÚ&CapturingReporter.addUnexpectedSuccessi   rX   r$   c                ó   € R# )z3
Do nothing. These tests don't care about addSkip.
NrU   )r    rR   Úreasons   &&&r!   ÚaddSkipÚCapturingReporter.addSkipn   rX   r$   c                ó   € R# )z9
Do nothing. These tests don't care about wasSuccessful.
NrU   r   s   &r!   ÚwasSuccessfulÚCapturingReporter.wasSuccessfuls   rX   r$   )r   r<   r;   r9   r:   r8   )NNNNr   )r-   r.   r/   r0   Ú__doc__r=   r>   r*   Ú	separatorÚtestsRunr"   rC   rH   rM   rP   rV   r\   r_   rc   rf   rj   rm   r1   r2   r3   s   @r!   r6   r6   '   sf   ø‡ € ñð €FØ€HØ€DØ€IØ€Hô	$ò(ò'ò+ò)òò
ò
ô
ô
ò
÷
ð r$   r6   c                   ó<   a € ] tR t^yt o RtR tR tR tR tRt	V t
R# )ÚTrialRunnerTestsMixinz1
Mixin defining tests for L{runner.TrialRunner}.
c                ó   € R# )z-
Empty test method, used by the other tests.
NrU   r   s   &r!   Ú
test_emptyÚ TrialRunnerTestsMixin.test_empty~   rX   r$   c                ó6   € \         P                  P                  # r   )r   ÚtheLogPublisherÚ	observersr   s   &r!   Ú_getObserversÚ#TrialRunnerTestsMixin._getObserversƒ   s   € Ü×"Ñ"×,Ñ,Ð,r$   c                óÖ   € \        V P                  4       4      pV P                  P                  V P                  4       \        V P                  4       4      pV P                  W!4       R# )zV
Any log system observers L{TrialRunner.run} adds are removed by the
time it returns.
N)Úlenrz   r   ÚrunrR   ÚassertEqual)r    ÚoriginalCountÚnewCounts   &  r!   Útest_addObserversÚ'TrialRunnerTestsMixin.test_addObservers†   sL   € ô
 ˜D×.Ñ.Ó0Ó1ˆØ�‰�‰˜Ÿ	™	Ô"Ü�t×)Ñ)Ó+Ó,ˆØ×Ñ˜Ö1r$   c                óv  € \        V P                  P                  4      P                  V P                  P                  4      p\        ^4       Fg  pV P                  P                  V P                  4       VP                  4        V P                  VP                  4       4       VP                  4        Ki  	  R# )z-
Test that a new file is opened on each run.
N)r   r   ÚworkingDirectoryÚchildÚlogfileÚranger~   rR   ÚrestatÚ
assertTrueÚexistsÚremove)r    ÚlogPathÚis   &  r!   Útest_logFileAlwaysActiveÚ.TrialRunnerTestsMixin.test_logFileAlwaysActive�   sx   € ô ˜4Ÿ;™;×7Ñ7Ó8×>Ñ>¸t¿{¹{×?RÑ?RÓSˆä�q–ˆAØ�K‰K�O‰O˜DŸI™IÔ&Ø�N‰NÔØ�O‰O˜GŸN™NÓ,Ô-ð �N‰NÖó r$   rU   N)r-   r.   r/   r0   ro   ru   rz   r‚   r�   r1   r2   r3   s   @r!   rs   rs   y   s#   ø‡ € ñòò
-ò2÷ð r$   rs   c                   ó0   a € ] tR t^Ÿt o RtR tR tRtV tR# )ÚTrialRunnerTestsza
Tests for L{runner.TrialRunner} with the feature to turn unclean errors
into warnings disabled.
c                óš   € \        4       V n        \        P                  ! \        V P                  R 7      V n        \        R4      V n        R# )©r=   ru   N©r   r=   r   ÚTrialRunnerr6   r’   rR   r   s   &r!   ÚsetUpÚTrialRunnerTests.setUp¥   s0   € Ü“jˆŒÜ×(Ò(Ô):À4Ç;Á;ÔOˆŒÜ$ \Ó2ˆŽ	r$   c                óz   € V P                   P                  4       pV P                  VP                  \        4       R# )z€
The reporter constructed by L{runner.TrialRunner} is passed
L{twisted.python.log} as the value for the C{publisher} parameter.
N)r   Ú_makeResultÚassertIdenticalr<   r   ©r    Úresults   & r!   Útest_publisherÚTrialRunnerTests.test_publisherª   s,   € ð
 —‘×(Ñ(Ó*ˆØ×Ñ˜V×.Ñ.´Ö4r$   ©r   r=   rR   N)	r-   r.   r/   r0   ro   r—   rž   r1   r2   r3   s   @r!   r’   r’   Ÿ   s   ø‡ € ñò
3÷
5ð 5r$   r’   c                   ó*   a € ] tR t^³t o RtR tRtV tR# )Ú+TrialRunnerWithUncleanWarningsReporterTestszU
Tests for the TrialRunner's interaction with an unclean-error suppressing
reporter.
c                óœ   € \        4       V n        \        P                  ! \        V P                  R R7      V n        \        R4      V n        R# )T©r=   ÚuncleanWarningsru   Nr•   r   s   &r!   r—   Ú1TrialRunnerWithUncleanWarningsReporterTests.setUp»   s6   € Ü“jˆŒÜ×(Ò(Ü d§k¡kÀ4ô
ˆŒô % \Ó2ˆŽ	r$   r    N©r-   r.   r/   r0   ro   r—   r1   r2   r3   s   @r!   r¢   r¢   ³   s   ø‡ € ñ÷
3ð 3r$   r¢   c                   óB   a € ] tR t^Ãt o RtR tR tR tR tR t	Rt
V tR# )	ÚDryRunMixinzY
Mixin for testing that 'dry run' mode works with various
L{pyunit.TestCase} subclasses.
c                óÚ   € . V n         \        4       V n        \        P                  ! \
        \        P                  P                  V P                  R 7      V n        V P                  4        R# )r”   N)r   r   r=   r   r–   r6   ÚDRY_RUNÚmakeTestFixturesr   s   &r!   r—   ÚDryRunMixin.setUpÉ   sI   € ØˆŒÜ“jˆŒÜ×(Ò(Üœv×1Ñ1×9Ñ9À$Ç+Á+ô
ˆŒð 	×ÑÖr$   c                ó   € R# )zP
Set C{self.test} and C{self.suite}, where C{self.suite} is an empty
TestSuite.
NrU   r   s   &r!   r¬   ÚDryRunMixin.makeTestFixturesÑ   rX   r$   c                óš   € V P                   P                  \         P                  ! 4       4      pV P                  VP                  . 4       R# )zN
If there are no tests, the reporter should not receive any events to
report.
N)r   r~   Ú	TestSuiter   r   rœ   s   & r!   ru   ÚDryRunMixin.test_empty×   s3   € ð
 —‘—‘¤×!1Ò!1Ó!3Ó4ˆØ×Ñ˜Ÿ™¨Ö+r$   c                óŒ   € V P                   P                  V P                  4      pV P                  VP                  . RO4       R# )zn
If we are running a single test, check the reporter starts, passes and
then stops the test during a dry run.
N©rC   rP   rH   )r   r~   rR   r   r   rœ   s   & r!   Útest_singleCaseReportingÚ$DryRunMixin.test_singleCaseReportingß   s/   € ð
 —‘—‘ §¡Ó+ˆØ×Ñ˜Ÿ™Ò(OÖPr$   c                óˆ   € V P                   P                  V P                  4       V P                  V P                  . 4       R# )zD
When we are doing a dry run, the tests should not actually be run.
N)r   r~   rR   r   r   r   s   &r!   Útest_testsNotRunÚDryRunMixin.test_testsNotRunç   s,   € ð 	�‰�‰˜Ÿ	™	Ô"Ø×Ñ˜Ÿ™ 2Ö&r$   )r   r   r=   N)r-   r.   r/   r0   ro   r—   r¬   ru   rµ   r¸   r1   r2   r3   s   @r!   r©   r©   Ã   s)   ø‡ € ñò
 òò,òQ÷'ð 'r$   r©   c                   ó*   a € ] tR t^ït o RtR tRtV tR# )ÚSynchronousDryRunTestszK
Check that 'dry run' mode works well with trial's L{SynchronousTestCase}.
c                ó†   €  ! R  R\         P                  4      pV! R4      V n        \        P                  ! 4       V n        R# )c                   ó&   a € ] tR t^õt o R tRtV tR# )Ú;SynchronousDryRunTests.makeTestFixtures.<locals>.PyunitCasec                ó   € R # r   rU   r   s   &r!   Útest_fooÚDSynchronousDryRunTests.makeTestFixtures.<locals>.PyunitCase.test_fooö   ó   € Ùr$   rU   N©r-   r.   r/   r0   rÀ   r1   r2   r3   s   @r!   Ú
PyunitCaser¾   õ   ó   ø‡ € ÷ð r$   rÄ   rÀ   N)r   ÚSynchronousTestCaserR   Úpyunitr±   Úsuite©r    rÄ   s   & r!   r¬   Ú'SynchronousDryRunTests.makeTestFixturesô   s2   € ô	œ×5Ñ5ô 	ñ ˜zÓ*ˆŒ	Ü×%Ò%Ó'ˆŽ
r$   ©rÈ   rR   N©r-   r.   r/   r0   ro   r¬   r1   r2   r3   s   @r!   r»   r»   ï   ó   ø‡ € ñ÷(ð (r$   r»   c                   ó*   a € ] tR t^ýt o RtR tRtV tR# )ÚDryRunTestsz8
Check that 'dry run' mode works well with Trial tests.
c                óŽ   a €  ! V 3R  lR\         P                  4      pV! R4      S n        \        P                  ! 4       S n        R# )c                   ó.   <a € ] tR tRt o V3R ltRtV tR# )Ú.DryRunTests.makeTestFixtures.<locals>.MockTesti  c                ó>   <€ SP                   P                  R 4       R# )rÀ   N)r   r)   )rR   r    s   &€r!   rÀ   Ú7DryRunTests.makeTestFixtures.<locals>.MockTest.test_foo  s   ø€ Ø—‘—‘ 
Ö+r$   rU   NrÃ   )r4   r    s   @€r!   ÚMockTestrÒ     s   ù‡ € ÷,ó ,r$   rÕ   rÀ   N)r   ÚTestCaserR   r   r±   rÈ   )r    rÕ   s   f r!   r¬   ÚDryRunTests.makeTestFixtures  s3   ø€ ÷	,”x×(Ñ(ô 	,ñ ˜ZÓ(ˆŒ	Ü×%Ò%Ó'ˆŽ
r$   rË   NrÌ   r3   s   @r!   rÏ   rÏ   ý   rÍ   r$   rÏ   c                   ó*   a € ] tR tRt o RtR tRtV tR# )ÚPyUnitDryRunTestsi  zB
Check that 'dry run' mode works well with stdlib unittest tests.
c                ó†   €  ! R  R\         P                  4      pV! R4      V n        \         P                  ! 4       V n        R# )c                   ó&   a € ] tR tRt o R tRtV tR# )Ú6PyUnitDryRunTests.makeTestFixtures.<locals>.PyunitCasei  c                ó   € R # r   rU   r   s   &r!   rÀ   Ú?PyUnitDryRunTests.makeTestFixtures.<locals>.PyunitCase.test_foo  rÂ   r$   rU   NrÃ   r3   s   @r!   rÄ   rÜ     rÅ   r$   rÄ   rÀ   N)rÇ   rÖ   rR   r±   rÈ   rÉ   s   & r!   r¬   Ú"PyUnitDryRunTests.makeTestFixtures  s0   € ô	œŸ™ô 	ñ ˜zÓ*ˆŒ	Ü×%Ò%Ó'ˆŽ
r$   rË   NrÌ   r3   s   @r!   rÙ   rÙ     rÍ   r$   rÙ   c                   óš   a € ] tR tRt o R tR tR tR tR tR t	R t
R	 tR
 tR tR tR tR tR tR tR t]! 4       tR tR tRtV tR# )ÚRunnerTestsi  c           	     ór  a a€ \         P                  ! 4       S n        \        P                  ! \
        4      P                  R 4      pR P                  VRR 4      pVR,          p\        P                  ! RVRRRVR7      .oVV 3R lp\        P                  S n        V\        n        . RO^
,          S n        R# )	Ú.NzTest Helper ReporterzUtility for unit testing.Ú	capturing)ÚdescriptionÚlongOptÚshortOptÚklassc                 ó|   <€ SP                  V \        4       S\        SP                  ! V .VO5/ VB 4      ,           # r   )r   r   ÚlistÚoriginal)ÚifaceÚaÚkwÚpluginsr    s   &*,€€r!   Ú
getPluginsÚ%RunnerTests.setUp.<locals>.getPlugins/  s6   ø€ Ø×Ñ˜U¤IÔ.ØœT $§-¢-°Ð"@¸Ò"@¸RÑ"@ÓAÕAÐAr$   éÿÿÿÿr´   )r   ÚOptionsÚconfigr   Úqualr6   ÚsplitÚjoinr
   Ú	_Reporterr   rð   rë   ÚstandardReport)r    ÚpartsÚpackagerè   rð   rï   s   f    @r!   r—   ÚRunnerTests.setUp  s�   ù€ Ü—m’m“oˆŒô —’Ô.Ó/×5Ñ5°cÓ:ˆØ—(‘(˜5  "˜:Ó&ˆØ�b•	ˆä×#Ò#Ø&ØØ7Ø#ØØôð	
ˆö	Bô ×)Ñ)ˆŒØ&ŒÔò
 FÈÕJˆÖr$   c                ó0   € V P                   \        n        R # r   )rë   r   rð   r   s   &r!   ÚtearDownÚRunnerTests.tearDown;  s   € Ø ŸM™MŒÖr$   c                ó<   € V P                   P                  V4       R # r   )rô   ÚparseOptions©r    r*   s   &&r!   r  ÚRunnerTests.parseOptions>  s   € Ø�‰× Ñ  Ö&r$   c                ód   € \         P                  ! V P                  4      p\        4       Vn        V# r   )r   Ú_makeRunnerrô   r   r=   )r    Úrs   & r!   Ú	getRunnerÚRunnerTests.getRunnerA  s$   € Ü×Ò˜dŸk™kÓ*ˆÜ“:ˆŒØˆr$   c                óÂ   € V P                  . 4       V P                  R ,          pV P                  4       pV P                  WP                  ! 4       P
                  4       R# ©r   N)r  rô   r  r   rš   Ú	__class__)r    r�   r   s   &  r!   Útest_runner_can_get_reporterÚ(RunnerTests.test_runner_can_get_reporterF  sG   € Ø×Ñ˜"ÔØ—‘˜ZÕ(ˆØ—‘Ó!ˆØ×Ñ˜×!3Ò!3Ó!5×!?Ñ!?Ö@r$   c                óÄ   € V P                  . 4       V P                  4       pVP                  ! 4       pV P                  VP                  V P
                  R ,          4       R# r
  )r  r  rš   r   r  rô   ©r    r   r�   s   &  r!   Útest_runner_get_resultÚ"RunnerTests.test_runner_get_resultL  sI   € Ø×Ñ˜"ÔØ—‘Ó!ˆØ×#Ò#Ó%ˆØ×Ñ˜×)Ñ)¨4¯;©;°zÕ+BÖCr$   c                ó¦   € V P                  . 4       V P                  4       pV P                  VP                  ! 4       \        P
                  4       R# )zµ
By default Trial sets the 'uncleanWarnings' option on the runner to
False. This means that dirty reactor errors will be reported as
errors. See L{test_reporter.DirtyReactorTests}.
N)r  r  ÚassertNotIsInstancerš   r   ÚUncleanWarningsReporterWrapper©r    r   s   & r!   Ú test_uncleanWarningsOffByDefaultÚ,RunnerTests.test_uncleanWarningsOffByDefaultR  s@   € ð 	×Ñ˜"ÔØ—‘Ó!ˆØ× Ñ Ø×ÒÓ ¤(×"IÑ"Iö	
r$   c                ó¨   € V P                  R.4       V P                  4       pV P                  VP                  ! 4       \        P
                  4       R# )zÏ
Specifying '--unclean-warnings' on the trial command line will cause
reporters to be wrapped in a device which converts unclean errors to
warnings.  See L{test_reporter.DirtyReactorTests} for implications.
z--unclean-warningsN)r  r  ÚassertIsInstancerš   r   r  r  s   & r!   Útest_getsUncleanWarningsÚ$RunnerTests.test_getsUncleanWarnings^  sD   € ð 	×ÑÐ/Ð0Ô1Ø—‘Ó!ˆØ×ÑØ×ÒÓ ¤(×"IÑ"Iö	
r$   c                ó„   € V P                  R R.4       V P                  4       pV P                  VP                  R4       R# )ú--temp-directoryÚ	some_pathN)r  r  r   r…   r  s   & r!   Útest_runner_working_directoryÚ)RunnerTests.test_runner_working_directoryj  s8   € Ø×ÑÐ-¨{Ð;Ô<Ø—‘Ó!ˆØ×Ñ˜×0Ñ0°+Ö>r$   c           	     óð  aaaa€ V P                  . 4       V P                  \        P                  \        P                  ! 4       4       \        V P                  4       4      oSP                  4        \        P                  ! SP                  4       V P                  4       pV P                  4       o/ o ! VVVV3R lR\        P                  4      oVP                  S! R4      4      pVP                  VP                  ,           pV'       d    V P                  V^ ,          ^,          4       V P!                  SRSP#                  R4      P                  RSP#                  R4      P                  /4       R# )	z¹
If no working directory is explicitly specified and the default
working directory is in use by another runner, L{TrialRunner.run}
selects a different default working directory to use.
c                   ó@   <a € ] tR tRt o VVVV3R ltV3R ltRtV tR# )ÚKRunnerTests.test_concurrentImplicitWorkingDirectory.<locals>.ConcurrentCasei‡  c                óê   <€ \         P                  ! 4       ;SR&   p\         P                  ! SP                  4       V P	                  \         P                  V4       SP                  S! R4      4       R# )z•
Start a second test run which will have a default working
directory which is the same as the working directory of the
test run already in progress.
Ú
concurrentÚtest_secondN)ÚosÚgetcwdÚchdirÚpathÚ
addCleanupr~   )r    ÚsubsequentDirectoryÚConcurrentCaseÚrunDirectoryÚsecondRunnerÚwheres   & €€€€r!   Ú
test_firstÚVRunnerTests.test_concurrentImplicitWorkingDirectory.<locals>.ConcurrentCase.test_firstˆ  sS   ø€ ô =?¿IºI»KÐG��lÑ#Ð&9Ü—’˜×*Ñ*Ô+Ø—‘¤§¡Ð*=Ô>à× Ñ ¡°Ó!>Ö?r$   c                ó8   <€ \         P                  ! 4       SR&   R# )z2
Record the working directory for later analysis.
ÚrecordN)r'  r(  )r    r0  s   &€r!   r&  ÚWRunnerTests.test_concurrentImplicitWorkingDirectory.<locals>.ConcurrentCase.test_second–  s   ø€ ô #%§)¢)£+��h“r$   rU   N)r-   r.   r/   r0   r1  r&  r1   r2   )r4   r-  r.  r/  r0  s   @€€€€r!   r-  r#  ‡  s   ù‡ € ÷@ð @÷.ó .r$   r-  r1  r%  Ú_trial_tempr4  z_trial_temp-1N)r  r+  r'  r)  r(  r   ÚmktempÚmakedirsr*  r  r   rÆ   r~   ÚerrorsÚfailuresÚfailr   r†   )r    ÚfirstRunnerr�   Úbadr-  r.  r/  r0  s   &   @@@@r!   Ú'test_concurrentImplicitWorkingDirectoryÚ3RunnerTests.test_concurrentImplicitWorkingDirectoryo  s  û€ ð 	×Ñ˜"Ôð 	�‰œŸ™¤"§)¢)£+Ô.ô
   §¡£Ó.ˆØ×ÑÔÜ
�Š�×"Ñ"Ô#à—n‘nÓ&ˆØ—~‘~Ó'ˆàˆ÷	.ò 	.œX×9Ñ9ô 	.ð* —‘¡°Ó!=Ó>ˆØ�m‰m˜fŸo™oÕ-ˆßØ�I‰I�c˜!•f˜Q•iÔ Ø×ÑØà˜l×0Ñ0°Ó?×DÑDØ˜,×,Ñ,¨_Ó=×BÑBðö	
r$   c                ó$  aa€ V P                  R\        P                  P                  V P	                  4       4      .4       \        P
                  ! 4       pV P                  \        P                  V4       V P                  4       pV P                  4       o ! VV3R lR\        P                  4      oVP                  S! R4      4      pVP                  VP                  ,           pV'       d"   V P                  V^ ,          ^,          4       R# R# )z}
If a working directory which is already in use is explicitly specified,
L{TrialRunner.run} raises L{_WorkingDirectoryBusy}.
r  c                   ó6   <a € ] tR tRt o VV3R ltR tRtV tR# )ÚKRunnerTests.test_concurrentExplicitWorkingDirectory.<locals>.ConcurrentCaseiµ  c                ój   <€ V P                  \        P                  SP                  S! R4      4       R# )zo
Try to start another runner in the same working directory and
assert that it raises L{_WorkingDirectoryBusy}.
Útest_failureN)ÚassertRaisesr   Ú_WorkingDirectoryBusyr~   )r    r-  r/  s   &€€r!   Útest_concurrentÚ[RunnerTests.test_concurrentExplicitWorkingDirectory.<locals>.ConcurrentCase.test_concurrent¶  s-   ø€ ð
 ×!Ñ!Ü×.Ñ.Ø ×$Ñ$Ù" >Ó2ör$   c                ó(   € V P                  R4       R# )z%
Should not be called, always fails.
z$test_failure should never be called.N)r;  r   s   &r!   rD  ÚXRunnerTests.test_concurrentExplicitWorkingDirectory.<locals>.ConcurrentCase.test_failureÁ  s   € ð —	‘	Ð@ÖAr$   rU   N)r-   r.   r/   r0   rG  rD  r1   r2   )r4   r-  r/  s   @€€r!   r-  rB  µ  s   ù‡ € ö	÷Bð Br$   r-  rG  N)r  r'  r*  Úabspathr7  r(  r+  r)  r  r   rÆ   r~   r9  r:  r;  )r    ÚinitialDirectoryr<  r�   r=  r-  r/  s   &    @@r!   Ú'test_concurrentExplicitWorkingDirectoryÚ3RunnerTests.test_concurrentExplicitWorkingDirectory¨  sÁ   ù€ ð
 	×ÑÐ-¬r¯w©w¯©¸t¿{¹{»}Ó/MÐNÔOäŸ9š9›;ÐØ�‰œŸ™Ð"2Ô3à—n‘nÓ&ˆØ—~‘~Ó'ˆ÷	Bð 	BœX×9Ñ9ô 	Bð$ —‘¡Ð0AÓ!BÓCˆØ�m‰m˜fŸo™oÕ-ˆßØ�I‰I�c˜!•f˜Q•iÖ ñ r$   c                ó*  € V P                  R V P                  4       RRR.4       V P                  4       p\        P                  ! 4       pVP                  RR4      pVP                  V4      pV P                  V P                  VP                  4       R# )r  ú
--reporterrä   útwisted.trial.test.sampleTN)
r  r7  r  r   Ú
TestLoaderÚ
loadByNamer~   r   rù   r   )r    Ú	my_runnerÚloaderrÈ   r�   s   &    r!   Útest_runner_normalÚRunnerTests.test_runner_normalÌ  s�   € Ø×Ñà"Ø—‘“ØØØ+ðô	
ð —N‘NÓ$ˆ	Ü×"Ò"Ó$ˆØ×!Ñ!Ð"=¸tÓDˆØ—‘˜uÓ%ˆØ×Ñ˜×,Ñ,¨f¯m©mÖ<r$   c                ór   € \         P                  ! 4       pVP                  R R4      pVP                  V4      # )rQ  T)r   rR  rS  r~   )r    rT  rU  rÈ   s   &&  r!   ÚrunSampleSuiteÚRunnerTests.runSampleSuiteÜ  s2   € Ü×"Ò"Ó$ˆØ×!Ñ!Ð"=¸tÓDˆØ�}‰}˜UÓ#Ð#r$   c                ó  € V P                  . RO4       V P                  4       p\        4       ;q!n        V P	                  V4      pV P                  V P                  VP                  4       V P                  R.VP                  4       R# )z<
Trial uses its debugger if the `--debug` option is passed.
r&   N)rP  rä   ú--debugrQ  )r  r  r   ÚdebuggerrY  r   rù   r   )r    rT  r]  r�   s   &   r!   Útest_runnerDebugÚRunnerTests.test_runnerDebugá  sq   € ð 	×ÑÚOô	
ð —N‘NÓ$ˆ	Ü(9Ó(;Ð;ˆÔ%Ø×$Ñ$ YÓ/ˆØ×Ñ˜×,Ñ,¨f¯m©mÔ<Ø×Ñ˜)˜ h§o¡oÖ6r$   c                ó4  a € S P                  RR.4       \        R4      pVP                  4        RS n        V 3R lpS P	                  \
        P                  RV4       S P                  S P                  4       4       S P                  S P                  4       R# )z<
Trial uses pdb if no debugger is specified by `--debugger`
r\  rQ  ÚpdbrcFc                 ó   <€ R Sn         R# ©TN©Úruncall_called©ÚpdbrÈ   r�   r    s   &&&€r!   r&   Ú=RunnerTests.test_runnerDebuggerDefaultsToPdb.<locals>.runcallø  ó   ø€ Ø"&ˆDÖr$   r&   N)
r  r   Útouchre  Úpatchrg  ÚPdbrY  r  rŠ   )r    Ú	pdbrcFiler&   s   f  r!   Ú test_runnerDebuggerDefaultsToPdbÚ,RunnerTests.test_runnerDebuggerDefaultsToPdbî  sw   ø€ ð 	×Ñ˜9Ð&AÐBÔCÜ˜WÓ%ˆ	Ø�‰Ôà#ˆÔõ	'ð 	�
‰
”3—7‘7˜I wÔ/à×Ñ˜DŸN™NÓ,Ô-à�‰˜×+Ñ+Ö,r$   c                óþ   a € S P                  . RO4       RS n        V 3R lpS P                  \        P                  RV4       S P                  S P                  4       4       S P                  S P                  4       R# )zE
Trial uses pdb if pdb is passed explicitly to the `--debugger` arg.
Fc                 ó   <€ R Sn         R# rc  rd  rf  s   &&&€r!   r&   ÚGRunnerTests.test_runnerDebuggerWithExplicitlyPassedPdb.<locals>.runcall  ri  r$   r&   N)rP  rä   ú
--debuggerrg  r\  rQ  )r  re  rk  rg  rl  rY  r  rŠ   )r    r&   s   f r!   Ú*test_runnerDebuggerWithExplicitlyPassedPdbÚ6RunnerTests.test_runnerDebuggerWithExplicitlyPassedPdb  sd   ø€ ð 	×Ñòô		
ð $ˆÔõ	'ð 	�
‰
”3—7‘7˜I wÔ/à×Ñ˜DŸN™NÓ,Ô-à�‰˜×+Ñ+Ö,r$   c                ó  € V P                  . RO4       V P                  4       pV P                  V4      pV P                  V P                  VP
                  4       V P                  R.VP                  P
                  4       R# )z=
Trial uses specified debugger if the debugger is available.
r&   N)rP  rä   rs  z4twisted.trial.test.test_runner.RunnerTests.cdebuggerr\  rQ  )r  r  rY  r   rù   r   r]  )r    rT  r�   s   &  r!   Útest_runnerDebuggerÚRunnerTests.test_runnerDebugger  sm   € ð 	×Ñòô		
ð —N‘NÓ$ˆ	Ø×$Ñ$ YÓ/ˆØ×Ñ˜×,Ñ,¨f¯m©mÔ<Ø×Ñ˜)˜ i×&8Ñ&8×&?Ñ&?Ö@r$   c                ó¬   € V P                  R.4       V P                  4       pVP                  ! 4       pV P                  V\        P
                  4       R# )z}
If trial was passed the C{--exitfirst} option, the constructed test
result object is wrapped with L{reporter._ExitWrapper}.
z--exitfirstN)r  r  rš   r  r   Ú_ExitWrapperr  s   &  r!   Útest_exitfirstÚRunnerTests.test_exitfirst0  sD   € ð
 	×Ñ˜=˜/Ô*Ø—‘Ó!ˆØ×#Ò#Ó%ˆØ×Ñ˜f¤h×&;Ñ&;Ö<r$   )rô   rë   re  rù   N)r-   r.   r/   r0   r—   rþ   r  r  r  r  r  r  r  r>  rM  rV  rY  r^  rn  rt  r   Ú	cdebuggerrw  r{  r1   r2   r3   s   @r!   rá   rá     su   ø‡ € òKòB*ò'òò
AòDò

ò

ò?ò
7
òr"!òH=ò $ò
7ò-ò&-ñ4 "Ó#€IòA÷&=ð =r$   rá   c                   ó&   a € ] tR tRt o R tRtV tR# )ÚTrialSuiteTestsi;  c                ó   € \        R 4       R# )ztwisted.trial.runner.TrialSuiteNr   r   s   &r!   Útest_importsÚTrialSuiteTests.test_imports<  s   € äÐ2Ö3r$   rU   N)r-   r.   r/   r0   r�  r1   r2   r3   s   @r!   r  r  ;  s   ø‡ € ÷4ð 4r$   r  c                   óh   a € ] tR tRt o  ! R R]P
                  4      tR tR tR t	R t
R tR	tV tR
# )ÚUntilFailureTestsiA  c                   ó:   a € ] tR tRt o Rt. tR tV 3R ltRtV t	R# )ÚUntilFailureTests.FailAfteriB  z3
A test case that fails when run 3 times in a row.
c                ó–   € V P                   P                  R 4       \        V P                   4      ^8X  d   V P                  R4       R # R # )NzCount reached 3)Úcountr)   r}   r;  r   s   &r!   rÀ   Ú$UntilFailureTests.FailAfter.test_fooI  s6   € Ø�J‰J×Ñ˜dÔ#Ü�4—:‘:‹ !Ô#Ø—	‘	Ð+Ö,ñ $r$   c                ó4   <€ V ^8„  d   Qh/ S[ R,          ;R&   # )é   Nrˆ  r   )Úformatr4   s   "€r!   Ú__annotate__Ú(UntilFailureTests.FailAfter.__annotate__B  s   ø‡ ‚ ñ
 �D�zÑò r$   rU   N)
r-   r.   r/   r0   ro   rˆ  rÀ   Ú__annotate_func__r1   r2   r3   s   @r!   Ú	FailAfterr†  B  s   ø‡ € ñ	ð ˆò	-÷ ƒ r$   r�  c                óì   € . \         P                  n        \         P                  R 4      V n        \	        4       V n        \        P                  ! \        P                  V P
                  R7      V n        R# )rÀ   r”   N)
r„  r�  rˆ  rR   r   r=   r   r–   r   ÚReporterr   s   &r!   r—   ÚUntilFailureTests.setUpN  sJ   € Ø,.Ô×#Ñ#Ô)Ü%×/Ñ/°
Ó;ˆŒ	Ü“jˆŒÜ×(Ò(¬×):Ñ):À4Ç;Á;ÔOˆŽr$   c                ó  € V P                   P                  V P                  4      pV P                  VP                  ^4       V P                  VP                  4       4       V P                  V P                  V4      ^4       R# )zT
Test that the runUntilFailure method of the runner actually fail after
a few runs.
N)r   ÚrunUntilFailurerR   r   rq   ÚassertFalserm   Ú_getFailuresrœ   s   & r!   Útest_runUntilFailureÚ&UntilFailureTests.test_runUntilFailureT  sb   € ð
 —‘×,Ñ,¨T¯Y©YÓ7ˆØ×Ñ˜Ÿ™¨!Ô,Ø×Ñ˜×-Ñ-Ó/Ô0Ø×Ñ˜×*Ñ*¨6Ó2°AÖ6r$   c                ó,   € \        VP                  4      # )z<
Get the number of failures that were reported to a result.
)r}   r:  rœ   s   &&r!   r—  ÚUntilFailureTests._getFailures^  s   € ô �6—?‘?Ó#Ð#r$   c                óD  a€ . oV3R lpV P                  \        RV4       V P                  P                  V P                  4      pV P                  VP                  ^4       V P                  \        S4      ^4       V P                  SV P                  \        3.4       R# )zu
C{runUntilFailure} doesn't decorate the tests uselessly: it does it one
time when run starts, but not at each turn.
c                 ó,   <€ SP                  W34       V # r   ©r)   ©rR   Ú	interfaceÚ	decorateds   &&€r!   ÚdecorateÚ@UntilFailureTests.test_runUntilFailureDecorate.<locals>.decoratek  ó   ø€ Ø×Ñ˜dÐ.Ô/ØˆKr$   r¢  N)	rk  r   r   r•  rR   r   rq   r}   r   ©r    r¢  r�   r¡  s   &  @r!   Útest_runUntilFailureDecorateÚ.UntilFailureTests.test_runUntilFailureDecorated  s}   ø€ ð
 ˆ	õ	ð 	�
‰
”8˜Z¨Ô2Ø—‘×,Ñ,¨T¯Y©YÓ7ˆØ×Ñ˜Ÿ™¨!Ô,à×Ñœ˜Y›¨Ô+Ø×Ñ˜ d§i¡i´Ð%;Ð$<Ö=r$   c                óˆ  a€ . oV3R lpV P                  \        RV4       RV P                  n        V P                  P	                  V P
                  4      pV P                  VP                  ^4       V P                  \        S4      ^4       V P                  SV P
                  \        3V P
                  \        3.4       R# )zs
C{runUntilFailure} applies the force-gc decoration after the standard
L{ITestCase} decoration, but only one time.
c                 ó,   <€ SP                  W34       V # r   rž  rŸ  s   &&€r!   r¢  ÚGUntilFailureTests.test_runUntilFailureForceGCDecorate.<locals>.decorate}  r¤  r$   r¢  TN)rk  r   r   Ú_forceGarbageCollectionr•  rR   r   rq   r}   r   r   r¥  s   &  @r!   Ú#test_runUntilFailureForceGCDecorateÚ5UntilFailureTests.test_runUntilFailureForceGCDecoratev  s™   ø€ ð
 ˆ	õ	ð 	�
‰
”8˜Z¨Ô2Ø.2ˆ�‰Ô+Ø—‘×,Ñ,¨T¯Y©YÓ7ˆØ×Ñ˜Ÿ™¨!Ô,à×Ñœ˜Y›¨Ô+Ø×ÑØØ�i‰iœÐ# d§i¡iÔ1QÐ%RÐSö	
r$   r    N)r-   r.   r/   r0   rÇ   rÖ   r�  r—   r˜  r—  r¦  r¬  r1   r2   r3   s   @r!   r„  r„  A  s4   ø‡ € ô
-�F—O‘Oô 
-òPò7ò$ò>÷$
ð 
r$   r„  c                   ó0   a € ] tR tRt o RtR tR tRtV tR# )ÚUncleanUntilFailureTestsi�  z\
Test that the run-until-failure feature works correctly with the unclean
error suppressor.
c                óœ   € \         P                  V 4       \        P                  ! \        P
                  V P                  R R7      V n        R# )Tr¤   N)r„  r—   r   r–   r   r’  r=   r   s   &r!   r—   ÚUncleanUntilFailureTests.setUp“  s3   € Ü×Ñ Ô%Ü×(Ò(Ü×Ñ d§k¡kÀ4ô
ˆŽr$   c                ó@   € \        VP                  P                  4      # )zh
Get the number of failures that were reported to a result that
is wrapped in an UncleanFailureWrapper.
)r}   Ú_originalReporterr:  rœ   s   &&r!   r—  Ú%UncleanUntilFailureTests._getFailures™  s   € ô
 �6×+Ñ+×4Ñ4Ó5Ð5r$   )r   N)	r-   r.   r/   r0   ro   r—   r—  r1   r2   r3   s   @r!   r¯  r¯  �  s   ø‡ € ñò

÷6ð 6r$   r¯  c                   ó*   a € ] tR tRt o RtR tRtV tR# )ÚBreakingSuitei¡  z3
A L{TestSuite} that logs an error when it is run.
c                ó�   €  \        R 4      h  \          d.    \        P                  ! \        P                  ! 4       4        R# i ; i)z#error that occurs outside of a testN)ÚRuntimeErrorr   Úerrr   ÚFailurerœ   s   &&r!   r~   ÚBreakingSuite.run¦  s5   € ð	'ÜÐDÓEÐEøÜô 	'Ü�GŠG”G—O’OÓ%×&ð	'ús   ‚ �4AÁArU   N)r-   r.   r/   r0   ro   r~   r1   r2   r3   s   @r!   r¶  r¶  ¡  s   ø‡ € ñ÷'ð 'r$   r¶  c                   ó6   a € ] tR tRt o RtR tR tR tRtV t	R# )ÚLoggedErrorsTestsi­  zù
It is possible for an error generated by a test to be logged I{outside} of
any test. The log observers constructed by L{TestCase} won't catch these
errors. Here we try to generate such errors and ensure they are reported to
a L{TestResult} object.
c                ó0   € V P                  \        4       R # r   )ÚflushLoggedErrorsr¸  r   s   &r!   rþ   ÚLoggedErrorsTests.tearDownµ  s   € Ø×Ñœ|Ö,r$   c                óp   € \         P                  ! 4       pV P                  VP                  4       ^ 4       R# )zO
Check that we can construct a L{runner.LoggedSuite} and that it
starts empty.
N)r   ÚLoggedSuiter   ÚcountTestCases)r    rÈ   s   & r!   Útest_constructÚ LoggedErrorsTests.test_construct¸  s+   € ô
 ×"Ò"Ó$ˆØ×Ñ˜×-Ñ-Ó/°Ö3r$   c                óÞ  € \         P                  ! 4       p\        P                  ! \	        4       .4      pVP                  V4       V P                  \        VP                  4      ^4       V P                  VP                  ^ ,          ^ ,          P                  4       \        P                  4       V P                  VP                  ^ ,          ^,          P                  \        4      4       R# )zE
Chek that a L{LoggedSuite} reports any logged errors to its result.
N)r   Ú
TestResultr   rÂ  r¶  r~   r   r}   r9  ÚidÚNOT_IN_TESTrŠ   Úcheckr¸  )r    r�   rÈ   s   &  r!   Útest_capturesErrorÚ$LoggedErrorsTests.test_capturesErrorÀ  sž   € ô ×$Ò$Ó&ˆÜ×"Ò"¤M£OÐ#4Ó5ˆØ�	‰	�&ÔØ×Ñœ˜VŸ]™]Ó+¨QÔ/Ø×Ñ˜Ÿ™ qÕ)¨!Õ,×/Ñ/Ó1´6×3EÑ3EÔFØ�‰˜Ÿ™ aÕ(¨Õ+×1Ñ1´,Ó?Ö@r$   rU   N)
r-   r.   r/   r0   ro   rþ   rÄ  rË  r1   r2   r3   s   @r!   r½  r½  ­  s    ø‡ € ñò-ò4÷	Að 	Ar$   r½  c                   ó8   a € ] tR tRt o R tR tR tR tRtV t	R# )ÚTestHolderTestsiÌ  c                ó^   € R V n         \        P                  ! V P                   4      V n        R# ©rå   N)rå   r   Ú
TestHolderÚholderr   s   &r!   r—   ÚTestHolderTests.setUpÍ  s"   € Ø(ˆÔÜ×'Ò'¨×(8Ñ(8Ó9ˆŽr$   c                óÖ   € V P                  V P                  P                  4       V P                  4       V P                  V P                  P	                  4       V P                  4       R# )z˜
Check that L{runner.TestHolder} takes a description as a parameter
and that this description is returned by the C{id} and
C{shortDescription} methods.
N)r   rÒ  rÈ  rå   ÚshortDescriptionr   s   &r!   Útest_holderÚTestHolderTests.test_holderÑ  sH   € ð 	×Ñ˜Ÿ™Ÿ™Ó)¨4×+;Ñ+;Ô<Ø×Ñ˜Ÿ™×5Ñ5Ó7¸×9IÑ9IÖJr$   c                óä   € V P                  V P                  \        V P                  4      4       V P                  \	        \        V P                  4      V P                  : R\        : R24       R# )z/
L{runner.TestHolder} implements L{ITestCase}.
z claims to provide z but does not do so correctly.N)r›   rÒ  r   rŠ   r   r   s   &r!   Útest_holderImplementsITestCaseÚ.TestHolderTests.test_holderImplementsITestCaseÚ  sI   € ð 	×Ñ˜TŸ[™[¬)°D·K±KÓ*@ÔAØ�‰Üœ D§K¡KÓ0à�{Œ{ŸIð'ö	
r$   c                óÜ   € \         P                  ! 4       pV P                  P                  V4       V P	                  VP                  4       4       V P                  ^VP                  4       R# )zK
A L{runner.TestHolder} can run against the standard Python
C{TestResult}.
N)rÇ   rÇ  rÒ  r~   rŠ   rm   r   rq   rœ   s   & r!   Útest_runsWithStandardResultÚ+TestHolderTests.test_runsWithStandardResultå  sK   € ô
 ×"Ò"Ó$ˆØ�‰�‰˜ÔØ�‰˜×,Ñ,Ó.Ô/Ø×Ñ˜˜FŸO™OÖ,r$   )rå   rÒ  N)
r-   r.   r/   r0   r—   rÖ  rÙ  rÜ  r1   r2   r3   s   @r!   rÎ  rÎ  Ì  s   ø‡ € ò:òKò	
÷-ð -r$   rÎ  c                   óf   a € ] tR tRt o Rt]! R4      t ! R R4      tR tR t	R t
R	 tR
 tRtV tR# )ÚErrorHolderTestsMixinið  aE  
This mixin defines test methods which can be applied to a
L{runner.ErrorHolder} constructed with either a L{Failure} or a
C{exc_info}-style tuple.

Subclass this and implement C{setUp} to create C{self.holder} referring to a
L{runner.ErrorHolder} instance and C{self.error} referring to a L{Failure}
which the holder holds.
z"integer division or modulo by zeroc                   ó<   a € ] tR tRt o RtR tR tR tR tRt	V t
R# )	Ú$ErrorHolderTestsMixin.TestResultStubiý  z
Stub for L{TestResult}.
c                ó   € . V n         R # r   ©r9  r   s   &r!   r"   Ú-ErrorHolderTestsMixin.TestResultStub.__init__  s	   € ØˆDŽKr$   c                ó   € R # r   rU   rQ   s   &&r!   rC   Ú.ErrorHolderTestsMixin.TestResultStub.startTest  ó   € Ùr$   c                ó   € R # r   rU   rQ   s   &&r!   rH   Ú-ErrorHolderTestsMixin.TestResultStub.stopTest  rç  r$   c                ó>   € V P                   P                  W34       R # r   )r9  r)   rZ   s   &&&r!   r\   Ú-ErrorHolderTestsMixin.TestResultStub.addError  s   € Ø�K‰K×Ñ ˜}Ö-r$   rã  N)r-   r.   r/   r0   ro   r"   rC   rH   r\   r1   r2   r3   s   @r!   ÚTestResultStubrá  ý  s#   ø‡ € ñ	ò	ò	ò	÷	.ð 	.r$   rì  c                óÜ   € \         P                  ! 4       pV P                  P                  V4       V P	                  VP                  4       4       V P                  ^VP                  4       R# )zL
A L{runner.ErrorHolder} can run against the standard Python
C{TestResult}.
N)rÇ   rÇ  rÒ  r~   r–  rm   r   rq   rœ   s   & r!   rÜ  Ú1ErrorHolderTestsMixin.test_runsWithStandardResult  sM   € ô
 ×"Ò"Ó$ˆØ�‰�‰˜ÔØ×Ñ˜×-Ñ-Ó/Ô0Ø×Ñ˜˜FŸO™OÖ,r$   c                ó4  € V P                   P                  V P                  4       V P                  V P                  P                  V P                   V P
                  P                  V P
                  P                  V P
                  P                  33.4       R# )z=
L{runner.ErrorHolder} adds an error to the result when run.
N)	rÒ  r~   r�   r   r9  r[   ÚtypeÚvalueÚtbr   s   &r!   Útest_runÚErrorHolderTestsMixin.test_run  sc   € ð 	�‰�‰˜Ÿ™Ô$Ø×ÑØ�K‰K×ÑØ�k‰k˜DŸJ™JŸO™O¨T¯Z©Z×-=Ñ-=¸t¿z¹z¿}¹}ÐMÐNÐOö	
r$   c                ó   € V P                  V P                  4       V P                  V P                  P                  V P                   V P                  P
                  V P                  P                  V P                  P                  33.4       R# )z@
L{runner.ErrorHolder} adds an error to the result when called.
N)rÒ  r�   r   r9  r[   rð  rñ  rò  r   s   &r!   Ú	test_callÚErrorHolderTestsMixin.test_call"  s_   € ð 	�‰�D—K‘KÔ Ø×ÑØ�K‰K×ÑØ�k‰k˜DŸJ™JŸO™O¨T¯Z©Z×-=Ñ-=¸t¿z¹z¿}¹}ÐMÐNÐOö	
r$   c                óZ   € V P                  V P                  P                  4       ^ 4       R# )z8
L{runner.ErrorHolder.countTestCases} always returns 0.
N)r   rÒ  rÃ  r   s   &r!   Útest_countTestCasesÚ)ErrorHolderTestsMixin.test_countTestCases,  s!   € ð 	×Ñ˜Ÿ™×3Ñ3Ó5°qÖ9r$   c                óº   € RP                  \        V P                  P                  ^,          4      4      pV P	                  \        V P                  4      V4       R# )zP
L{runner.ErrorHolder.__repr__} returns a string describing the error it
holds.
z0<ErrorHolder description='description' error={}>N)rŒ  ÚreprrÒ  r[   r   )r    Úexpecteds   & r!   Ú	test_reprÚErrorHolderTestsMixin.test_repr2  sG   € ð
 I×OÑOÜ�—‘×"Ñ" 1Õ%Ó&ó
ˆð 	×Ñœ˜dŸk™kÓ*¨HÖ5r$   rU   N)r-   r.   r/   r0   ro   ÚZeroDivisionErrorÚexceptionForTestsrì  rÜ  ró  rö  rù  rþ  r1   r2   r3   s   @r!   rß  rß  ð  s@   ø‡ € ññ *Ð*NÓOÐ÷.ñ .ò"-ò
ò
ò:÷	6ð 	6r$   rß  c                   ó*   a € ] tR tRt o RtR tRtV tR# )ÚFailureHoldingErrorHolderTestsi>  z‡
Tests for L{runner.ErrorHolder} behaving similarly to L{runner.TestHolder}
when constructed with a L{Failure} representing its error.
c                ó  € R V n          V P                  h  \         d    \        P                  ! 4       T n         Mi ; i\        P                  ! T P                   T P
                  4      T n        T P                  4       T n
        R# rÐ  )rå   r  r   r   rº  r[   r   ÚErrorHolderrÒ  rì  r�   r   s   &r!   r—   Ú$FailureHoldingErrorHolderTests.setUpD  sf   € Ø(ˆÔð	+Ø×(Ñ(Ð(øÜ ô 	+Ü ŸšÓ*ˆDŽJð	+úä×(Ò(¨×)9Ñ)9¸4¿:¹:ÓFˆŒØ×)Ñ)Ó+ˆŽs   ‰ •%=¼=©rå   r[   rÒ  r�   Nr§   r3   s   @r!   r  r  >  s   ø‡ € ñ÷
,ð ,r$   r  c                   ó*   a € ] tR tRt o RtR tRtV tR# )ÚExcInfoHoldingErrorHolderTestsiO  z”
Tests for L{runner.ErrorHolder} behaving similarly to L{runner.TestHolder}
when constructed with a C{exc_info}-style tuple representing its error.
c                ó$  € R V n          V P                  h  \         d3    \        P                  ! 4       p\
        P                  ! 4       T n         Mi ; i\        P                  ! T P                   T4      T n
        T P                  4       T n        R# rÐ  )rå   r  r   ÚsysÚexc_infor   rº  r[   r   r  rÒ  rì  r�   )r    ÚexceptionInfos   & r!   r—   Ú$ExcInfoHoldingErrorHolderTests.setUpU  so   € Ø(ˆÔð	+Ø×(Ñ(Ð(øÜ ô 	+ÜŸLšL›NˆMÜ ŸšÓ*ˆDŽJð	+úô ×(Ò(¨×)9Ñ)9¸=ÓIˆŒØ×)Ñ)Ó+ˆŽs   ‰ •:AÁAr  Nr§   r3   s   @r!   r	  r	  O  s   ø‡ € ñ÷
	,ð 	,r$   r	  c                   óf   a € ] tR tRt o Rt ! R R]P                  4      tR tR t	R t
R tR	tV tR
# )ÚMalformedMethodTestsia  zJ
Test that trial manages when test methods don't have correct signatures.
c                   óT   a € ] tR tRt o RtR tR t]P                  ! ]4      t	Rt
V tR# )Ú%MalformedMethodTests.ContainMalformedif  zF
This TestCase holds malformed test methods that trial should handle.
c                ó   € R # r   rU   )r    Úblahs   &&r!   rÀ   Ú.MalformedMethodTests.ContainMalformed.test_fook  rç  r$   c                 ó   € R # r   rU   rU   r$   r!   Útest_barÚ.MalformedMethodTests.ContainMalformed.test_barn  rç  r$   rU   N)r-   r.   r/   r0   ro   rÀ   r  r	   ÚinlineCallbacksÚ	test_spamr1   r2   r3   s   @r!   ÚContainMalformedr  f  s&   ø‡ € ñ	ò	ò	ð ×)Ò)¨(Ó3Ž	r$   r  c                ór  € \        4       p\        P                  ! \        P                  VR7      p\
        P                  V4      pVP                  V4      pV P                  VP                  ^4       V P                  VP                  4       4       V P                  \        VP                  4      ^4       R# )z<
Wrapper for one of the test method of L{ContainMalformed}.
r”   N)r   r   r–   r   r’  r  r  r~   r   rq   r–  rm   r}   r9  )r    rE   r=   ÚtrialRunnerrR   r�   s   &&    r!   Ú_testÚMalformedMethodTests._tests  s…   € ô “ˆÜ×(Ò(¬×):Ñ):À6ÔJˆÜ#×4Ñ4°VÓ<ˆØ—‘ Ó&ˆØ×Ñ˜Ÿ™¨!Ô,Ø×Ñ˜×-Ñ-Ó/Ô0Ø×Ñœ˜VŸ]™]Ó+¨QÖ/r$   c                ó(   € V P                  R4       R# )z5
Test when the method has extra (useless) arguments.
rÀ   N©r  r   s   &r!   Útest_extraArgÚ"MalformedMethodTests.test_extraArg  ó   € ð 	�
‰
�:Ör$   c                ó(   € V P                  R4       R# )z:
Test when the method doesn't have even self as argument.
r  Nr!  r   s   &r!   Ú
test_noArgÚMalformedMethodTests.test_noArg…  r$  r$   c                ó(   € V P                  R4       R# )z%
Test a decorated method also fails.
r  Nr!  r   s   &r!   Útest_decoratedÚ#MalformedMethodTests.test_decorated‹  s   € ð 	�
‰
�;Ör$   rU   N)r-   r.   r/   r0   ro   rÇ   rÖ   r  r  r"  r&  r)  r1   r2   r3   s   @r!   r  r  a  s3   ø‡ € ñô4˜6Ÿ?™?ô 4ò
0òò÷ ð  r$   r  c                   ó6   a € ] tR tRt o RtR tR tR tRtV t	R# )ÚDestructiveTestSuiteTestsi’  z*
Test for L{runner.DestructiveTestSuite}.
c                óX  a€ . o ! V3R lR\         P                  4      pV! R4      p\        P                  ! 4       p\        P
                  ! V.4      pV P                  S. 4       VP                  V4       V P                  SR.4       V P                  VP                  4       ^ 4       R# )z<
Thes destructive test suite should run the tests normally.
c                   ó.   <a € ] tR tRt o V3R ltRtV tR# )Ú6DestructiveTestSuiteTests.test_basic.<locals>.MockTesti�  c                ó*   <€ SP                  R 4       R# rc  rž  ©rR   Úcalleds   &€r!   rÀ   Ú?DestructiveTestSuiteTests.test_basic.<locals>.MockTest.test_foož  s   ø€ Ø—‘˜dÖ#r$   rU   NrÃ   ©r4   r2  s   @€r!   rÕ   r/  �  s   ù‡ € ÷$ó $r$   rÕ   rÀ   TN)	rÇ   rÖ   r   rÇ  r   ÚDestructiveTestSuiter   r~   rÃ  )r    rÕ   rR   r�   rÈ   r2  s   &    @r!   Ú
test_basicÚ$DestructiveTestSuiteTests.test_basic—  s�   ø€ ð ˆ÷	$”v—‘ô 	$ñ ˜
Ó#ˆÜ×$Ò$Ó&ˆÜ×+Ò+¨T¨FÓ3ˆØ×Ñ˜ Ô$Ø�	‰	�&ÔØ×Ñ˜ $ Ô(Ø×Ñ˜×-Ñ-Ó/°Ö3r$   c                ó�  a€ . o ! V3R lR\         P                  4      p\        P                  ! 4       p\        P
                  ! 4       p\        P                  Vn        VP                  V4      pV P                  S. 4       VP                  V4       V P                  S^.4       V P                  VP                  4       ^4       R# )z]
Test the C{shouldStop} management: raising a C{KeyboardInterrupt} must
interrupt the suite.
c                   ó@   <a € ] tR tRt o V3R ltR tV3R ltRtV tR# )Ú;DestructiveTestSuiteTests.test_shouldStop.<locals>.MockTesti°  c                ó*   <€ SP                  ^4       R# )r'   Nrž  r1  s   &€r!   Ú	test_foo1ÚEDestructiveTestSuiteTests.test_shouldStop.<locals>.MockTest.test_foo1±  ó   ø€ Ø—‘˜aÖ r$   c                ó   € \        4       hr   )ÚKeyboardInterrupt©rR   s   &r!   Ú	test_foo2ÚEDestructiveTestSuiteTests.test_shouldStop.<locals>.MockTest.test_foo2´  s   € Ü'Ó)Ð)r$   c                ó*   <€ SP                  ^4       R# )r‹  Nrž  r1  s   &€r!   Ú	test_foo3ÚEDestructiveTestSuiteTests.test_shouldStop.<locals>.MockTest.test_foo3·  r>  r$   rU   N)	r-   r.   r/   r0   r<  rB  rE  r1   r2   r4  s   @€r!   rÕ   r:  °  s   ù‡ € õ!ò*÷!ó !r$   rÕ   N)r   rÖ   r   rÇ  r   rR  r5  ÚsuiteFactoryÚ	loadClassr   r~   rÃ  )r    rÕ   r�   rU  rÈ   r2  s   &    @r!   Útest_shouldStopÚ)DestructiveTestSuiteTests.test_shouldStop©  sŸ   ø€ ð
 ˆ÷	!”x×(Ñ(ô 	!ô ×$Ò$Ó&ˆÜ×"Ò"Ó$ˆÜ$×9Ñ9ˆÔØ× Ñ  Ó*ˆØ×Ñ˜ Ô$Ø�	‰	�&ÔØ×Ñ˜ ! Ô%à×Ñ˜×-Ñ-Ó/°Ö3r$   c                óB  €  ! R R\         P                  4      pV! R4      p\        P                  ! 4       p\        P
                  ! V.4      pV P                  VP                  4       ^4       VP                  V4       V P                  VP                  4       ^ 4       R# )zV
Checks that the test suite cleanups its tests during the run, so that
it ends empty.
c                   ó&   a € ] tR tRt o R tRtV tR# )Ú8DestructiveTestSuiteTests.test_cleanup.<locals>.MockTestiÊ  c                ó   € R # r   rU   rA  s   &r!   rÀ   ÚADestructiveTestSuiteTests.test_cleanup.<locals>.MockTest.test_fooË  rÂ   r$   rU   NrÃ   r3   s   @r!   rÕ   rM  Ê  rÅ   r$   rÕ   rÀ   N)	rÇ   rÖ   r   rÇ  r   r5  r   rÃ  r~   )r    rÕ   rR   r�   rÈ   s   &    r!   Útest_cleanupÚ&DestructiveTestSuiteTests.test_cleanupÄ  s|   € ô	”v—‘ô 	ñ ˜
Ó#ˆÜ×$Ò$Ó&ˆÜ×+Ò+¨T¨FÓ3ˆØ×Ñ˜×-Ñ-Ó/°Ô3Ø�	‰	�&ÔØ×Ñ˜×-Ñ-Ó/°Ö3r$   rU   N)
r-   r.   r/   r0   ro   r6  rI  rP  r1   r2   r3   s   @r!   r,  r,  ’  s   ø‡ € ñò4ò$4÷64ð 4r$   r,  c                   ó@   € ] tR tRt ! R R]P
                  4      tRtR# )ÚRunnerDeprecationTestsiÖ  c                   óH   a € ] tR tRt o RtRtRtRtR tR t	R t
R tRtV tR# )	Ú#RunnerDeprecationTests.FakeReporteri×  z›
Fake reporter that does *not* implement done() but *does* implement
printErrors, separator, printSummary, stream, write and writeln
without deprecations.
Nc                ó   € R # r   rU   r  s   &*r!   ÚprintErrorsÚ/RunnerDeprecationTests.FakeReporter.printErrorsâ  rç  r$   c                ó   € R # r   rU   r  s   &*r!   ÚprintSummaryÚ0RunnerDeprecationTests.FakeReporter.printSummaryå  rç  r$   c                ó   € R # r   rU   r  s   &*r!   ÚwriteÚ)RunnerDeprecationTests.FakeReporter.writeè  rç  r$   c                ó   € R # r   rU   r  s   &*r!   ÚwritelnÚ+RunnerDeprecationTests.FakeReporter.writelnë  rç  r$   rU   )r-   r.   r/   r0   ro   rV   rp   r=   rW  rZ  r]  r`  r1   r2   r3   s   @r!   ÚFakeReporterrU  ×  s4   ø‡ € ñ	ð ˆØˆ	Øˆò	ò	ò	÷	ð 	r$   rb  rU   N)r-   r.   r/   r0   r   r’  rb  r1   rU   r$   r!   rS  rS  Ö  s   † ô�x×(Ñ(÷ ð r$   rS  c                   ó*   a € ] tR tRt o RtR tRtV tR# )ÚQualifiedNameWalkerTestsiï  z4
Tests for L{twisted.trial.runner._qualNameWalker}.
c                ó€   € \        \        P                  ! R4      4      pV P                  VR. 3RR.3RRR.3.4       R# )zÈ
C{_qualNameWalker} is a generator that, when given a Python qualified
name, yields that name, and then the parent of that name, and so forth,
along with a list of the tried components, in a 2-tuple.
zwalker.texas.rangerzwalker.texasÚrangerÚwalkerÚtexasN)rê   r   Ú_qualNameWalkerr   )r    ÚwalkerResultss   & r!   Útest_walksDownPathÚ+QualifiedNameWalkerTests.test_walksDownPathô  sO   € ô œV×3Ò3Ð4IÓJÓKˆà×ÑØà&¨Ð+Ø ( Ð,Ø˜G XÐ.Ð/ðö	
r$   rU   N)r-   r.   r/   r0   ro   rk  r1   r2   r3   s   @r!   rd  rd  ï  s   ø‡ € ñ÷
ð 
r$   rd  c                   ó*   a € ] tR tRt o RtR tRtV tR# )ÚTrialMainDoesNothingTestsi  z`
Importing L{twisted.trial.__main__} will not run the script
unless it is actually C{__main__}.
c                ó   € \        R4       R# )z?
If we import L{twisted.trial.__main__}, it should do nothing.
ztwisted.trial.__main__N)Ú
__import__r   s   &r!   Útest_importDoesNothingÚ0TrialMainDoesNothingTests.test_importDoesNothing  s   € ô
 	Ð+Ö,r$   rU   N)r-   r.   r/   r0   ro   rq  r1   r2   r3   s   @r!   rn  rn    s   ø‡ € ñ÷
-ð -r$   rn  )@r'  rg  r  r   rÇ   Úior   Útypingr   Úzope.interfacer   Úzope.interface.verifyr   Útwistedr   Útwisted.internetr	   Útwisted.pluginsr
   Útwisted.pythonr   r   r   Útwisted.python.filepathr   Útwisted.python.reflectr   Útwisted.scriptsr   Útwisted.trialr   r   r   Útwisted.trial._asyncrunnerr   Útwisted.trial.itrialr   r   r   r6   rs   rÆ   r’   r¢   r©   r»   rÏ   rÙ   rá   r  r„  r¯  r±   r¶  r½  rÎ  rß  r  r	  r  r,  rS  rd  rn  rU   r$   r!   Ú<module>r�     sö  ðó 
Û 
Û 
Û Ý Ý å &Ý .å Ý "Ý )ß 0Ñ 0Ý ,Ý +Ý !ß :Ó :Ý Gß 5÷%ñ %ñ ˆYÓ÷Nð Nó ðN÷b#ñ #ôL5Ð,¨h×.JÑ.Jô 5ô(3Ø˜8×7Ñ7ô3÷ )'ñ )'ôX(˜[¨(×*FÑ*Fô (ô(�+˜x×;Ñ;ô (ô(˜ X×%AÑ%Aô (ô_=�(×.Ñ.ô _=ôD	4�h×2Ñ2ô 4ôI
˜×4Ñ4ô I
ôX6Ð0ô 6ô(	'�F×$Ñ$ô 	'ôA˜×4Ñ4ô Aô>!-�h×2Ñ2ô !-÷HK6ñ K6ô\,Ð%:¸Oô ,ô",Ð%:¸Oô ,ô$. ˜8×7Ñ7ô . ôbA4 × <Ñ <ô A4ôH˜X×9Ñ9ô ô2
˜x×;Ñ;ô 
ô.- × <Ñ <ö -r$   