
    Vh*                        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	ej                        Z G d
 dej                        Z G d dej                        Z G d de      Z G d de      Z[y)z0
Tests for returning Deferreds from a TestCase.
    )annotationsN)defer)Failure)reporterunittestutil)detestsc                  D    e Zd Z	 	 	 	 ddZd	dZd	dZd	dZd	dZd	dZy)

SetUpTestsc                |    t        j                         }t        j                         }|j	                  |      }||fS Npyunit
TestLoaderr   
TestResultloadTestsFromTestCaseselfklassloaderrss        P/home/dcms/DCMS/lib/python3.12/site-packages/twisted/trial/test/test_deferred.py
_loadSuitezSetUpTests._loadSuite   9     ""$!((/!t    c                    | j                  t        j                        \  }} ||       | j                  |j	                                | j                  |j                  d       y )N   )r   r	   DeferredSetUpOK
assertTruewasSuccessfulassertEqualtestsRunr   resultsuites      r   test_successzSetUpTests.test_success   sJ    (?(?@f,,./!,r   c                   | j                  t        j                  j                         | j	                  t        j                        \  }} ||       | j                  |j                                | j                  |j                  d       | j                  t        |j                        d       | j                  t        |j                        d       | j                  t        j                  j                         y Nr   r   )assertFalser	   DeferredSetUpFail
testCalledr   r!   r"   r#   lenfailureserrorsr$   s      r   	test_failzSetUpTests.test_fail    s    22==>(A(ABf--/0!,V__-q1V]]+Q/22==>r   c                   | j                  t        j                  j                         | j	                  t        j                        \  }} ||       | j                  |j                                | j                  |j                  d       | j                  t        |j                        d       | j                  t        |j                        d       | j                  t        j                  j                         y r)   )r*   r	   DeferredSetUpCallbackFailr,   r   r!   r"   r#   r-   r.   r/   r$   s      r   test_callbackFailzSetUpTests.test_callbackFail*   s    ::EEF(I(IJf--/0!,V__-q1V]]+Q/::EEFr   c                   | j                  t        j                  j                         | j	                  t        j                        \  }} ||       | j                  |j                                | j                  |j                  d       | j                  t        |j                        d       | j                  t        |j                        d       | j                  t        j                  j                         y r)   )r*   r	   DeferredSetUpErrorr,   r   r!   r"   r#   r-   r.   r/   r$   s      r   
test_errorzSetUpTests.test_error4   s    33>>?(B(BCf--/0!,V__-q1V]]+Q/33>>?r   c                P   | j                  t        j                  j                         | j	                  t        j                        \  }} ||       | j                  |j                                | j                  |j                  d       | j                  t        |j                        d       | j                  t        |j                        d       | j                  t        |j                        d       | j                  t        j                  j                         y r)   )r*   r	   DeferredSetUpSkipr,   r   r    r!   r"   r#   r-   r.   r/   skipsr$   s      r   	test_skipzSetUpTests.test_skip>   s    22==>(A(ABf,,./!,V__-q1V]]+Q/V\\*A.22==>r   Nr   ztype[pyunit.TestCase]returnz,tuple[reporter.TestResult, pyunit.TestSuite]r<   None)	__name__
__module____qualname__r   r'   r0   r3   r6   r:    r   r   r   r      s2    *	5-?G@	?r   r   c                  4    e Zd ZddZddZ	 	 	 	 ddZddZy)NeverFireTestsc                D    t         j                  | _        dt         _        y )Ng?)r   DEFAULT_TIMEOUT_DURATION_oldTimeoutr   s    r   setUpzNeverFireTests.setUpK   s    88(+%r   c                .    | j                   t        _        y r   )rG   r   rF   rH   s    r   tearDownzNeverFireTests.tearDownO   s    (,(8(8%r   c                |    t        j                         }t        j                         }|j	                  |      }||fS r   r   r   s        r   r   zNeverFireTests._loadSuiteR   r   r   c                   | j                  t        j                  j                         | j	                  t        j                        \  }} ||       | j                  |j                                | j                  |j                  d       | j                  t        |j                        d       | j                  t        |j                        d       | j                  t        j                  j                         t        |j                  d   d   t              sJ | j                  |j                  d   d   j                  t        j                                y r)   )r*   r	   DeferredSetUpNeverFirer,   r   r!   r"   r#   r-   r.   r/   
isinstancer   r    checkr   TimeoutErrorr$   s      r   
test_setUpzNeverFireTests.test_setUpZ   s    77BBC(F(FGf--/0!,V__-q1V]]+Q/77BBC&--*1-w777a(+11%2D2DEFr   Nr=   r;   )r?   r@   rA   rI   rK   r   rR   rB   r   r   rD   rD   J   s'    ,9*	5
Gr   rD   c                      e Zd ZddZddZy)
TestTesterc                    t        d      )Nzmust override me)NotImplementedErrorr   names     r   getTestzTestTester.getTesth   s    !"455r   c                n    t        j                         }| j                  |      j                  |       |S r   )r   r   rY   run)r   rX   r%   s      r   runTestzTestTester.runTestk   s,    $$&Tv&r   N)rX   strr<   zpyunit.TestCase)rX   r]   r<   zreporter.TestResult)r?   r@   rA   rY   r\   rB   r   r   rT   rT   g   s    6r   rT   c                  T    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y
)DeferredTestsc                ,    t        j                  |      S r   )r	   r_   rW   s     r   rY   zDeferredTests.getTestr   s    $$T**r   c                    | j                  d      }| j                  |j                                | j                  |j                  d       y N	test_passr   r\   r    r!   r"   r#   r   r%   s     r   rc   zDeferredTests.test_passu   9    k*,,./!,r   c                    | j                  d      }| j                  |j                                | j                  |j                  d       | j                  t
        j                  j                         y)zQ
        The body of a L{defer.inlineCallbacks} decorated test gets run.
        test_passInlineCallbacksr   N)r\   r    r!   r"   r#   r	   r_   touchedre   s     r   rh   z&DeferredTests.test_passInlineCallbacksz   sT     89,,./!,--556r   c                    | j                  d      }| j                  |j                                | j                  |j                  d       | j                  t        |j                        d       y )Nr0   r   r\   r*   r!   r"   r#   r-   r.   re   s     r   r0   zDeferredTests.test_fail   sT    k*--/0!,V__-q1r   c                    | j                  d      }| j                  |j                                | j                  |j                  d       | j                  t        |j                        d       y )Ntest_failureInCallbackr   rk   re   s     r   rm   z$DeferredTests.test_failureInCallback   sU    67--/0!,V__-q1r   c                    | j                  d      }| j                  |j                                | j                  |j                  d       | j                  t        |j                        d       y )Ntest_errorInCallbackr   )r\   r*   r!   r"   r#   r-   r/   re   s     r   ro   z"DeferredTests.test_errorInCallback   sU    45--/0!,V]]+Q/r   c                8   | j                  d      }| j                  |j                                | j                  |j                  d       | j                  t        |j                        d       | j                  t        j                  j                         y Nr:   r   )r\   r    r!   r"   r#   r-   r9   r*   r	   r_   ri   re   s     r   r:   zDeferredTests.test_skip   sl    k*,,./!,V\\*A...667r   c                z   | j                  d      }| j                  |j                                | j                  |j                  d       | j                  t        |j                        d       | j                  t        |j                        d       | j                  t        |j                        d       y )Ntest_expectedFailurer   r   )	r\   r    r!   r"   r#   r-   r/   r.   expectedFailuresre   s     r   	test_todozDeferredTests.test_todo   s    45,,./!,V]]+Q/V__-q1V445q9r   c                    | j                  d      }| j                  |j                  d       | j                  |j	                         |j
                         y )Ntest_threadr   )r\   r"   r#   r    r!   r/   re   s     r   rw   zDeferredTests.test_thread   s?    m,!,,,.>r   N)rX   r]   r<   zdetests.DeferredTestsr=   )r?   r@   rA   rY   rc   rh   r0   rm   ro   r:   ru   rw   rB   r   r   r_   r_   q   s/    +-
72208:?r   r_   c                  t    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y)TimeoutTestsc                ,    t        j                  |      S r   )r	   ry   rW   s     r   rY   zTimeoutTests.getTest   s    ##D))r   c                    | j                  |j                  t        j                        t        j                         | j	                  ||j
                  j                  d          y )Nr   )r"   rP   r   rQ   assertInvalueargs)r   errorexpectedMessages      r   _wasTimeoutzTimeoutTests._wasTimeout   sD    U%7%78%:L:LMou{{'7'7':;r   c                    | j                  d      }| j                  |j                                | j                  |j                  d       y rb   rd   re   s     r   rc   zTimeoutTests.test_pass   rf   r   c                    | j                  d      }| j                  |j                                | j                  |j                  d       y )Ntest_passDefaultr   rd   re   s     r   r   zTimeoutTests.test_passDefault   s:    01,,./!,r   c                n   | j                  d      }| j                  |j                                | j                  |j                  d       | j                  t        |j                        d       t        |j                  d   d   t              sJ | j                  |j                  d   d   d       y )Ntest_timeoutr   r   z((test_timeout) still running at 0.1 secs
r\   r*   r!   r"   r#   r-   r/   rO   r   r   re   s     r   r   zTimeoutTests.test_timeout   s    n---/0!,V]]+Q/&--*1-w777MM!Q!K	
r   c                n   | j                  d      }| j                  |j                                | j                  |j                  d       | j                  t        |j                        d       t        |j                  d   d   t              sJ | j                  |j                  d   d   d       y )Ntest_timeoutZeror   r   z,(test_timeoutZero) still running at 0.0 secsr   re   s     r   r   zTimeoutTests.test_timeoutZero   s    01--/0!,V]]+Q/&--*1-w777MM!Q!O	
r   c                    | j                  d      }| j                  |j                                | j                  |j                  d       y)z[
        See L{twisted.trial.test.detests.TimeoutTests.test_addCleanupPassDefault}
        test_addCleanupPassDefaultr   Nrd   re   s     r   r   z'TimeoutTests.test_addCleanupPassDefault   s<     :;,,./!,r   c                n   | j                  d      }| j                  |j                                | j                  |j                  d       | j                  t        |j                        d       t        |j                  d   d   t              sJ | j                  |j                  d   d   d       y)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 secsNr   re   s     r   r   z#TimeoutTests.test_addCleanupTimeout   s     67--/0!,V]]+Q/&--*1-w777MM!Q!W	
r   c                    | j                  d      }| j                  |j                                | j                  |j                  d       | j                  t        |j                        d       y rq   )r\   r    r!   r"   r#   r-   r9   re   s     r   r:   zTimeoutTests.test_skip   sR    k*,,./!,V\\*A.r   c                n   | j                  d      }| j                  |j                                | j                  |j                  d       | j                  t        |j                        d       t        |j                  d   d   t              sJ | j                  |j                  d   d   d       y )Nrs   r   r   z0(test_expectedFailure) still running at 0.1 secs)
r\   r    r!   r"   r#   r-   rt   rO   r   r   re   s     r   ru   zTimeoutTests.test_todo   s    45,,./!,V445q9&11!4Q7AAA##A&q)>	
r   c                (   | j                  d      }| j                  |j                                | j                  |j                  d       t
        j                  j                  J | j                  t
        j                  j                  d       y )Ntest_errorPropagationr   z1(test_errorPropagation) still running at 0.1 secs)	r\   r*   r!   r"   r#   r	   ry   timedOutr   re   s     r   r   z"TimeoutTests.test_errorPropagation   st    56--/0!,##,,888  ))?	
r   c                   t        j                         }|j                  t        j                        }t        j                         }|j                  |       | j                  t        |j                        d       t        |j                  d   d   t              sJ | j                  |j                  d   d   d       y )Nr   r   z&(testMethod) still running at 0.2 secs)r   r   r   r	   TestClassTimeoutAttributer   r   r[   r"   r-   r/   rO   r   r   )r   r   r&   r%   s       r   test_classTimeoutzTimeoutTests.test_classTimeout  s    ""$,,W-N-NO$$&		&V]]+Q/&--*1-w777q)!,.VWr   c                p   ddl m} |j                  d|j                        }| j	                  d      }|j                         r|j                          | j                  |j                                t        |j                  d   d   t              sJ | j                  |j                  d   d   d       y )Nr   )reactor   test_calledButNeverCallbackr   z7(test_calledButNeverCallback) still running at 0.1 secs)twisted.internetr   	callLatercrashr\   activecancelr*   r!   rO   r/   r   r   )r   r   callr%   s       r   &test_callbackReturnsNonCallingDeferredz3TimeoutTests.test_callbackReturnsNonCallingDeferred  s     	-  GMM2;<;;=KKM--/0&--*1-w777MM!QE	
r   N)rX   r]   r<   zdetests.TimeoutTests)r   r   r   r]   r<   r>   r=   )r?   r@   rA   rY   r   rc   r   r   r   r   r   r:   ru   r   r   r   rB   r   r   ry   ry      sD    *<-
-


-
 /	

X
r   ry   )__doc__
__future__r   r   r   r   r   twisted.python.failurer   twisted.trialr   r   twisted.trial.testr	   TestCaser   rD   rT   r_   ry   rB   r   r   <module>r      s{    #  " * 2 2 &6?"" 6?rGX&& G:"" 6?J 6?rp
: p
h r   