
    Ϫf                       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
 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)runWithWarningsSuppressed)unittest)suppressc                      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     </usr/lib/python3/dist-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_setUpCalled0   s    		&'r   c                    dt         _        y r   )r2   r/   r#   s    r   r$   z!DeferredSetUpCallbackFail.test_ok3   s    /3!,r   N)r%   r&   r'   r/   r   r   r$   r(   r   r   r2   r2   (   s    J
(4r   r2   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.setUp:   s    zz,'9:;;r   c                    dt         _        y r   )r8   r/   r#   s    r   r$   zDeferredSetUpError.test_ok=   s    (,%r   Nr0   r(   r   r   r8   r8   7   s    J<-r   r8   c                      e Zd ZdZd Zd Zy)DeferredSetUpNeverFireFc                *    t        j                         S r!   r   Deferredr#   s    r   r   zDeferredSetUpNeverFire.setUpD       ~~r   c                    dt         _        y r   )r=   r/   r#   s    r   r$   zDeferredSetUpNeverFire.test_okG   s    ,0)r   Nr0   r(   r   r   r=   r=   A   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.setUpN   s%    MM'"	dii r   c                ,    t        j                  d      )Nzskip mer	   SkipTestr   s     r   rF   zDeferredSetUpSkip._cb1S   s    	**r   c                    dt         _        y r   )rD   r/   r#   s    r   r$   zDeferredSetUpSkip.test_okV   s    '+$r   N)r%   r&   r'   r/   r   rF   r$   r(   r   r   rD   rD   K   s    J
+,r   rD   c                      e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
 e ed	
      gej                  e
      Z
ej                  d        Zd Zd Zd Zd Zd Zd Zde_        y)DeferredTestsFc                &    | j                  |       y r!   r5   r   reasons     r   _cb_failzDeferredTests._cb_fail]   s    		&r   c                    t        |      r!   )r:   rN   s     r   	_cb_errorzDeferredTests._cb_error`   s    6""r   c                ,    t        j                  |      r!   rH   rN   s     r   _cb_skipzDeferredTests._cb_skipc   s    ''r   c                &    d| j                   _        y r   	__class__touchedr   s     r   _touchClasszDeferredTests._touchClassf   s    !%r   c                &    d| j                   _        y )NFrV   r#   s    r   r   zDeferredTests.setUpi   s    !&r   c                ,    t        j                  d      S )Nsuccess)r   r   r#   s    r   	test_passzDeferredTests.test_passl   s    }}Y''r   c              #  6   K   | j                  d        d  y wr!   rY   r#   s    r   test_passGeneratedz DeferredTests.test_passGeneratedo   s     
   z7twisted.internet.defer.deferredGenerator was deprecated)messagec              #  6   K   | j                  d       d yw)zL
        Test case that is decorated with L{defer.inlineCallbacks}.
        Nr_   r#   s    r   test_passInlineCallbacksz&DeferredTests.test_passInlineCallbacks}   s     
 	
ra   c                J    t        j                  | j                  d            S )NzI fail)r   r,   failureExceptionr#   s    r   	test_failzDeferredTests.test_fail   s    zz$//9::r   c                f    t        j                  d      }|j                  | j                         |S )Nr,   )r   r   r   rP   r   s     r   test_failureInCallbackz$DeferredTests.test_failureInCallback   s%    MM&!	dmm$r   c                f    t        j                  d      }|j                  | j                         |S )Nerrorr   r   r   rR   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   rT   rY   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todorl   r   s     r   test_expectedFailurez"DeferredTests.test_expectedFailure   s%    MM&!	dnn%r   zExpected failureN)r%   r&   r'   rX   rP   rR   rT   rY   r   r]   r`   r   SUPPRESSr   deferredGeneratorinlineCallbacksrd   rg   ri   rm   rp   ru   rx   rw   r(   r   r   rL   rL   Z   s    G#(&'( 3T	

 	  ;

3
 !3r   rL   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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 r   r   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   rA   r   g?c                *    t        j                         S r!   r?   r#   s    r   test_timeoutZerozTimeoutTests.test_timeoutZero   rA   r   r   c                *    t        j                         S r!   r?   r#   s    r   rx   z!TimeoutTests.test_expectedFailure   rA   r   zi will get it right, eventuallyc                *    t        j                         S r!   r?   r#   s    r   rp   zTimeoutTests.test_skip   rA   r   c                \      fd}t        j                         }|j                  |       |S )Nc                *    | j                   _        | S r!   )rW   r~   )errr   s    r   r~   z4TimeoutTests.test_errorPropagation.<locals>.timedOut   s    &)DNN#Jr   )r   r@   
addErrback)r   r~   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   s    >>##r      )r   r@   r   r   )r   r   r   s      r   test_calledButNeverCallbackz(TimeoutTests.test_calledButNeverCallback   s1    NN	$ 	
i 	

1r   )r%   r&   r'   r~   __annotations__r]   timeoutr   r   r   rx   rw   rp   ro   r   r   r(   r   r   r}   r}      s    #Hn#
 I  L   !  $'  A  I6IN %(! +.'r   r}   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.python.utilr   twisted.trialr	   twisted.trial.utilr
   ry   TestCaser   r*   r2   r8   r=   rD   rL   r}   r   r(   r   r   <module>r      s    # 4 4 * 9 " 3
+h'' 
+-)) -4 1 1 4-** -1X.. 1,)) ,F3H%% F3R;.8$$ ;.| 1 1 r   