o
    9Bi                     @  s   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 de
j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
j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
jZdS )zD
Tests for Deferred handling by L{twisted.trial.unittest.TestCase}.
    )annotations)deferreactorthreads)Failure)unittestc                   @  s$   e Zd Zdd Zdd Zdd ZdS )DeferredSetUpOKc                 C     t d}|| j |S Nvaluer   succeedaddCallback_cb_setUpCalledselfd r   Z/var/www/html/Trade-python/venv/lib/python3.10/site-packages/twisted/trial/test/detests.pysetUp      
zDeferredSetUpOK.setUpc                 C  s
   d| _ d S NT)_setUpCalledr   ignoredr   r   r   r         
zDeferredSetUpOK._cb_setUpCalledc                 C  s   |  | j d S N)
assertTruer   r   r   r   r   test_ok      zDeferredSetUpOK.test_okN)__name__
__module____qualname__r   r   r   r   r   r   r   r      s    r   c                   @      e Zd ZdZdd Zdd ZdS )DeferredSetUpFailFc                 C  s   t tdS )Nzi fail)r   failr   FailTestr   r   r   r   r      r    zDeferredSetUpFail.setUpc                 C  s   dt _| d d S )NTzI should not get called)r%   
testCalledr&   r   r   r   r   r   !   s   zDeferredSetUpFail.test_okNr!   r"   r#   r(   r   r   r   r   r   r   r%          r%   c                   @  (   e Zd ZdZdd Zdd Zdd ZdS )	DeferredSetUpCallbackFailFc                 C  r	   r
   r   r   r   r   r   r   )   r   zDeferredSetUpCallbackFail.setUpc                 C  s   |  d d S )Nzdeliberate failurer&   r   r   r   r   r   .      z)DeferredSetUpCallbackFail._cb_setUpCalledc                 C  
   dt _d S r   )r,   r(   r   r   r   r   r   1   r   z!DeferredSetUpCallbackFail.test_okN)r!   r"   r#   r(   r   r   r   r   r   r   r   r,   &   
    r,   c                   @  r$   )DeferredSetUpErrorFc                 C  s   t tdS )Nzdeliberate error)r   r&   RuntimeErrorr   r   r   r   r   8   r.   zDeferredSetUpError.setUpc                 C  r/   r   )r1   r(   r   r   r   r   r   ;   r   zDeferredSetUpError.test_okNr)   r   r   r   r   r1   5   r*   r1   c                   @  r$   )DeferredSetUpNeverFireFc                 C     t  S r   r   Deferredr   r   r   r   r   B      zDeferredSetUpNeverFire.setUpc                 C  r/   r   )r3   r(   r   r   r   r   r   E   r   zDeferredSetUpNeverFire.test_okNr)   r   r   r   r   r3   ?   r*   r3   c                   @  r+   )	DeferredSetUpSkipFc                 C  r	   r
   )r   r   r   _cb1r   r   r   r   r   L   r   zDeferredSetUpSkip.setUpc                 C  s
   t d)Nzskip mer   SkipTestr   r   r   r   r9   Q   r   zDeferredSetUpSkip._cb1c                 C  r/   r   )r8   r(   r   r   r   r   r   T   r   zDeferredSetUpSkip.test_okN)r!   r"   r#   r(   r   r9   r   r   r   r   r   r8   I   r0   r8   c                   @  s   e Zd ZdZdd Zdd Zdd Zdd	 Zd
d Zdd Z	e
jdd Zdd Zdd Zdd Zdd Zdd Zdd Zde_dS )DeferredTestsFc                 C  s   |  | d S r   r-   r   reasonr   r   r   _cb_fail[   r.   zDeferredTests._cb_failc                 C  s   t |r   )r2   r=   r   r   r   	_cb_error^   r7   zDeferredTests._cb_errorc                 C  s
   t |r   r:   r=   r   r   r   _cb_skipa   r   zDeferredTests._cb_skipc                 C     d| j _d S r   	__class__touchedr   r   r   r   _touchClassd      zDeferredTests._touchClassc                 C  rB   )NFrC   r   r   r   r   r   g   rG   zDeferredTests.setUpc                 C  s
   t dS )Nsuccess)r   r   r   r   r   r   	test_passj   r   zDeferredTests.test_passc                 c  s    |  d dV  dS )zL
        Test case that is decorated with L{defer.inlineCallbacks}.
        N)rF   r   r   r   r   test_passInlineCallbacksm   s   

z&DeferredTests.test_passInlineCallbacksc                 C  s   t | dS )NzI fail)r   r&   failureExceptionr   r   r   r   	test_failu   r    zDeferredTests.test_failc                 C  r	   )Nr&   )r   r   r   r?   r   r   r   r   test_failureInCallbackx   r   z$DeferredTests.test_failureInCallbackc                 C  r	   )Nerrorr   r   r   r@   r   r   r   r   test_errorInCallback}   r   z"DeferredTests.test_errorInCallbackc                 C  s&   t d}|| j || j |S )Nskip)r   r   r   rA   rF   r   r   r   r   	test_skip   s   
zDeferredTests.test_skipc                 C  s   t dd S )Nc                   S  s   d S r   r   r   r   r   r   <lambda>   s    z+DeferredTests.test_thread.<locals>.<lambda>)r   deferToThreadr   r   r   r   test_thread   r.   zDeferredTests.test_threadc                 C  r	   )NtodorO   r   r   r   r   test_expectedFailure   r   z"DeferredTests.test_expectedFailurezExpected failureN)r!   r"   r#   rE   r?   r@   rA   rF   r   rI   r   inlineCallbacksrJ   rL   rM   rP   rR   rU   rW   rV   r   r   r   r   r<   X   s"    

r<   c                   @  s   e Zd ZU dZded< dd Zde_dd Zd	d
 Zde_dd Z	de	_dd Z
dd Zde_dd Zde_de_dd Zde_de_dd Zde_dd Zde_dS )TimeoutTestsNzFailure | NonetimedOutc                 C     t  }td|jd |S Nr   zhoorj!r   r6   r   	callLatercallbackr   r   r   r   rI         zTimeoutTests.test_pass   c                 C  r[   r\   r]   r   r   r   r   test_passDefault   s   zTimeoutTests.test_passDefaultc                 C  r4   r   r5   r   r   r   r   test_timeout   r7   zTimeoutTests.test_timeoutg?c                 C  r4   r   r5   r   r   r   r   test_timeoutZero   r7   zTimeoutTests.test_timeoutZeror   c                 C     dd }|  | dS )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                  S  s   t  } td| jd | S )Nr   rH   r]   )r   r   r   r   cleanup   r`   z8TimeoutTests.test_addCleanupPassDefault.<locals>.cleanupN
addCleanupr   rf   r   r   r   test_addCleanupPassDefault   s   z'TimeoutTests.test_addCleanupPassDefaultc                 C  re   )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                   S  r4   r   r5   r   r   r   r   rf      r7   z4TimeoutTests.test_addCleanupTimeout.<locals>.cleanupNrg   ri   r   r   r   test_addCleanupTimeout   s   z#TimeoutTests.test_addCleanupTimeoutc                 C  r4   r   r5   r   r   r   r   rW      r7   z!TimeoutTests.test_expectedFailurezi will get it right, eventuallyc                 C  r4   r   r5   r   r   r   r   rR      r7   zTimeoutTests.test_skipc                   s"    fdd}t  }|| |S )Nc                   s   |  j _| S r   )rD   rZ   )errr   r   r   rZ      s   z4TimeoutTests.test_errorPropagation.<locals>.timedOut)r   r6   
addErrback)r   rZ   r   r   r   r   test_errorPropagation   s   
z"TimeoutTests.test_errorPropagationc                 C  s(   t  }dd }|| |d |S )Nc                 S  r4   r   r5   )rr   r   r   	neverFire   r7   z;TimeoutTests.test_calledButNeverCallback.<locals>.neverFire   )r   r6   r   r_   )r   r   rp   r   r   r   test_calledButNeverCallback   s
   

z(TimeoutTests.test_calledButNeverCallback)r!   r"   r#   rZ   __annotations__rI   timeoutrb   rc   rd   rj   rk   rW   rV   rR   rQ   rn   rr   r   r   r   r   rY      s,   
 	

rY   c                   @  r$   )TestClassTimeoutAttributeg?c                 C  s   t  | _d S r   )r   r6   r   r   r   r   r   r      r.   zTestClassTimeoutAttribute.setUpc                 C  s   d| _ | jS r   )methodCalledr   r   r   r   r   
testMethod   s   z$TestClassTimeoutAttribute.testMethodN)r!   r"   r#   rt   r   rw   r   r   r   r   ru      r*   ru   N)__doc__
__future__r   twisted.internetr   r   r   twisted.python.failurer   twisted.trialr   TestCaser   r%   r,   r1   r3   r8   r<   rY   ru   r   r   r   r   <module>   s   

;Z