
    Vh                       d Z ddlmZ ddlmZmZmZ ddl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
j                        Z G d de
j                        Z G d de
j                        Z G d de
j                        Z G d de
j                        Z G d de
j                        Zy)zD
Tests for Deferred handling by L{twisted.trial.unittest.TestCase}.
    )annotations)deferreactorthreads)Failure)unittestc                      e Zd Zd Zd Zd Zy)DeferredSetUpOKc                f    t        j                  d      }|j                  | j                         |S Nvaluer   succeedaddCallback_cb_setUpCalledselfds     J/home/dcms/DCMS/lib/python3.12/site-packages/twisted/trial/test/detests.pysetUpzDeferredSetUpOK.setUp   '    MM'"	d**+    c                    d| _         y NT)_setUpCalledr   ignoreds     r   r   zDeferredSetUpOK._cb_setUpCalled   s
     r   c                :    | j                  | j                         y N)
assertTruer   r   s    r   test_okzDeferredSetUpOK.test_ok   s    ))*r   N)__name__
__module____qualname__r   r   r"    r   r   r
   r
      s    
!+r   r
   c                      e Zd ZdZd Zd Zy)DeferredSetUpFailFc                R    t        j                  t        j                  d            S )Nzi fail)r   failr   FailTestr!   s    r   r   zDeferredSetUpFail.setUp   s    zz(++H566r   c                <    dt         _        | j                  d       y )NTzI should not get called)r(   
testCalledr*   r!   s    r   r"   zDeferredSetUpFail.test_ok!   s    '+$		+,r   Nr#   r$   r%   r-   r   r"   r&   r   r   r(   r(      s    J7-r   r(   c                  "    e Zd ZdZd Zd Zd Zy)DeferredSetUpCallbackFailFc                f    t        j                  d      }|j                  | j                         |S r   r   r   s     r   r   zDeferredSetUpCallbackFail.setUp)   r   r   c                &    | j                  d       y )Nzdeliberate failurer*   r   s     r   r   z)DeferredSetUpCallbackFail._cb_setUpCalled.   s    		&'r   c                    dt         _        y r   )r0   r-   r!   s    r   r"   z!DeferredSetUpCallbackFail.test_ok1   s    /3!,r   N)r#   r$   r%   r-   r   r   r"   r&   r   r   r0   r0   &   s    J
(4r   r0   c                      e Zd ZdZd Zd Zy)DeferredSetUpErrorFc                >    t        j                  t        d            S )Nzdeliberate error)r   r*   RuntimeErrorr!   s    r   r   zDeferredSetUpError.setUp8   s    zz,'9:;;r   c                    dt         _        y r   )r6   r-   r!   s    r   r"   zDeferredSetUpError.test_ok;   s    (,%r   Nr.   r&   r   r   r6   r6   5   s    J<-r   r6   c                      e Zd ZdZd Zd Zy)DeferredSetUpNeverFireFc                *    t        j                         S r   r   Deferredr!   s    r   r   zDeferredSetUpNeverFire.setUpB       ~~r   c                    dt         _        y r   )r;   r-   r!   s    r   r"   zDeferredSetUpNeverFire.test_okE   s    ,0)r   Nr.   r&   r   r   r;   r;   ?   s    J 1r   r;   c                  "    e Zd ZdZd Zd Zd Zy)DeferredSetUpSkipFc                f    t        j                  d      }|j                  | j                         |S r   )r   r   r   _cb1r   s     r   r   zDeferredSetUpSkip.setUpL   s%    MM'"	dii r   c                ,    t        j                  d      )Nzskip mer   SkipTestr   s     r   rD   zDeferredSetUpSkip._cb1Q   s    	**r   c                    dt         _        y r   )rB   r-   r!   s    r   r"   zDeferredSetUpSkip.test_okT   s    '+$r   N)r#   r$   r%   r-   r   rD   r"   r&   r   r   rB   rB   I   s    J
+,r   rB   c                      e Zd ZdZd Zd Zd Zd Zd Zd Z	e
j                  d        Zd	 Zd
 Zd Zd Zd Zd Zde_        y)DeferredTestsFc                &    | j                  |       y r   r3   r   reasons     r   _cb_failzDeferredTests._cb_fail[   s    		&r   c                    t        |      r   )r8   rL   s     r   	_cb_errorzDeferredTests._cb_error^   s    6""r   c                ,    t        j                  |      r   rF   rL   s     r   _cb_skipzDeferredTests._cb_skipa   s    ''r   c                &    d| j                   _        y r   	__class__touchedr   s     r   _touchClasszDeferredTests._touchClassd   s    !%r   c                &    d| j                   _        y )NFrT   r!   s    r   r   zDeferredTests.setUpg   s    !&r   c                ,    t        j                  d      S )Nsuccess)r   r   r!   s    r   	test_passzDeferredTests.test_passj   s    }}Y''r   c              #  6   K   | j                  d       d yw)zL
        Test case that is decorated with L{defer.inlineCallbacks}.
        N)rW   r!   s    r   test_passInlineCallbacksz&DeferredTests.test_passInlineCallbacksm   s     
 	
s   c                J    t        j                  | j                  d            S )NzI fail)r   r*   failureExceptionr!   s    r   	test_failzDeferredTests.test_failu   s    zz$//9::r   c                f    t        j                  d      }|j                  | j                         |S )Nr*   )r   r   r   rN   r   s     r   test_failureInCallbackz$DeferredTests.test_failureInCallbackx   s%    MM&!	dmm$r   c                f    t        j                  d      }|j                  | j                         |S )Nerrorr   r   r   rP   r   s     r   test_errorInCallbackz"DeferredTests.test_errorInCallback}   s%    MM'"	dnn%r   c                    t        j                  d      }|j                  | j                         |j                  | j                         |S )Nskip)r   r   r   rR   rW   r   s     r   	test_skipzDeferredTests.test_skip   s7    MM&!	dmm$	d&&'r   c                .    t        j                  d       S )Nc                      y r   r&   r&   r   r   <lambda>z+DeferredTests.test_thread.<locals>.<lambda>   s    r   )r   deferToThreadr!   s    r   test_threadzDeferredTests.test_thread   s    $$\22r   c                f    t        j                  d      }|j                  | j                         |S )Ntodore   r   s     r   test_expectedFailurez"DeferredTests.test_expectedFailure   s%    MM&!	dnn%r   zExpected failureN)r#   r$   r%   rV   rN   rP   rR   rW   r   r[   r   inlineCallbacksr]   r`   rb   rf   ri   rn   rq   rp   r&   r   r   rJ   rJ   X   sh    G#(&'(  ;

3
 !3r   rJ   c                      e Zd ZU dZded<   d Zde_        d Zd Zde_        d	 Z	d
e	_        d Z
d Zde_        d Zde_        de_        d Zde_        de_        d Zde_        d Zde_        y)TimeoutTestsNzFailure | NonetimedOutc                p    t        j                         }t        j                  d|j                  d       |S Nr   zhoorj!r   r>   r   	callLatercallbackr   s     r   r[   zTimeoutTests.test_pass   s)    NN!QZZ2r      c                p    t        j                         }t        j                  d|j                  d       |S rw   rx   r   s     r   test_passDefaultzTimeoutTests.test_passDefault   s)    NN!QZZ2r   c                *    t        j                         S r   r=   r!   s    r   test_timeoutzTimeoutTests.test_timeout   r?   r   g?c                *    t        j                         S r   r=   r!   s    r   test_timeoutZerozTimeoutTests.test_timeoutZero   r?   r   r   c                ,    d }| j                  |       y)z
        A cleanup can return a deferred.
        The cleanup is successuful as long as the deferred is resolve sooner than the default
        test case timeout (DEFAULT_TIMEOUT_DURATION seconds)
        c                 p    t        j                         } t        j                  d| j                  d       | S )Nr   rZ   rx   )r   s    r   cleanupz8TimeoutTests.test_addCleanupPassDefault.<locals>.cleanup   s)     AaY7Hr   N
addCleanupr   r   s     r   test_addCleanupPassDefaultz'TimeoutTests.test_addCleanupPassDefault   s    	
 	 r   c                ,    d }| j                  |       y)z
        A cleanup can return a deferred.
        When the deferred returned by addCleanup is not resolved sooner than the
        test's timeout, the test is considered failed.
        c                 *    t        j                         S r   r=   r&   r   r   r   z4TimeoutTests.test_addCleanupTimeout.<locals>.cleanup       >>##r   Nr   r   s     r   test_addCleanupTimeoutz#TimeoutTests.test_addCleanupTimeout   s    	$ 	 r   c                *    t        j                         S r   r=   r!   s    r   rq   z!TimeoutTests.test_expectedFailure   r?   r   zi will get it right, eventuallyc                *    t        j                         S r   r=   r!   s    r   ri   zTimeoutTests.test_skip   r?   r   c                \      fd}t        j                         }|j                  |       |S )Nc                *    | j                   _        | S r   )rU   ru   )errr   s    r   ru   z4TimeoutTests.test_errorPropagation.<locals>.timedOut   s    &)DNN#Jr   )r   r>   
addErrback)r   ru   r   s   `  r   test_errorPropagationz"TimeoutTests.test_errorPropagation   s'    	 NN	Xr   c                x    t        j                         }d }|j                  |       |j                  d       |S )Nc                *    t        j                         S r   r=   )rs    r   	neverFirez;TimeoutTests.test_calledButNeverCallback.<locals>.neverFire   r   r      )r   r>   r   rz   )r   r   r   s      r   test_calledButNeverCallbackz(TimeoutTests.test_calledButNeverCallback   s1    NN	$ 	
i 	

1r   )r#   r$   r%   ru   __annotations__r[   timeoutr}   r   r   r   r   rq   rp   ri   rh   r   r   r&   r   r   rt   rt      s    #Hn#
 I  L   !!
! &)"  $'  A  I6IN %(! +.'r   rt   c                      e Zd ZdZd Zd Zy)TestClassTimeoutAttributeg?c                6    t        j                         | _        y r   )r   r>   r   r!   s    r   r   zTestClassTimeoutAttribute.setUp   s    !r   c                (    d| _         | j                  S r   )methodCalledr   r!   s    r   
testMethodz$TestClassTimeoutAttribute.testMethod   s     vvr   N)r#   r$   r%   r   r   r   r&   r   r   r   r      s    G"r   r   N)__doc__
__future__r   twisted.internetr   r   r   twisted.python.failurer   twisted.trialr   TestCaser
   r(   r0   r6   r;   rB   rJ   rt   r   r&   r   r   <module>r      s    # 4 4 * "
+h'' 
+-)) -4 1 1 4-** -1X.. 1,)) ,83H%% 83vW.8$$ W.t 1 1 r   