
    \d#                        d 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  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dS )zD
Tests for Deferred handling by L{twisted.trial.unittest.TestCase}.
    )deferreactorthreads)runWithWarningsSuppressed)unittest)suppressc                        e Zd Zd Zd Zd ZdS )DeferredSetUpOKc                 b    t          j        d          }|                    | j                   |S Nvaluer   succeedaddCallback_cb_setUpCalledselfds     :lib/python3.11/site-packages/twisted/trial/test/detests.pysetUpzDeferredSetUpOK.setUp   +    M'""	d*+++    c                     d| _         d S NT)_setUpCalledr   ignoreds     r   r   zDeferredSetUpOK._cb_setUpCalled   s     r   c                 :    |                      | j                   d S N)
assertTruer   r   s    r   test_okzDeferredSetUpOK.test_ok   s    )*****r   N)__name__
__module____qualname__r   r   r"    r   r   r
   r
      sA          
! ! !+ + + + +r   r
   c                       e Zd ZdZd Zd ZdS )DeferredSetUpFailFc                 N    t          j        t          j        d                    S )Nzi fail)r   failr   FailTestr!   s    r   r   zDeferredSetUpFail.setUp   s    z(+H55666r   c                 H    dt           _        |                     d           d S )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(      s7        J7 7 7- - - - -r   r(   c                   $    e Zd ZdZd Zd Zd ZdS )DeferredSetUpCallbackFailFc                 b    t          j        d          }|                    | j                   |S r   r   r   s     r   r   zDeferredSetUpCallbackFail.setUp*   r   r   c                 0    |                      d           d S )Nzdeliberate failurer*   r   s     r   r   z)DeferredSetUpCallbackFail._cb_setUpCalled/   s    		&'''''r   c                     dt           _        d S r   )r0   r-   r!   s    r   r"   z!DeferredSetUpCallbackFail.test_ok2   s    /3!,,,r   N)r#   r$   r%   r-   r   r   r"   r&   r   r   r0   r0   '   sF        J  
( ( (4 4 4 4 4r   r0   c                       e Zd ZdZd Zd ZdS )DeferredSetUpErrorFc                 D    t          j        t          d                    S )Nzdeliberate error)r   r*   RuntimeErrorr!   s    r   r   zDeferredSetUpError.setUp9   s    z,'9::;;;r   c                     dt           _        d S r   )r6   r-   r!   s    r   r"   zDeferredSetUpError.test_ok<   s    (,%%%r   Nr.   r&   r   r   r6   r6   6   s7        J< < <- - - - -r   r6   c                       e Zd ZdZd Zd ZdS )DeferredSetUpNeverFireFc                 (    t          j                    S r   r   Deferredr!   s    r   r   zDeferredSetUpNeverFire.setUpC       ~r   c                     dt           _        d S r   )r;   r-   r!   s    r   r"   zDeferredSetUpNeverFire.test_okF   s    ,0)))r   Nr.   r&   r   r   r;   r;   @   s7        J     1 1 1 1 1r   r;   c                   $    e Zd ZdZd Zd Zd ZdS )DeferredSetUpSkipFc                 b    t          j        d          }|                    | j                   |S r   )r   r   r   _cb1r   s     r   r   zDeferredSetUpSkip.setUpM   s*    M'""	di   r   c                 *    t          j        d          )Nzskip mer   SkipTestr   s     r   rD   zDeferredSetUpSkip._cb1R   s    	***r   c                     dt           _        d S r   )rB   r-   r!   s    r   r"   zDeferredSetUpSkip.test_okU   s    '+$$$r   N)r#   r$   r%   r-   r   rD   r"   r&   r   r   rB   rB   J   sF        J  
+ + +, , , , ,r   rB   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_        dS )DeferredTestsFc                 0    |                      |           d S 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_skipb   s    '''r   c                     d| j         _        d S r   	__class__touchedr   s     r   _touchClasszDeferredTests._touchClasse   s    !%r   c                     d| j         _        d S )NFrT   r!   s    r   r   zDeferredTests.setUph   s    !&r   c                 *    t          j        d          S )Nsuccess)r   r   r!   s    r   	test_passzDeferredTests.test_passk   s    }Y'''r   c              #   <   K   |                      d            d V  d S r   rW   r!   s    r   test_passGeneratedz DeferredTests.test_passGeneratedn   s'      




r   z7twisted.internet.defer.deferredGenerator was deprecated)messagec              #   <   K   |                      d           dV  dS )zL
        Test case that is decorated with L{defer.inlineCallbacks}.
        Nr]   r!   s    r   test_passInlineCallbacksz&DeferredTests.test_passInlineCallbacks|   s)      
 	




r   c                 P    t          j        |                     d                    S )NzI fail)r   r*   failureExceptionr!   s    r   	test_failzDeferredTests.test_fail   s     z$//99:::r   c                 b    t          j        d          }|                    | j                   |S )Nr*   )r   r   r   rN   r   s     r   test_failureInCallbackz$DeferredTests.test_failureInCallback   s*    M&!!	dm$$$r   c                 b    t          j        d          }|                    | j                   |S )Nerrorr   r   r   rP   r   s     r   test_errorInCallbackz"DeferredTests.test_errorInCallback   s*    M'""	dn%%%r   c                     t          j        d          }|                    | j                   |                    | j                   |S )Nskip)r   r   r   rR   rW   r   s     r   	test_skipzDeferredTests.test_skip   s?    M&!!	dm$$$	d&'''r   c                 ,    t          j        d           S )Nc                      d S r   r&   r&   r   r   <lambda>z+DeferredTests.test_thread.<locals>.<lambda>   s    T r   )r   deferToThreadr!   s    r   test_threadzDeferredTests.test_thread   s    $\\222r   c                 b    t          j        d          }|                    | j                   |S )Ntodori   r   s     r   test_expectedFailurez"DeferredTests.test_expectedFailure   s*    M&!!	dn%%%r   zExpected failureN)r#   r$   r%   rV   rN   rP   rR   rW   r   r[   r^   r   SUPPRESSr   deferredGeneratorinlineCallbacksra   rd   rf   rj   rm   rr   ru   rt   r&   r   r   rJ   rJ   Y   s>       G  # # #( ( (& & &' ' '( ( (   32HT  	

 	    ; ; ;  
  
  3 3 3  
 !3r   rJ   c                       e Zd ZdZ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_        dS )TimeoutTestsNc                 b    t          j                    }t          j        d|j        d           |S Nr   zhoorj!r   r>   r   	callLatercallbackr   s     r   r[   zTimeoutTests.test_pass   s+    N!QZ222r      c                 b    t          j                    }t          j        d|j        d           |S r|   r}   r   s     r   test_passDefaultzTimeoutTests.test_passDefault   s+    N!QZ22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                 (    t          j                    S r   r=   r!   s    r   ru   z!TimeoutTests.test_expectedFailure   r?   r   zi will get it right, eventuallyc                 (    t          j                    S r   r=   r!   s    r   rm   zTimeoutTests.test_skip   r?   r   c                 b      fd}t          j                    }|                    |           |S )Nc                      | j         _        | S r   )rU   timedOut)errr   s    r   r   z4TimeoutTests.test_errorPropagation.<locals>.timedOut   s    &)DN#Jr   )r   r>   
addErrback)r   r   r   s   `  r   test_errorPropagationz"TimeoutTests.test_errorPropagation   sB    	 	 	 	 	 N	Xr   c                     t          j                    }d }|                    |           |                    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   sF    N	$ 	$ 	$ 	
i   	

1r   )r#   r$   r%   r   r[   timeoutr   r   r   ru   rt   rm   rl   r   r   r&   r   r   rz   rz      s        H  
 I        L       !      $'  A      I6IN   %(!   +.'''r   rz   c                       e Zd ZdZd Zd ZdS )TestClassTimeoutAttributeg?c                 6    t          j                    | _        d S 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     vr   N)r#   r$   r%   r   r   r   r&   r   r   r   r      s7        G" " "    r   r   N)__doc__twisted.internetr   r   r   twisted.python.utilr   twisted.trialr   twisted.trial.utilr   rv   TestCaser
   r(   r0   r6   r;   rB   rJ   rz   r   r&   r   r   <module>r      s   
 5 4 4 4 4 4 4 4 4 4 9 9 9 9 9 9 " " " " " " 3 3 3 3 3 3
+ 
+ 
+ 
+ 
+h' 
+ 
+ 
+- - - - -) - - -4 4 4 4 4 1 4 4 4- - - - -* - - -1 1 1 1 1X. 1 1 1, , , , ,) , , ,F3 F3 F3 F3 F3H% F3 F3 F3R;. ;. ;. ;. ;.8$ ;. ;. ;.|     1     r   