o
    Óó·iü  ã                   @  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   ú`C:\Users\psant\Downloads\PAF backend\school\venv\Lib\site-packages\twisted/trial/test/detests.pyÚsetUp   ó   
zDeferredSetUpOK.setUpc                 C  s
   d| _ d S ©NT)Ú_setUpCalled©r   Z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   Z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   )r/   r&   r   r   r   r   r   ;   r   zDeferredSetUpError.test_okNr'   r   r   r   r   r/   5   r(   r/   c                   @  r#   )ÚDeferredSetUpNeverFireFc                 C  ó   t  ¡ S r   ©r   ÚDeferredr   r   r   r   r   B   ó   zDeferredSetUpNeverFire.setUpc                 C  r-   r   )r1   r&   r   r   r   r   r   E   r   zDeferredSetUpNeverFire.test_okNr'   r   r   r   r   r1   ?   r(   r1   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   ZSkipTestr   r   r   r   r7   Q   r   zDeferredSetUpSkip._cb1c                 C  r-   r   )r6   r&   r   r   r   r   r   T   r   zDeferredSetUpSkip.test_okN)r    r!   r"   r&   r   r7   r   r   r   r   r   r6   I   r.   r6   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   )r0   r:   r   r   r   Ú	_cb_error^   r5   zDeferredTests._cb_errorc                 C  s
   t  |¡‚r   r8   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  r?   )NFr@   r   r   r   r   r   g   rD   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)rC   r   r   r   r   Útest_passInlineCallbacksm   s   €

z&DeferredTests.test_passInlineCallbacksc                 C  s   t  |  d¡¡S )NzI fail)r   r%   Z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   r>   rC   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   ZdeferToThreadr   r   r   r   Útest_threadˆ   r,   zDeferredTests.test_threadc                 C  r	   )NÚtodorK   r   r   r   r   Útest_expectedFailure‹   r   z"DeferredTests.test_expectedFailurezExpected failureN)r    r!   r"   rB   r<   r=   r>   rC   r   rF   r   ZinlineCallbacksrG   rH   rI   rL   rN   rP   rR   rQ   r   r   r   r   r9   X   s"    

r9   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   r4   r   Z	callLaterÚcallbackr   r   r   r   rF   –   ó   zTimeoutTests.test_passé   c                 C  rU   rV   rW   r   r   r   r   Útest_passDefault�   s   zTimeoutTests.test_passDefaultc                 C  r2   r   r3   r   r   r   r   Útest_timeout£   r5   zTimeoutTests.test_timeoutgš™™™™™¹?c                 C  r2   r   r3   r   r   r   r   Útest_timeoutZero¨   r5   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   rE   rW   )r   r   r   r   Úcleanup´   rY   z8TimeoutTests.test_addCleanupPassDefault.<locals>.cleanupN©Z
addCleanup©r   r_   r   r   r   Útest_addCleanupPassDefault­   s   z'TimeoutTests.test_addCleanupPassDefaultc                 C  r^   )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  r2   r   r3   r   r   r   r   r_   Â   r5   z4TimeoutTests.test_addCleanupTimeout.<locals>.cleanupNr`   ra   r   r   r   Útest_addCleanupTimeout»   s   z#TimeoutTests.test_addCleanupTimeoutc                 C  r2   r   r3   r   r   r   r   rR   É   r5   z!TimeoutTests.test_expectedFailurezi will get it right, eventuallyc                 C  r2   r   r3   r   r   r   r   rN   Ï   r5   zTimeoutTests.test_skipc                   s"   ‡ fdd„}t  ¡ }| |¡ |S )Nc                   s   | ˆ j _| S r   )rA   rT   )Úerrr   r   r   rT   Ö   s   z4TimeoutTests.test_errorPropagation.<locals>.timedOut)r   r4   Z
addErrback)r   rT   r   r   r   r   Útest_errorPropagationÕ   s   
z"TimeoutTests.test_errorPropagationc                 C  s(   t  ¡ }dd„ }| |¡ | d¡ |S )Nc                 S  r2   r   r3   )Úrr   r   r   Ú	neverFireã   r5   z;TimeoutTests.test_calledButNeverCallback.<locals>.neverFireé   )r   r4   r   rX   )r   r   rg   r   r   r   Útest_calledButNeverCallbackà   s
   

z(TimeoutTests.test_calledButNeverCallback)r    r!   r"   rT   Ú__annotations__rF   Útimeoutr[   r\   r]   rb   rc   rR   rQ   rN   rM   re   ri   r   r   r   r   rS   “   s,   
 	

rS   c                   @  r#   )ÚTestClassTimeoutAttributegš™™™™™É?c                 C  s   t  ¡ | _d S r   )r   r4   r   r   r   r   r   r   ð   r,   zTestClassTimeoutAttribute.setUpc                 C  s   d| _ | jS r   )ZmethodCalledr   r   r   r   r   Ú
testMethodó   s   z$TestClassTimeoutAttribute.testMethodN)r    r!   r"   rk   r   rm   r   r   r   r   rl   í   r(   rl   N)Ú__doc__Ú
__future__r   Ztwisted.internetr   r   r   Ztwisted.python.failurer   Ztwisted.trialr   ZTestCaser   r$   r*   r/   r1   r6   r9   rS   rl   r   r   r   r   Ú<module>   s   

;Z