Ë
    oj§�  ã                  óJ  — d dl mZ d dlZd dlZd dlZd dlZd dlZd dlmZ d dl	m
Z
 d dlmZmZ d dlmZ d dlmZ d dlmZ d d	lmZ d d
lmZmZ d dlmZ d dlmZ d dlmZ d dlm Z  d dl!m"Z" d dl#m$Z$m%Z%m&Z&m'Z'm(Z( d dl)m*Z* ddl+m,Z,  e-d«      Z.d1d„Z/d2d„Z0d3d„Z1d4d„Z2 e"e2e1«      Z3 G d„ dejh                  «      Z5 G d„ dejh                  «      Z6 G d„ dejh                  «      Z7 G d„ d ejh                  «      Z8 G d!„ d"ejh                  «      Z9 G d#„ d$ejh                  «      Z: G d%„ d&ejv                  «      Z< G d'„ d(ejv                  «      Z= G d)„ d*ejv                  «      Z> G d+„ d,ejv                  «      Z? G d-„ d.ejv                  «      Z@ G d/„ d0ejv                  «      ZAy)5é    )ÚannotationsN)ÚStringIO)ÚList)Úassert_thatÚcontains_string)Úgiven)Úsampled_from)ÚLogger)Úutil)ÚFilePathÚ	IFilePath)Ú
UsageError)Útrial)Úunittest)ÚDistTrialRunner)Úcompose)ÚDestructiveTestSuiteÚ
TestLoaderÚ	TestSuiteÚTrialRunnerÚ_Runner)Ú	testNamesé   )ÚfileContentsr   c                ó6   — t        j                  t        | «      S )z1
    For finding files in twisted/trial/test
    )r   ÚsibpathÚ__file__)Úfilenames    ú@/usr/lib/python3/dist-packages/twisted/trial/test/test_script.pyr   r   &   s   € ô �<‰<œ (Ó+Ð+ó    c                 ó6   — t        «       j                  d«       y)z.
    Emit something to L{twisted.logger}.
    Ú	somethingN)r
   Úinfo© r    r   ÚlogSomethingr%   -   s   € ô ƒH‡M�M�+Õr    c                óP   — t        j                  «       }|j                  | «       |S )z?
    Parse an argument list using trial's argument parser.
    )r   ÚOptionsÚparseOptions)ÚargvÚconfigs     r   ÚparseArgumentsr+   4   s"   € ô �]‰]‹_€FØ
×Ñ˜ÔØ€Mr    c                ó¶   — t        j                  | «      }t        «       |_        t	        t
        j                  t        «      g«      }|j                  |«       | S )zM
    Run L{logSomething} as a test method using the given configuration.
    )	r   Ú_makeRunnerr   Ústreamr   ÚpyunitÚFunctionTestCaser%   Úrun)r*   ÚrunnerÚsuites      r   ÚrunFromConfigr4   =   sF   € ô ×Ñ˜vÓ&€FÜ“J€F„MÜ”v×.Ñ.¬|Ó<Ð=Ó>€EØ
‡J�JˆuÔØ€Mr    c                  óš   — e Zd ZdZ e eg d¢«      «      d	d„«       Z e eddg«      «      d
d„«       Z e eddg«      «      d
d„«       Zy)ÚLogfileTestsz)
    Tests for the --logfile option.
    )zdir-azdir-bzdir-c/dir-dc                ó”   — t        d|g«      }t        |«      j                  |d   «      }t        |t	        t        d«      «      «       y)zƒ
        If no value is given for the option then logs are written to a log
        file constructed from a default value.
        ú--temp-directoryÚlogfiler"   N©ÚrunFromArgumentsr   ÚpreauthChildr   r   r   )ÚselfÚworkingDirectoryr*   ÚlogPaths       r   Útest_defaultzLogfileTests.test_defaultP   sD   € ô "Ð#5Ð7GÐ"HÓIˆÜ%Ð&6Ó7×DÑDÀVÈIÑEVÓWˆÜ�Gœ\¬/¸+Ó*FÓGÕHr    zsomelog.txtzsomedir/somelog.txtc                ó”   — t        d|g«      }t        |d   «      j                  |«      }t        |t	        t        d«      «      «       y)z½
        If the value given for the option is a relative path then it is
        interpreted relative to trial's own temporary working directory and
        logs are written there.
        ú	--logfileútemp-directoryr"   Nr:   )r=   r9   r*   r?   s       r   Útest_relativePathzLogfileTests.test_relativePathb   sB   € ô " ;°Ð"8Ó9ˆÜ% fÐ-=Ñ&>Ó?×LÑLÈWÓUˆÜ�Gœ\¬/¸+Ó*FÓGÕHr    c                ó¦   — t        d«      j                  |«      }t        d|j                  g«       |}t	        |t        t        d«      «      «       y)z�
        If the value given for the option is an absolute path then it is
        interpreted absolutely and logs are written there.
        ú.rB   r"   N)r   r<   r;   Úpathr   r   r   )r=   r9   r?   ÚiPaths       r   Útest_absolutePathzLogfileTests.test_absolutePatht   sB   € ô" ˜3“-×,Ñ,¨WÓ5ˆÜ˜+ w§|¡|Ð4Ô5Ø"ˆÜ�Eœ<¬¸Ó(DÓEÕFr    N)r>   ÚstrÚreturnÚNone)r9   rJ   rK   rL   )	Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r	   r@   rD   rI   r$   r    r   r6   r6   K   s‹   „ ññ Ùòó	
óòIóðIñ ÙàØ%ðó	
óòIóðIñ ÙàØ%ðó	
óòGóñGr    r6   c                  ó@   — e Zd ZdZd	d„Zd	d„Zd	d„Zd
d„Zd	d„Zd	d„Z	y)ÚForceGarbageCollectionTestsz*
    Tests for the --force-gc option.
    c                óè   — t        j                  «       | _        g | _        | j	                  t
        d| j                  «       t        j                  | j                  «      }t        ||g«      | _        y )NÚcollect)r   r'   r*   ÚlogÚpatchÚgcrT   r/   r0   Ú
simpleTestr   Útest)r=   rY   s     r   ÚsetUpz!ForceGarbageCollectionTests.setUp�   sN   € Ü—m‘m“oˆŒØ ˆŒØ�
‰
”2�y $§,¡,Ô/Ü×&Ñ& t§¡Ó7ˆÜ˜t T˜lÓ+ˆ�	r    c                ó:   — | j                   j                  d«       y)zD
        A simple test method that records that it was run.
        rY   N©rU   Úappend©r=   s    r   rX   z&ForceGarbageCollectionTests.simpleTest—   s   € ð 	�‰�‰˜Õr    c                ó:   — | j                   j                  d«       y)zI
        A replacement for gc.collect that logs calls to itself.
        rT   Nr\   r^   s    r   rT   z#ForceGarbageCollectionTests.collect�   s   € ð 	�‰�‰˜	Õ"r    c                ób   — t        j                  | j                  «      }t        «       |_        |S )zN
        Return a L{TrialRunner} object that is safe to use in tests.
        )r   r-   r*   r   r.   ©r=   r2   s     r   Ú
makeRunnerz&ForceGarbageCollectionTests.makeRunner£   s&   € ô ×"Ñ" 4§;¡;Ó/ˆÜ ›
ˆŒØˆr    c                óè   — d| j                   d<   | j                   j                  «        | j                  «       }|j                  | j                  «       | j                  | j                  g d¢«       y)z‹
        Passing the --force-gc option to the trial script forces the garbage
        collector to run before and after each test.
        Tzforce-gc)rT   rY   rT   rT   rY   rT   N©r*   ÚpostOptionsrb   r1   rY   ÚassertEqualrU   ra   s     r   Útest_forceGcz(ForceGarbageCollectionTests.test_forceGc«   sV   € ð
 #'ˆ�‰�JÑØ�‰×ÑÔ!Ø—‘Ó"ˆØ�
‰
�4—9‘9ÔØ×ÑØ�H‰HÒRõ	
r    c                óÊ   — | j                   j                  «        | j                  «       }|j                  | j                  «       | j                  | j                  ddg«       y)z>
        By default, no garbage collection is forced.
        rY   Nrd   ra   s     r   Útest_unforceGcz*ForceGarbageCollectionTests.test_unforceGc¸   sI   € ð 	�‰×ÑÔ!Ø—‘Ó"ˆØ�
‰
�4—9‘9ÔØ×Ñ˜Ÿ™ F¨FÐ#3Õ4r    N©rK   rL   )rK   r   )
rM   rN   rO   rP   rZ   rX   rT   rb   rg   ri   r$   r    r   rR   rR   ‹   s%   „ ñó,ó ó#óó
ô5r    rR   c                  ó(   — e Zd ZdZdd„Zdd„Zdd„Zy)ÚSuiteUsedTestsz?
    Check the category of tests suite used by the loader.
    c                ó6   — t        j                  «       | _        y)z6
        Create a trial configuration object.
        N©r   r'   r*   r^   s    r   rZ   zSuiteUsedTests.setUpÇ   s   € ô —m‘m“oˆ�r    c                ó‚   — t        j                  | j                  «      }| j                  |j                  t
        «       y)zK
        By default, the loader should use L{DestructiveTestSuite}
        N)r   Ú
_getLoaderr*   rf   ÚsuiteFactoryr   ©r=   Úloaders     r   Útest_defaultSuitez SuiteUsedTests.test_defaultSuiteÍ   s/   € ô ×!Ñ! $§+¡+Ó.ˆØ×Ñ˜×,Ñ,Ô.BÕCr    c                ó    — d| j                   d<   t        j                  | j                   «      }| j                  |j                  t
        «       y)zw
        The C{until-failure} configuration uses the L{TestSuite} to keep
        instances alive across runs.
        Tzuntil-failureN)r*   r   rp   rf   rq   r   rr   s     r   Útest_untilFailureSuitez%SuiteUsedTests.test_untilFailureSuiteÔ   s<   € ð
 (,ˆ�‰�OÑ$Ü×!Ñ! $§+¡+Ó.ˆØ×Ñ˜×,Ñ,¬iÕ8r    Nrj   )rM   rN   rO   rP   rZ   rt   rv   r$   r    r   rl   rl   Â   s   „ ñó&óDô9r    rl   c                  óÜ   — e Zd Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Z	dd„Z
dd	„Zdd
„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zy)ÚTestModuleTestsc                ó6   — t        j                  «       | _        y ©Nrn   r^   s    r   rZ   zTestModuleTests.setUpß   ó   € Ü—m‘m“oˆ�r    c                ó   — d | _         y rz   )r*   r^   s    r   ÚtearDownzTestModuleTests.tearDownâ   s	   € Øˆ�r    c                óX   — | j                  t        | «      | j                  «       g«       y)zq
        Check that the testNames helper method accurately collects the
        names of tests in suite.
        N)rf   r   Úidr^   s    r   Útest_testNameszTestModuleTests.test_testNameså   s    € ð
 	×Ñœ 4›¨4¯7©7«9¨+Õ6r    c                óâ   — t        «       }t        |«      }t        t        t        |j                  |«      «      «      }|j                  «        |j                  «        | j                  ||«       y rz   )r   r   r   ÚmapÚ
loadByNameÚsortrf   )r=   Útest1Únamesrs   Únames1Únames2s         r   ÚassertSuitesEqualz!TestModuleTests.assertSuitesEqualì   sQ   € Ü“ˆÜ˜5Ó!ˆÜœ9¤S¨×):Ñ):¸EÓ%BÓCÓDˆØ�‰ŒØ�‰ŒØ×Ñ˜ Õ(r    c                óT   — | j                  dt        | j                  d   «      «       y )Nr   Útests)rf   Úlenr*   r^   s    r   Útest_baseStatezTestModuleTests.test_baseStateô   s    € Ø×Ñ˜œC §¡¨GÑ 4Ó5Õ6r    c                ó¬   — | j                   j                  t        d«      «       | j                  t	        j
                  | j                   «      dg«       y)zŒ
        Check that --testmodule loads a suite which contains the tests
        referred to in test-case-name inside its parameter.
        úmoduletest.pyútwisted.trial.test.test_logN©r*   Úopt_testmoduler   r‰   r   Ú	_getSuiter^   s    r   Útest_testmoduleOnModulez'TestModuleTests.test_testmoduleOnModule÷   s?   € ð
 	�‰×"Ñ"¤7¨?Ó#;Ô<Ø×ÑÜ�O‰O˜DŸK™KÓ(Ð+HÐ*Iõ	
r    c                óô   — | j                   j                  t        d«      «       | j                   j                  t        d«      «       | j                  t	        j
                  | j                   «      dg«       y)z�
        When the same module is specified with two --testmodule flags, it
        should only appear once in the suite.
        r�   r�   Nr‘   r^   s    r   Útest_testmoduleTwicez$TestModuleTests.test_testmoduleTwice  sV   € ð
 	�‰×"Ñ"¤7¨?Ó#;Ô<Ø�‰×"Ñ"¤7¨?Ó#;Ô<Ø×ÑÜ�O‰O˜DŸK™KÓ(Ð+HÐ*Iõ	
r    c                óô   — | j                   j                  t        d«      «       | j                   j                  t        d«      «       | j                  t	        j
                  | j                   «      dg«       y)z³
        If --testmodule is specified twice, once for module A and once for
        a module which refers to module A, then make sure module A is only
        added once.
        r�   ztest_log.pyr�   Nr‘   r^   s    r   Ú test_testmoduleOnSourceAndTargetz0TestModuleTests.test_testmoduleOnSourceAndTarget  sV   € ð 	�‰×"Ñ"¤7¨?Ó#;Ô<Ø�‰×"Ñ"¤7¨=Ó#9Ô:Ø×ÑÜ�O‰O˜DŸK™KÓ(Ð+HÐ*Iõ	
r    c                ó¬   — | j                   j                  t        d«      «       | j                  t	        j
                  | j                   «      dg«       y)z—
        When given a module that refers to *itself* in the test-case-name
        variable, check that --testmodule only adds the tests once.
        zmoduleself.pyztwisted.trial.test.moduleselfNr‘   r^   s    r   Útest_testmoduleOnSelfModulez+TestModuleTests.test_testmoduleOnSelfModule  s?   € ð
 	�‰×"Ñ"¤7¨?Ó#;Ô<Ø×ÑÜ�O‰O˜DŸK™KÓ(Ð+JÐ*Kõ	
r    c                ó®   — | j                   j                  t        d«      «       | j                  t	        j
                  | j                   «      ddg«       y)zm
        Check that --testmodule loads tests referred to in test-case-name
        buffer variables.
        úscripttest.pyr�   útwisted.trial.test.test_runnerNr‘   r^   s    r   Útest_testmoduleOnScriptz'TestModuleTests.test_testmoduleOnScript"  sB   € ð
 	�‰×"Ñ"¤7¨?Ó#;Ô<Ø×ÑÜ�O‰O˜DŸK™KÓ(Ø*Ð,LÐMõ	
r    c                óZ  — t        «       }t        j                  |c}t        _        d}	 | j                  j	                  |«       | j                  dt        | j                  d   «      «       | j                  d|›d�|j                  «       «       |t        _        y# |t        _        w xY w)zz
        Check that --testmodule displays a meaningful error message when
        passed a non-existent filename.
        ztest_thisbetternoteverexist.pyr   r‹   úFile ú doesn't exist
N©r   ÚsysÚstderrr*   r’   rf   rŒ   Úgetvalue)r=   Úbuffyr¤   r   s       r   Ú test_testmoduleOnNonexistentFilez0TestModuleTests.test_testmoduleOnNonexistentFile-  s‡   € ô
 “
ˆÜ ŸZ™Z¨Ðˆ””
Ø3ˆð	 Ø�K‰K×&Ñ& xÔ0Ø×Ñ˜Q¤ D§K¡K°Ñ$8Ó 9Ô:Ø×Ñ˜u X LÐ0@ÐAÀ5Ç>Á>ÓCSÔTàŒC�Jø˜ŒC�Júó   ªA'B ÂB*c                óœ   — | j                   j                  t        d«      «       | j                  dt	        | j                   d   «      «       y)z„
        Check that --testmodule adds no tests to the suite for modules
        which lack test-case-name buffer variables.
        ú	novars.pyr   r‹   N)r*   r’   r   rf   rŒ   r^   s    r   Útest_testmoduleOnEmptyVarsz*TestModuleTests.test_testmoduleOnEmptyVars<  s9   € ð
 	�‰×"Ñ"¤7¨;Ó#7Ô8Ø×Ñ˜œC §¡¨GÑ 4Ó5Õ6r    c                óZ  — t        «       }t        j                  |c}t        _        d}	 | j                  j	                  |«       | j                  dt        | j                  d   «      «       | j                  d|›d�|j                  «       «       |t        _        y# |t        _        w xY w)z�
        Check that --testmodule does *not* support module names as arguments
        and that it displays a meaningful error message.
        ztwisted.trial.test.test_scriptr   r‹   r    r¡   Nr¢   )r=   r¦   r¤   Ú
moduleNames       r   Útest_testmoduleOnModuleNamez+TestModuleTests.test_testmoduleOnModuleNameD  s‡   € ô
 “
ˆÜ ŸZ™Z¨Ðˆ””
Ø5ˆ
ð	 Ø�K‰K×&Ñ& zÔ2Ø×Ñ˜Q¤ D§K¡K°Ñ$8Ó 9Ô:Ø×Ñ˜u Z NÐ2BÐCÀUÇ^Á^ÓEUÔVàŒC�Jø˜ŒC�Júr¨   c                óZ   — d}t        j                  |«      }| j                  ddi|«       y )Nz5-*- test-case-name: twisted.trial.test.test_tests -*-útest-case-nameútwisted.trial.test.test_tests©r   Ú_parseLocalVariablesrf   ©r=   ÚdeclarationÚ	localVarss      r   Útest_parseLocalVariablez'TestModuleTests.test_parseLocalVariableS  s.   € ØMˆÜ×.Ñ.¨{Ó;ˆ	Ø×ÑÐ*Ð,KÐLÈiÕXr    c                óZ   — d}t        j                  |«      }| j                  ddi|«       y )Nz6-*- test-case-name: twisted.trial.test.test_tests; -*-r°   r±   r²   r´   s      r   Útest_trailingSemicolonz&TestModuleTests.test_trailingSemicolonX  s.   € ØNˆÜ×.Ñ.¨{Ó;ˆ	Ø×ÑÐ*Ð,KÐLÈiÕXr    c                ó\   — d}t        j                  |«      }| j                  dddœ|«       y )Nz?-*- test-case-name: twisted.trial.test.test_tests; foo: bar -*-r±   Úbar)r°   Úfoor²   r´   s      r   Útest_parseLocalVariablesz(TestModuleTests.test_parseLocalVariables]  s4   € àPð 	ô ×.Ñ.¨{Ó;ˆ	Ø×ÑØ>ÀuÑMÈyõ	
r    c                óZ   — d}t        j                  |«      }| j                  ddi|«       y )Nz:## -*- test-case-name: twisted.trial.test.test_tests -*- #r°   r±   r²   r´   s      r   Útest_surroundingGuffz$TestModuleTests.test_surroundingGufff  s.   € ØUˆÜ×.Ñ.¨{Ó;ˆ	Ø×ÑÐ*Ð,KÐLÈiÕXr    c                óN   — | j                  t        t        j                  d«       y ©Nr¼   ©ÚassertRaisesÚ
ValueErrorr   r³   r^   s    r   Útest_invalidLinez TestModuleTests.test_invalidLinek  s   € Ø×Ñœ*¤e×&@Ñ&@À%ÕHr    c                óâ   — | j                  t        t        j                  d«       | j                  t        t        j                  d«       | j                  t        t        j                  d«       y )Nz-*- foo -*-z-*- foo: bar; qux -*-z-*- foo: bar: baz; qux: qax -*-rÂ   r^   s    r   Útest_invalidDeclarationz'TestModuleTests.test_invalidDeclarationn  sT   € Ø×Ñœ*¤e×&@Ñ&@À-ÔPØ×ÑÜœ×2Ñ2Ð4Kô	
ð 	×ÑÜœ×2Ñ2Ð4Uõ	
r    c                óh   — t        j                  t        d«      «      }| j                  ddi|«       y )Nr�   r°   r�   ©r   ÚloadLocalVariablesr   rf   ©r=   r¶   s     r   Útest_variablesFromFilez&TestModuleTests.test_variablesFromFilew  s.   € Ü×,Ñ,¬W°_Ó-EÓFˆ	Ø×ÑÐ*Ð,IÐJÈIÕVr    c                ód   — t        j                  t        d«      «      }| j                  i |«       y )Nrª   rÉ   rË   s     r   Útest_noVariablesInFilez&TestModuleTests.test_noVariablesInFile{  s'   € Ü×,Ñ,¬W°[Ó-AÓBˆ	Ø×Ñ˜˜YÕ'r    c                óh   — t        j                  t        d«      «      }| j                  ddi|«       y )Nrœ   r°   z:twisted.trial.test.test_log,twisted.trial.test.test_runnerrÉ   rË   s     r   Útest_variablesFromScriptz(TestModuleTests.test_variablesFromScript  s5   € Ü×,Ñ,¬W°_Ó-EÓFˆ	Ø×Ñà ØSðð
 õ	
r    c                óf   — t        j                  t        d«      «      }| j                  |dg«       y )Nr�   r�   )r   ÚgetTestModulesr   rf   ©r=   Úmoduless     r   Útest_getTestModulesz#TestModuleTests.test_getTestModulesŠ  s+   € Ü×&Ñ&¤w¨Ó'?Ó@ˆØ×Ñ˜Ð#@Ð"AÕBr    c                óv   — t        j                  t        d«      «      }| j                  t	        |«      d«       y )Nrª   r   )r   rÒ   r   rf   rŒ   rÓ   s     r   Útest_getTestModules_noVarsz*TestModuleTests.test_getTestModules_noVarsŽ  s+   € Ü×&Ñ&¤w¨{Ó';Ó<ˆØ×Ñœ˜W› qÕ)r    c                óz   — t        j                  t        d«      «      }| j                  t	        |«      ddh«       y )Nrœ   r�   r�   )r   rÒ   r   rf   ÚsetrÓ   s     r   Útest_getTestModules_multiplez,TestModuleTests.test_getTestModules_multiple’  s5   € Ü×&Ñ&¤w¨Ó'?Ó@ˆØ×ÑÜ�‹LØ*Ð,LÐMõ	
r    c                óê   — dD ]*  }| j                  t        j                  |«      |›d�«       Œ, dt        d«      t        d«      fD ]*  }| j	                  t        j                  |«      |›d�«       Œ, y )N)ztest_script.pyz!twisted/trial/test/test_script.pyz should be a test filez twisted/trial/test/moduletest.pyrœ   ztest_foo.batz should *not* be a test file)Ú
assertTruer   Ú
isTestFiler   ÚassertFalse)r=   r   s     r   Útest_looksLikeTestModulez(TestModuleTests.test_looksLikeTestModule™  s…   € ØOò 	ˆHØ�O‰OÜ× Ñ  Ó*Ø�,Ð4Ð5õð	ð /Ü�OÓ$Ü�NÓ#ð
ò 	ˆHð
 ×ÑÜ× Ñ  Ó*Ø�,Ð:Ð;õñ	r    Nrj   )r…   r   r†   z	list[str]rK   rL   )rM   rN   rO   rZ   r}   r€   r‰   r�   r”   r–   r˜   rš   rž   r§   r«   r®   r·   r¹   r½   r¿   rÅ   rÇ   rÌ   rÎ   rÐ   rÕ   r×   rÚ   rß   r$   r    r   rx   rx   Þ   sŠ   „ ó&óó7ó)ó7ó
ó	
ó

ó
ó	
ó ó7ó óYó
Yó

óYó
Ió
óWó(ó	
óCó*ó
ôr    rx   c                  óH   — e Zd ZdZd
d„Zd
d„Zdd„Zdd„Zd
d„Zd
d„Z	d
d„Z
y	)ÚWithoutModuleTestsz*
    Test the C{without-module} flag.
    c                ór   — t        j                  «       | _        t        t        j
                  «      | _        y)zl
        Create a L{trial.Options} object to be used in the tests, and save
        C{sys.modules}.
        N)r   r'   r*   Údictr£   rÔ   ÚsavedModulesr^   s    r   rZ   zWithoutModuleTests.setUp¯  s"   € ô
 —m‘m“oˆŒÜ ¤§¡Ó-ˆÕr    c                ó°   — dD ]Q  }|| j                   v r!| j                   |   t        j                  |<   Œ2t        j                  j                  |d«       ŒS y)z)
        Restore C{sys.modules}.
        )ÚimaplibÚsmtplibN)rä   r£   rÔ   Úpop)r=   Úmodules     r   r}   zWithoutModuleTests.tearDown·  sL   € ð -ò 	.ˆFØ˜×*Ñ*Ñ*Ø&*×&7Ñ&7¸Ñ&?”—‘˜FÒ#ä—‘—‘ ¨Õ-ñ		.r    c                ó   — ddl }|S )zE
        Try to import the C{smtplib} module, and return it.
        r   N)rç   )r=   rç   s     r   Ú
_checkSMTPzWithoutModuleTests._checkSMTPÁ  ó   € ó 	àˆr    c                ó   — ddl }|S )zE
        Try to import the C{imaplib} module, and return it.
        r   N)ræ   )r=   ræ   s     r   Ú
_checkIMAPzWithoutModuleTests._checkIMAPÉ  rì   r    c                óü   — | j                   j                  ddg«       | j                  t        | j                  «       t
        j                  d= | j                  | j	                  «       t        j                  «       y)zT
        Check that after disabling a module, it can't be imported anymore.
        ú--without-modulerç   N)
r*   r(   rÃ   ÚImportErrorrë   r£   rÔ   ÚassertIsInstanceÚtypesÚ
ModuleTyper^   s    r   Útest_disableOneModulez(WithoutModuleTests.test_disableOneModuleÑ  sY   € ð 	�‰× Ñ Ð"4°iÐ!@ÔAØ×Ñœ+ t§¡Ô7ä�K‰K˜	Ð"à×Ñ˜dŸo™oÓ/´×1AÑ1AÕBr    c                óº  — | j                   j                  ddg«       | j                  t        | j                  «       | j                  t        | j
                  «       t        j                  d= t        j                  d= | j                  | j	                  «       t        j                  «       | j                  | j                  «       t        j                  «       y)zE
        Check that several modules can be disabled at once.
        rð   zsmtplib,imaplibrç   ræ   N)r*   r(   rÃ   rñ   rë   rî   r£   rÔ   rò   ró   rô   r^   s    r   Útest_disableMultipleModulesz.WithoutModuleTests.test_disableMultipleModulesÜ  s—   € ð 	�‰× Ñ Ð"4Ð6GÐ!HÔIØ×Ñœ+ t§¡Ô7Ø×Ñœ+ t§¡Ô7ä�K‰K˜	Ð"Ü�K‰K˜	Ð"à×Ñ˜dŸo™oÓ/´×1AÑ1AÔBØ×Ñ˜dŸo™oÓ/´×1AÑ1AÕBr    c                ó  — | j                  | j                  «       t        j                  «       | j	                  t
        dt        j                  | j                  j                  ddg«       | j                  t        | j                  «       y)zP
        Disabling an already imported module should produce a warning.
        z4Module 'smtplib' already imported, disabling anyway.rð   rç   N)rò   rë   ró   rô   ÚassertWarnsÚRuntimeWarningr   r   r*   r(   rÃ   rñ   r^   s    r   Ú!test_disableAlreadyImportedModulez4WithoutModuleTests.test_disableAlreadyImportedModuleê  sg   € ð 	×Ñ˜dŸo™oÓ/´×1AÑ1AÔBØ×ÑÜØBÜ�N‰NØ�K‰K×$Ñ$Ø Ð+ô	
ð 	×Ñœ+ t§¡Õ7r    Nrj   )rK   Úobject)rM   rN   rO   rP   rZ   r}   rë   rî   rõ   r÷   rû   r$   r    r   rá   rá   ª  s,   „ ñó.ó.óóó	CóCô8r    rá   c                  óH   — e Zd ZdZ eedd«      €dZd	d„Zd	d„Zd	d„Z	d	d„Z
y)
ÚCoverageTestsz+
    Tests for the I{coverage} option.
    ÚgettraceNz;Cannot test trace hook installation without inspection API.c                óh   — | j                  t        j                  t        j                  «       «       y)zf
        Arrange for the current trace hook to be restored when the
        test is complete.
        N)Ú
addCleanupr£   Úsettracerÿ   r^   s    r   rZ   zCoverageTests.setUp  s   € ð
 	�‰œŸ™¤c§l¡l£nÕ5r    c                óÜ   — t        j                  «       }|j                  dg«       |j                  €J ‚| j	                  t        j                  «       |j                  j                  «       y)z}
        L{trial.Options} handles C{"--coverage"} by installing a trace
        hook to record coverage information.
        z
--coverageN)r   r'   r(   Útracerrf   r£   rÿ   Úglobaltrace©r=   Úoptionss     r   Útest_tracerInstalledz"CoverageTests.test_tracerInstalled  sS   € ô
 —-‘-“/ˆØ×Ñ˜l˜^Ô,Ø�~‰~Ð)Ð)Ð)Ø×ÑÜ�L‰L‹Nà�N‰N×&Ñ&õ	
r    c                ó¦   — t        j                  «       }| j                  |j                  «       t	        d«      j                  |d   dg«      «       y)z 
        L{trial.Options.coverdir} returns a L{FilePath} based on the default
        for the I{temp-directory} option if that option is not specified.
        rF   rC   ÚcoverageN)r   r'   rf   Úcoverdirr   Ú
descendantr  s     r   Útest_coverdirDefaultz"CoverageTests.test_coverdirDefault  sF   € ô
 —-‘-“/ˆØ×ÑØ×ÑÓÜ�S‹M×$Ñ$ gÐ.>Ñ&?ÀÐ%LÓMõ	
r    c                óâ   — | j                  «       }t        j                  «       }|j                  d|g«       | j	                  |j                  «       t        |«      j                  d«      «       y)z‹
        If a value is specified for the I{temp-directory} option,
        L{trial.Options.coverdir} returns a child of that path.
        r8   r
  N)Úmktempr   r'   r(   rf   r  r   Úchild)r=   rG   r  s      r   Útest_coverdirOverriddenz%CoverageTests.test_coverdirOverridden!  sV   € ð
 �{‰{‹}ˆÜ—-‘-“/ˆØ×ÑÐ0°$Ð7Ô8Ø×Ñ˜×)Ñ)Ó+¬X°d«^×-AÑ-AÀ*Ó-MÕNr    rj   )rM   rN   rO   rP   Úgetattrr£   ÚskiprZ   r  r  r  r$   r    r   rþ   rþ   ù  s2   „ ññ ˆs�J Ó%Ð-ØLˆó6ó
ó	
ôOr    rþ   c                  ó@   — e Zd ZdZd	d„Zd	d„Zd	d„Zd	d„Zd	d„Zd	d„Z	y)
ÚOptionsTestsz%
    Tests for L{trial.Options}.
    c                ó6   — t        j                  «       | _        y)zE
        Build an L{Options} object to be used in the tests.
        N©r   r'   r  r^   s    r   rZ   zOptionsTests.setUp1  s   € ô —}‘}“ˆ�r    c                óª  — | j                  t        j                  t        j                  «       «       t	        j
                  «       r| j                  t        j                  «       | j                  j                  g d¢«       | j                  j                  «       }| j                  d|«       |j                  d«       | j                  ddg|«       y)z¹
        C{_getWorkerArguments} discards options like C{random} as they only
        matter in the manager, and forwards options like C{recursionlimit} or
        C{disablegc}.
        )ú--recursionlimitÚ2000ú--randomÚ4ú--disablegcr  r  r  N)r  r£   ÚsetrecursionlimitÚgetrecursionlimitrW   Ú	isenabledÚenabler  r(   Ú_getWorkerArgumentsÚassertInÚremoverf   )r=   Úargss     r   Útest_getWorkerArgumentsz$OptionsTests.test_getWorkerArguments7  s“   € ð 	�‰œ×-Ñ-¬s×/DÑ/DÓ/FÔGÜ�<‰<Œ>Ø�O‰OœBŸI™IÔ&à�‰×!Ñ!ÚHô	
ð �|‰|×/Ñ/Ó1ˆØ�‰�m TÔ*Ø�‰�MÔ"Ø×ÑÐ,¨fÐ5°tÕ<r    c                ó”   — | j                  t        | j                  j                  g d¢«      }| j	                  dt        |«      «       y)zÁ
        C{parseOptions} raises a C{UsageError} when C{--debug} is passed along
        C{--jobs} as it's not supported yet.

        @see: U{http://twistedmatrix.com/trac/ticket/5825}
        )ú--jobsr  ú--debugz+You can't specify --debug when using --jobsN©rÃ   r   r  r(   rf   rJ   ©r=   Úerrors     r   Útest_jobsConflictWithDebugz'OptionsTests.test_jobsConflictWithDebugI  s=   € ð ×!Ñ!Ü˜Ÿ™×1Ñ1Ò3Mó
ˆð 	×ÑÐFÌÈEË
ÕSr    c                ó”   — | j                  t        | j                  j                  g d¢«      }| j	                  dt        |«      «       y)zÃ
        C{parseOptions} raises a C{UsageError} when C{--profile} is passed
        along C{--jobs} as it's not supported yet.

        @see: U{http://twistedmatrix.com/trac/ticket/5827}
        )r(  r  z	--profilez-You can't specify --profile when using --jobsNr*  r+  s     r   Útest_jobsConflictWithProfilez)OptionsTests.test_jobsConflictWithProfileU  s=   € ð ×!Ñ!Ü˜Ÿ™×1Ñ1Ò3Oó
ˆð 	×ÑÐHÌ#ÈeË*ÕUr    c                ó”   — | j                  t        | j                  j                  g d¢«      }| j	                  dt        |«      «       y)zÍ
        C{parseOptions} raises a C{UsageError} when C{--debug-stacktraces} is
        passed along C{--jobs} as it's not supported yet.

        @see: U{http://twistedmatrix.com/trac/ticket/5826}
        )r(  r  z--debug-stacktracesz7You can't specify --debug-stacktraces when using --jobsNr*  r+  s     r   Ú%test_jobsConflictWithDebugStackTracesz2OptionsTests.test_jobsConflictWithDebugStackTracesa  s@   € ð ×!Ñ!ÜØ�L‰L×%Ñ%Ú2ó
ˆð
 	×ÑØEÄsÈ5Ãzõ	
r    c                ó”   — | j                  t        | j                  j                  g d¢«      }| j	                  dt        |«      «       y)zr
        C{parseOptions} raises a C{UsageError} when C{--order} is passed along
        with C{--random}.
        )ú--orderÚalphabeticalr  Ú1234z-You can't specify --random when using --orderNr*  r+  s     r   Útest_orderConflictWithRandomz)OptionsTests.test_orderConflictWithRandomq  s>   € ð
 ×!Ñ!ÜØ�L‰L×%Ñ%Ú;ó
ˆð
 	×ÑÐHÌ#ÈeË*ÕUr    Nrj   )
rM   rN   rO   rP   rZ   r&  r-  r/  r1  r6  r$   r    r   r  r  ,  s(   „ ñó'ó=ó$
Tó
Vó
ô 
Vr    r  c                  ó8   — e Zd ZdZdd„Zdd„Zdd„Zdd„Zdd„Zy)	ÚMakeRunnerTestsz.
    Tests for the L{_makeRunner} helper.
    c                ó6   — t        j                  «       | _        y rz   r  r^   s    r   rZ   zMakeRunnerTests.setUpƒ  s   € Ü—}‘}“ˆ�r    c                ó>  — | j                   j                  g d¢«       t        j                  | j                   «      }t	        |t
        «      sJ ‚| j                  |t
        «       | j                  d|j                  «       | j                  dg|j                  «       y)zÝ
        L{_makeRunner} returns a L{DistTrialRunner} instance when the C{--jobs}
        option is passed.  The L{DistTrialRunner} knows how many workers to
        run and the C{workerArguments} to pass to them.
        )r(  r  ú
--force-gcé   r;  N)
r  r(   r   r-   Ú
isinstancer   rò   rf   Ú_maxWorkersÚ_workerArgumentsra   s     r   Ú	test_jobszMakeRunnerTests.test_jobs†  sy   € ð 	�‰×!Ñ!Ò"?Ô@Ü×"Ñ" 4§<¡<Ó0ˆÜ˜&¤/Ô2Ð2Ð2Ø×Ñ˜f¤oÔ6Ø×Ñ˜˜F×.Ñ.Ô/Ø×Ñ˜,˜¨×)@Ñ)@ÕAr    c                ó   — | j                   j                  g d¢«       t        j                  | j                   «      }t	        |t
        «      sJ ‚| j                  |t
        «       | j                  t
        j                  |j                  «       y)zŸ
        L{_makeRunner} returns a L{TrialRunner} instance in C{DRY_RUN} mode
        when the C{--dry-run} option is passed, even if C{--jobs} is set.
        )r(  r  z	--dry-runN)
r  r(   r   r-   r=  r   rò   rf   ÚDRY_RUNÚmodera   s     r   Útest_dryRunWithJobsz#MakeRunnerTests.test_dryRunWithJobs“  se   € ð
 	�‰×!Ñ!Ò">Ô?Ü×"Ñ" 4§<¡<Ó0ˆÜ˜&¤+Ô.Ð.Ð.Ø×Ñ˜f¤kÔ2Ø×Ñœ×,Ñ,¨f¯k©kÕ:r    c                ó4  ‡— t         j                  j                  Šdˆfd„}| j                  t         j                  d|«       t        j                  «       }|j                  g d¢«       | j                  t         j                  t         j                  |«       y )Nc                ó\   •— | dk(  rt         j                  j                  | «      ‚ ‰| «      S )NÚ	doNotFind)r   ÚreflectÚModuleNotFound)ÚfqnÚnamedAnys    €r   ÚnamedAnyExceptdoNotFindzFMakeRunnerTests.test_DebuggerNotFound.<locals>.namedAnyExceptdoNotFind¡  s*   ø€ Ø�kÒ!Ü—m‘m×2Ñ2°3Ó7Ð7Ù˜C“=Ð r    rK  )r)  z
--debuggerrG  )rJ  rJ   rK   rü   )	r   rH  rK  rV   r'   r(   rÃ   Ú_DebuggerNotFoundr-   )r=   rL  r  rK  s      @r   Útest_DebuggerNotFoundz%MakeRunnerTests.test_DebuggerNotFoundž  sf   ø€ Ü—=‘=×)Ñ)ˆõ	!ð
 	�
‰
”5—=‘= *Ð.EÔFä—-‘-“/ˆØ×ÑÒCÔDà×Ñœ%×1Ñ1´5×3DÑ3DÀgÕNr    c                óÔ   — | j                   j                  dg«       t        j                  | j                   «      }t	        |t
        «      sJ ‚| j                  |j                  «       y)z‚
        Passing C{--exitfirst} wraps the reporter with a
        L{reporter._ExitWrapper} that stops on any non-success.
        z--exitfirstN)r  r(   r   r-   r=  r   rÜ   Ú
_exitFirstra   s     r   Útest_exitfirstzMakeRunnerTests.test_exitfirst­  sN   € ð
 	�‰×!Ñ! = /Ô2Ü×"Ñ" 4§<¡<Ó0ˆÜ˜&¤+Ô.Ð.Ð.Ø�‰˜×)Ñ)Õ*r    Nrj   )	rM   rN   rO   rP   rZ   r@  rD  rN  rQ  r$   r    r   r8  r8  ~  s"   „ ñó'óBó	;óOô+r    r8  c                  ó    — e Zd ZdZdd„Zdd„Zy)ÚRunTestsz(
    Tests for the L{run} function.
    c                óH   — | j                  t        j                  dd„ «       y )Nr(   c                 ó   — y rz   r$   r^   s    r   ú<lambda>z RunTests.setUp.<locals>.<lambda>À  s   � r    )rV   r   r'   r^   s    r   rZ   zRunTests.setUp½  s   € ð 	�
‰
”5—=‘= .Ñ2CÕDr    c                óè   — dd„}| j                  t        d|«       	 t        j                  «        | j                  d«       y# t        $ r%}| j                  dt        |«      «       Y d}~yd}~ww xY w)zY
        When a debugger is not found, an error message is printed to the user.

        c                 ó,   — t        j                  d«      ‚rÁ   )r   rM  )r%  Úkwargss     r   r-   z3RunTests.test_debuggerNotFound.<locals>._makeRunnerÈ  s   € Ü×)Ñ)¨%Ó0Ð0r    r-   z0Should have exited due to non-existent debugger!r¼   N)r%  rü   rY  rü   rK   rL   )rV   r   r1   ÚfailÚ
SystemExitr#  rJ   )r=   r-   Úes      r   Útest_debuggerNotFoundzRunTests.test_debuggerNotFoundÂ  s^   € ó	1ð 	�
‰
”5˜-¨Ô5ð	JÜ�I‰IŒKð �I‰IÐHÕIøô ò 	)Ø�M‰M˜%¤ Q£×(Ñ(ûð	)ús   �A Á	A1ÁA,Á,A1Nrj   )rM   rN   rO   rP   rZ   r]  r$   r    r   rS  rS  ¸  s   „ ñóEô
Jr    rS  c                  ó    — e Zd ZdZdd„Zdd„Zy)ÚTestArgumentOrderTestszQ
    Tests for the order-preserving behavior on provided command-line tests.
    c                óT   — t        j                  «       | _        t        «       | _        y rz   )r   r'   r*   r   rs   r^   s    r   rZ   zTestArgumentOrderTests.setUpÚ  s   € Ü—m‘m“oˆŒÜ “lˆ�r    c                ó"  — g d¢}| j                   j                  |«       t        j                  | j                   «      }t	        |«      }t        t        | j                  j                  |«      «      }t	        |«      }| j                  ||«       y)zN
        Multiple tests passed on the command line are not reordered.
        )r±   z"twisted.trial.test.test_assertionsz twisted.trial.test.test_deferredN)
r*   r(   r   r“   r   r   r‚   rs   rƒ   rf   )r=   r‹   r3   r†   ÚexpectedSuiteÚexpectedNamess         r   Útest_preserveArgumentOrderz1TestArgumentOrderTests.test_preserveArgumentOrderÞ  sn   € ò
ˆð
 	�‰× Ñ  Ô'ä—‘ §¡Ó,ˆÜ˜%Ó ˆä!¤# d§k¡k×&<Ñ&<¸eÓ"DÓEˆÜ! -Ó0ˆà×Ñ˜ Õ.r    Nrj   )rM   rN   rO   rP   rZ   rd  r$   r    r   r_  r_  Õ  s   „ ñó#ô/r    r_  c                  óX   — e Zd ZdZdd„Zdd„Zdd„Zdd„Zdd„Zdd„Z	dd„Z
dd	„Zdd
„Zy)Ú
OrderTestsz'
    Tests for the --order option.
    c                ó6   — t        j                  «       | _        y rz   rn   r^   s    r   rZ   zOrderTests.setUp÷  r{   r    c                óò   — | j                   j                  g d¢«       t        j                  | j                   «      }|j	                  | j                   d   «      }| j                  t        |«      g d¢«       y)zn
        --order=alphabetical causes trial to run tests alphabetically within
        each test case.
        )r3  r4  ú%twisted.trial.test.ordertests.FooTestr‹   )ú0twisted.trial.test.ordertests.FooTest.test_firstú1twisted.trial.test.ordertests.FooTest.test_fourthú1twisted.trial.test.ordertests.FooTest.test_secondú0twisted.trial.test.ordertests.FooTest.test_thirdN©r*   r(   r   rp   ÚloadByNamesrf   r   ©r=   rs   r3   s      r   Útest_alphabeticalzOrderTests.test_alphabeticalú  sc   € ð
 	�‰× Ñ ÚPô	
ô ×!Ñ! $§+¡+Ó.ˆØ×"Ñ" 4§;¡;¨wÑ#7Ó8ˆà×ÑÜ�eÓòõ	
r    c                óò   — | j                   j                  g d¢«       t        j                  | j                   «      }|j	                  | j                   d   «      }| j                  t        |«      g d¢«       y)zu
        --order=alphabetical causes trial to run test classes within a given
        module alphabetically.
        )r3  r4  útwisted.trial.test.ordertestsr‹   )ú.twisted.trial.test.ordertests.BarTest.test_barú.twisted.trial.test.ordertests.BazTest.test_bazrj  rk  rl  rm  Nrn  rp  s      r   Útest_alphabeticalModulez"OrderTests.test_alphabeticalModule  sc   € ð
 	�‰× Ñ ÚHô	
ô ×!Ñ! $§+¡+Ó.ˆØ×"Ñ" 4§;¡;¨wÑ#7Ó8ˆà×ÑÜ�eÓòõ
	
r    c                ó*  — | j                   j                  g d¢«       t        j                  | j                   «      }|j	                  | j                   d   «      }t        |«      }| j                  |d¬«       | j                  |t        |«      «       y)z¢
        --order=alphabetical causes trial to run test modules within a given
        package alphabetically, with tests within each module alphabetized.
        )r3  r4  útwisted.trial.testr‹   zFailed to load any tests!©ÚmsgN)	r*   r(   r   rp   ro  r   rÜ   rf   Úsorted©r=   rs   r3   r†   s       r   Útest_alphabeticalPackagez#OrderTests.test_alphabeticalPackage'  ss   € ð
 	�‰× Ñ Ò!RÔSÜ×!Ñ! $§+¡+Ó.ˆØ×"Ñ" 4§;¡;¨wÑ#7Ó8ˆä˜%Ó ˆØ�‰˜Ð#>ˆÔ?Ø×Ñ˜¤ u£Õ.r    c                óò   — | j                   j                  g d¢«       t        j                  | j                   «      }|j	                  | j                   d   «      }| j                  t        |«      g d¢«       y)z°
        --order=toptobottom causes trial to run test methods within a given
        test case from top to bottom as they are defined in the body of the
        class.
        )r3  Útoptobottomri  r‹   )rj  rl  rm  rk  Nrn  rp  s      r   Útest_toptobottomzOrderTests.test_toptobottom4  sc   € ð 	�‰× Ñ ÚOô	
ô ×!Ñ! $§+¡+Ó.ˆØ×"Ñ" 4§;¡;¨wÑ#7Ó8ˆà×ÑÜ�eÓòõ	
r    c                óò   — | j                   j                  g d¢«       t        j                  | j                   «      }|j	                  | j                   d   «      }| j                  t        |«      g d¢«       y)z£
        --order=toptobottom causes trial to run test classes within a given
        module from top to bottom as they are defined in the module's source.
        ©r3  r  rs  r‹   )rj  rl  rm  rk  ru  rt  Nrn  rp  s      r   Útest_toptobottomModulez!OrderTests.test_toptobottomModuleK  sc   € ð
 	�‰× Ñ ÚGô	
ô ×!Ñ! $§+¡+Ó.ˆØ×"Ñ" 4§;¡;¨wÑ#7Ó8ˆà×ÑÜ�eÓòõ
	
r    c                ó
  — | j                   j                  g d¢«       t        j                  | j                   «      }|j	                  | j                   d   «      }t        |«      }| j                  |t        |d„ ¬«      «       y)z®
        --order=toptobottom causes trial to run test modules within a given
        package alphabetically, with tests within each module run top to
        bottom.
        )r3  r  rx  r‹   c                ó*   — | j                  d«      d d S )NrF   r<  )Úsplit)Únames    r   rV  z4OrderTests.test_toptobottomPackage.<locals>.<lambda>q  s   € ¨4¯:©:°c«?¸2¸AÐ+>€ r    )ÚkeyN)r*   r(   r   rp   ro  r   rf   r{  r|  s       r   Útest_toptobottomPackagez"OrderTests.test_toptobottomPackageb  sl   € ð 	�‰× Ñ Ò!QÔRÜ×!Ñ! $§+¡+Ó.ˆØ×"Ñ" 4§;¡;¨wÑ#7Ó8ˆä˜%Ó ˆð 	×ÑØÜ�5Ñ>Ô?õ	
r    c                óÞ  — | j                  «       }t        |«      j                  d«      }|j                  «        |j                  d«      j	                  d«       |j                  d«      j	                  t        j                  d«      j                  d«      «       |j                  «       j                  }t        j                  j                  d|«       | j                  t        j                  j                  |«       ddlm} | j                  t        j                   j"                  d«       | j                  t        j                   j"                  |j$                  «       |j                  d«      j                  «        | j&                  j)                  g d	¢«       t+        j,                  | j&                  «      }|j/                  |«      }| j1                  t3        |«      g d
¢«       y)z{
        --order=toptobottom detects the source line of methods from modules
        whose source file is missing.
        Útwisted_toptobottom_tempz__init__.pyr    ztest_missing.pya   
        from twisted.trial.unittest import TestCase
        class TestMissing(TestCase):
            def test_second(self) -> None: pass
            def test_third(self) -> None: pass
            def test_fourth(self) -> None: pass
            def test_first(self) -> None: pass
        Úutf8r   )Útest_missingr‚  )z=twisted_toptobottom_temp.test_missing.TestMissing.test_secondz<twisted_toptobottom_temp.test_missing.TestMissing.test_thirdz=twisted_toptobottom_temp.test_missing.TestMissing.test_fourthz<twisted_toptobottom_temp.test_missing.TestMissing.test_firstN)r  r   r  ÚmakedirsÚ
setContentÚtextwrapÚdedentÚencodeÚparentrG   r£   Úinsertr  r$  r‹  r�  rÔ   rè   rM   r*   r(   r   rp   Ú
loadModulerf   r   )r=   ÚtempdirÚpackageÚ	pathEntryr�  rs   r3   s          r   Útest_toptobottomMissingSourcez(OrderTests.test_toptobottomMissingSourcet  s^  € ð
 —+‘+“-ˆÜ˜7Ó#×)Ñ)Ð*DÓEˆØ×ÑÔØ�‰�mÓ$×/Ñ/°Ô4Ø�‰Ð'Ó(×3Ñ3Ü�O‰Oðó	÷ ‰f�V‹nô	
ð —N‘NÓ$×)Ñ)ˆ	Ü�‰�‰˜˜9Ô%Ø�‰œŸ™Ÿ™¨Ô3õ	
ð 	�‰œŸ™Ÿ™Ð)CÔDØ�‰œŸ™Ÿ™¨×)>Ñ)>Ô?Ø�‰Ð'Ó(×/Ñ/Ô1à�‰× Ñ ÚGô	
ô ×!Ñ! $§+¡+Ó.ˆØ×!Ñ! ,Ó/ˆà×ÑÜ�eÓòõ	
r    c                ó^   — | j                  t        | j                  j                  ddg«       y)zL
        An unknown order passed to --order raises a L{UsageError}.
        r3  zI don't existN)rÃ   r   r*   r(   r^   s    r   Útest_unknownOrderzOrderTests.test_unknownOrder¤  s(   € ð
 	×ÑÜ˜Ÿ™×0Ñ0°9¸oÐ2Nõ	
r    Nrj   )rM   rN   rO   rP   rZ   rq  rv  r}  r€  rƒ  r‰  r™  r›  r$   r    r   rf  rf  ò  s5   „ ñó&ó
ó,
ó./ó
ó.
ó.
ó$.
ô`
r    rf  c                  ó   — e Zd ZdZdd„Zy)ÚHelpOrderTestsz+
    Tests for the --help-orders flag.
    c                ó  — | j                  t        dt        «       x}«       | j                  t        t        j                  «       j                  dg«      }| j                  |j                  d«       |j                  «       }d}t
        j                  j                  «       D ]a  \  }\  }}t        j                  t        j                  |«      › dt        j                  |«      › �|«      }| j!                  ||||fz  ¬«       Œc y)zS
        --help-orders prints each of the available orders and then exits.
        Ústdoutz--help-ordersr   z4%r with its description not properly described in %rz.*ry  N)rV   r£   r   rÃ   r[  r   r'   r(   rf   Úcoder¥   Ú
_runOrdersÚitemsÚreÚsearchÚescaperÜ   )	r=   rŸ  ÚexcÚoutputrz  Ú	orderNameÚ	orderDescÚ_Úmatchs	            r   Ú&test_help_ordersPrintsSynopsisAndQuitsz5HelpOrderTests.test_help_ordersPrintsSynopsisAndQuits³  sà   € ð 	�
‰
”3˜¬H«JÐ"6 &Ô7à×ÑÜœŸ™›×4Ñ4°Ð6Gó
ˆð 	×Ñ˜Ÿ™ 1Ô%à—‘Ó"ˆàDˆÜ).×)9Ñ)9×)?Ñ)?Ó)Aò 	BÑ%ˆI‘~˜	 1Ü—I‘IÜ—9‘9˜YÓ'Ð(¨¬2¯9©9°YÓ+?Ð*@ÐAØóˆEð
 �O‰O˜E s¨i¸Ð-@Ñ'@ˆOÕAñ	Br    Nrj   )rM   rN   rO   rP   r¬  r$   r    r   r�  r�  ®  s   „ ñôBr    r�  )r   rJ   rK   rJ   rj   )r)   z	List[str]rK   útrial.Options)r*   r­  rK   r­  )BÚ
__future__r   rW   r£  r£   r�  ró   Úior   Útypingr   Úhamcrestr   r   Ú
hypothesisr   Úhypothesis.strategiesr	   Útwisted.loggerr
   Útwisted.pythonr   Útwisted.python.filepathr   r   Útwisted.python.usager   Útwisted.scriptsr   Útwisted.trialr   Útwisted.trial._dist.disttrialr   Útwisted.trial._dist.functionalr   Útwisted.trial.runnerr   r   r   r   r   Útwisted.trial.test.test_loaderr   Úmatchersr   Ú
__import__r/   r   r%   r+   r4   r;   ÚSynchronousTestCaser6   rR   rl   rx   rá   rþ   ÚTestCaser  r8  rS  r_  rf  r�  r$   r    r   ú<module>rÂ     sq  ðõ #ã 	Û 	Û 
Û Û Ý Ý ç 1Ý Ý .å !Ý ß 7Ý +Ý !Ý "Ý 9Ý 2÷õ õ 5Ý "á	�JÓ	€ó,óóóñ ˜=¨.Ó9Ð ô=G�8×/Ñ/ô =Gô@45 (×">Ñ">ô 45ôn9�X×1Ñ1ô 9ô8I�h×2Ñ2ô IôXL8˜×5Ñ5ô L8ô^0O�H×0Ñ0ô 0OôfOV�8×$Ñ$ô OVôd7+�h×'Ñ'ô 7+ôtJˆx× Ñ ô Jô:/˜X×.Ñ.ô /ô:y
�×"Ñ"ô y
ôxB�X×&Ñ&õ Br    