o
    Óó·iÁ*  ã                   @  s¬   d Z ddlmZ ddlZddlmZ ddlmZ ddl	m
Z
mZmZ ddlmZ G dd	„ d	ejƒZG d
d„ dejƒZG dd„ dejƒZG dd„ deƒZG dd„ deƒZ[dS )z0
Tests for returning Deferreds from a TestCase.
é    )ÚannotationsN)Údefer)ÚFailure)ÚreporterÚunittestÚutil)Údetestsc                   @  sH   e Zd Zddd„Zddd	„Zdd
d„Zddd„Zddd„Zddd„ZdS )Ú
SetUpTestsÚklassútype[pyunit.TestCase]Úreturnú,tuple[reporter.TestResult, pyunit.TestSuite]c                 C  ó"   t  ¡ }t ¡ }| |¡}||fS ©N©ÚpyunitÚ
TestLoaderr   Ú
TestResultÚloadTestsFromTestCase©Úselfr
   ÚloaderÚrÚs© r   úfC:\Users\psant\Downloads\PAF backend\school\venv\Lib\site-packages\twisted/trial/test/test_deferred.pyÚ
_loadSuite   ó   
zSetUpTests._loadSuiteÚNonec                 C  s8   |   tj¡\}}||ƒ |  | ¡ ¡ |  |jd¡ d S )Né   )r   r   ZDeferredSetUpOKÚ
assertTrueÚwasSuccessfulÚassertEqualÚtestsRun©r   ÚresultÚsuiter   r   r   Útest_success   s   zSetUpTests.test_successc                 C  óx   |   tjj¡ |  tj¡\}}||ƒ |   | ¡ ¡ |  |jd¡ |  t|j	ƒd¡ |  t|j
ƒd¡ |   tjj¡ d S ©Nr   r   )ÚassertFalser   ZDeferredSetUpFailÚ
testCalledr   r!   r"   r#   ÚlenÚfailuresÚerrorsr$   r   r   r   Ú	test_fail    ó   zSetUpTests.test_failc                 C  r(   r)   )r*   r   ZDeferredSetUpCallbackFailr+   r   r!   r"   r#   r,   r-   r.   r$   r   r   r   Útest_callbackFail*   r0   zSetUpTests.test_callbackFailc                 C  r(   r)   )r*   r   ZDeferredSetUpErrorr+   r   r!   r"   r#   r,   r-   r.   r$   r   r   r   Ú
test_error4   r0   zSetUpTests.test_errorc                 C  sŠ   |   tjj¡ |  tj¡\}}||ƒ |  | ¡ ¡ |  |jd¡ |  t	|j
ƒd¡ |  t	|jƒd¡ |  t	|jƒd¡ |   tjj¡ d S r)   )r*   r   ZDeferredSetUpSkipr+   r   r    r!   r"   r#   r,   r-   r.   Úskipsr$   r   r   r   Ú	test_skip>   s   zSetUpTests.test_skipN©r
   r   r   r   ©r   r   )	Ú__name__Ú
__module__Ú__qualname__r   r'   r/   r1   r2   r4   r   r   r   r   r	      s    







r	   c                   @  s4   e Zd Zddd„Zddd„Zdd
d„Zddd„ZdS )ÚNeverFireTestsr   r   c                 C  s   t j| _dt _d S )Ngš™™™™™¹?)r   ÚDEFAULT_TIMEOUT_DURATIONÚ_oldTimeout©r   r   r   r   ÚsetUpK   s   
zNeverFireTests.setUpc                 C  s   | j t_d S r   )r<   r   r;   r=   r   r   r   ÚtearDownO   s   zNeverFireTests.tearDownr
   r   r   c                 C  r   r   r   r   r   r   r   r   R   r   zNeverFireTests._loadSuitec                 C  s¬   |   tjj¡ |  tj¡\}}||ƒ |   | ¡ ¡ |  |jd¡ |  t|j	ƒd¡ |  t|j
ƒd¡ |   tjj¡ t|j
d d tƒsFJ ‚|  |j
d d  tj¡¡ d S r)   )r*   r   ZDeferredSetUpNeverFirer+   r   r!   r"   r#   r,   r-   r.   Ú
isinstancer   r    Úcheckr   ÚTimeoutErrorr$   r   r   r   Ú
test_setUpZ   s    zNeverFireTests.test_setUpNr6   r5   )r7   r8   r9   r>   r?   r   rC   r   r   r   r   r:   J   s
    


r:   c                   @  s    e Zd Zddd„Zddd	„Zd
S )Ú
TestTesterÚnameÚstrr   úpyunit.TestCasec                 C  s   t dƒ‚)Nzmust override me)ÚNotImplementedError©r   rE   r   r   r   ÚgetTesth   s   zTestTester.getTestúreporter.TestResultc                 C  s   t  ¡ }|  |¡ |¡ |S r   )r   r   rJ   Úrun)r   rE   r%   r   r   r   ÚrunTestk   s   zTestTester.runTestN)rE   rF   r   rG   )rE   rF   r   rK   )r7   r8   r9   rJ   rM   r   r   r   r   rD   g   s    
rD   c                   @  sf   e Zd Zddd„Zddd	„Zdd
d„Zddd„Zddd„Zddd„Zddd„Z	ddd„Z
ddd„ZdS )ÚDeferredTestsrE   rF   r   údetests.DeferredTestsc                 C  ó
   t  |¡S r   )r   rN   rI   r   r   r   rJ   r   ó   
zDeferredTests.getTestr   c                 C  ó*   |   d¡}|  | ¡ ¡ |  |jd¡ d S ©NÚ	test_passr   ©rM   r    r!   r"   r#   ©r   r%   r   r   r   rT   u   ó   
zDeferredTests.test_passc                 C  s8   |   d¡}|  | ¡ ¡ |  |jd¡ |  tjj¡ dS )zQ
        The body of a L{defer.inlineCallbacks} decorated test gets run.
        Útest_passInlineCallbacksr   N)rM   r    r!   r"   r#   r   rN   ÚtouchedrV   r   r   r   rX   z   s   
z&DeferredTests.test_passInlineCallbacksc                 C  ó<   |   d¡}|  | ¡ ¡ |  |jd¡ |  t|jƒd¡ d S )Nr/   r   ©rM   r*   r!   r"   r#   r,   r-   rV   r   r   r   r/   ƒ   ó   
zDeferredTests.test_failc                 C  rZ   )NÚtest_failureInCallbackr   r[   rV   r   r   r   r]   ‰   r\   z$DeferredTests.test_failureInCallbackc                 C  rZ   )NÚtest_errorInCallbackr   )rM   r*   r!   r"   r#   r,   r.   rV   r   r   r   r^   �   r\   z"DeferredTests.test_errorInCallbackc                 C  sJ   |   d¡}|  | ¡ ¡ |  |jd¡ |  t|jƒd¡ |  tj	j
¡ d S ©Nr4   r   )rM   r    r!   r"   r#   r,   r3   r*   r   rN   rY   rV   r   r   r   r4   •   s
   
zDeferredTests.test_skipc                 C  s`   |   d¡}|  | ¡ ¡ |  |jd¡ |  t|jƒd¡ |  t|jƒd¡ |  t|jƒd¡ d S )NÚtest_expectedFailurer   r   )	rM   r    r!   r"   r#   r,   r.   r-   ÚexpectedFailuresrV   r   r   r   Ú	test_todoœ   s   
zDeferredTests.test_todoc                 C  s.   |   d¡}|  |jd¡ |  | ¡ |j¡ d S )NÚtest_threadr   )rM   r"   r#   r    r!   r.   rV   r   r   r   rc   ¤   s   
zDeferredTests.test_threadN)rE   rF   r   rO   r6   )r7   r8   r9   rJ   rT   rX   r/   r]   r^   r4   rb   rc   r   r   r   r   rN   q   s    



	



rN   c                   @  sŽ   e Zd Zd$dd„Zd%dd„Zd&dd„Zd&dd„Zd&dd„Zd&dd„Zd&dd„Z	d&dd„Z
d&dd„Zd&dd„Zd&dd„Zd&dd „Zd&d!d"„Zd#S )'ÚTimeoutTestsrE   rF   r   údetests.TimeoutTestsc                 C  rP   r   )r   rd   rI   r   r   r   rJ   «   rQ   zTimeoutTests.getTestÚerrorr   ÚexpectedMessager   c                 C  s.   |   | tj¡tj¡ |  ||jjd ¡ d S )Nr   )r"   rA   r   rB   ZassertInÚvalueÚargs)r   rf   rg   r   r   r   Ú_wasTimeout®   s   zTimeoutTests._wasTimeoutc                 C  rR   rS   rU   rV   r   r   r   rT   ²   rW   zTimeoutTests.test_passc                 C  rR   )NÚtest_passDefaultr   rU   rV   r   r   r   rk   ·   rW   zTimeoutTests.test_passDefaultc                 C  ój   |   d¡}|  | ¡ ¡ |  |jd¡ |  t|jƒd¡ t|jd d tƒs(J ‚|  	|jd d d¡ d S )NÚtest_timeoutr   r   z((test_timeout) still running at 0.1 secs©
rM   r*   r!   r"   r#   r,   r.   r@   r   rj   rV   r   r   r   rm   ¼   ó   
ÿzTimeoutTests.test_timeoutc                 C  rl   )NÚtest_timeoutZeror   r   z,(test_timeoutZero) still running at 0.0 secsrn   rV   r   r   r   rp   Æ   ro   zTimeoutTests.test_timeoutZeroc                 C  s*   |   d¡}|  | ¡ ¡ |  |jd¡ dS )z[
        See L{twisted.trial.test.detests.TimeoutTests.test_addCleanupPassDefault}
        Útest_addCleanupPassDefaultr   NrU   rV   r   r   r   rq   Ð   s   
z'TimeoutTests.test_addCleanupPassDefaultc                 C  sj   |   d¡}|  | ¡ ¡ |  |jd¡ |  t|jƒd¡ t|jd d tƒs(J ‚|  	|jd d d¡ dS )zÍ
        See L{twisted.trial.test.detests.TimeoutTests.test_addCleanupTimeout}

        TODO: current test does not mock reactor and thus the test spends real time
        until the timeout fires.
        Útest_addCleanupTimeoutr   r   z4(cleanup function cleanup) still running at 0.1 secsNrn   rV   r   r   r   rr   Ø   s   
ÿz#TimeoutTests.test_addCleanupTimeoutc                 C  rZ   r_   )rM   r    r!   r"   r#   r,   r3   rV   r   r   r   r4   è   r\   zTimeoutTests.test_skipc                 C  rl   )Nr`   r   r   z0(test_expectedFailure) still running at 0.1 secs)
rM   r    r!   r"   r#   r,   ra   r@   r   rj   rV   r   r   r   rb   î   s   
þzTimeoutTests.test_todoc                 C  sJ   |   d¡}|  | ¡ ¡ |  |jd¡ tjjd usJ ‚|  tjjd¡ d S )NÚtest_errorPropagationr   z1(test_errorPropagation) still running at 0.1 secs)	rM   r*   r!   r"   r#   r   rd   ZtimedOutrj   rV   r   r   r   rs   ù   s   
þz"TimeoutTests.test_errorPropagationc                 C  sj   t  ¡ }| tj¡}t ¡ }| |¡ |  t	|j
ƒd¡ t|j
d d tƒs(J ‚|  |j
d d d¡ d S )Nr   r   z&(testMethod) still running at 0.2 secs)r   r   r   r   ZTestClassTimeoutAttributer   r   rL   r"   r,   r.   r@   r   rj   )r   r   r&   r%   r   r   r   Útest_classTimeout  s   
zTimeoutTests.test_classTimeoutc                 C  st   ddl m} | d|j¡}|  d¡}| ¡ r| ¡  |  | ¡ ¡ t	|j
d d tƒs-J ‚|  |j
d d d¡ d S )Nr   )Úreactoré   Ztest_calledButNeverCallbackr   z7(test_calledButNeverCallback) still running at 0.1 secs)Útwisted.internetru   Z	callLaterZcrashrM   ÚactiveÚcancelr*   r!   r@   r.   r   rj   )r   ru   Úcallr%   r   r   r   Ú&test_callbackReturnsNonCallingDeferred  s   
þz3TimeoutTests.test_callbackReturnsNonCallingDeferredN)rE   rF   r   re   )rf   r   rg   rF   r   r   r6   )r7   r8   r9   rJ   rj   rT   rk   rm   rp   rq   rr   r4   rb   rs   rt   r{   r   r   r   r   rd   ª   s    














	rd   )Ú__doc__Ú
__future__r   r   r   rw   r   Ztwisted.python.failurer   Ztwisted.trialr   r   Ztwisted.trial.testr   ZTestCaser	   r:   rD   rN   rd   r   r   r   r   Ú<module>   s   9
9t