o
    ¯bv"  ã                   @   s”   d Z ddlZddlmZ ddlmZmZ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ƒZG dd„ deƒZ[dS )z0
Tests for returning Deferreds from a TestCase.
é    N)Údefer)ÚreporterÚunittestÚutil)Údetestsc                   @   s<   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ ZdS )Ú
SetUpTestsc                 C   ó"   t  ¡ }t ¡ }| |¡}||fS ©N©ÚpyunitÚ
TestLoaderr   Ú
TestResultÚloadTestsFromTestCase©ÚselfÚklassÚloaderÚrÚs© r   úB/usr/lib/python3/dist-packages/twisted/trial/test/test_deferred.pyÚ
_loadSuite   ó   
zSetUpTests._loadSuitec                 C   s8   |   tj¡\}}||ƒ |  | ¡ ¡ |  |jd¡ d S )Né   )r   r   ÚDeferredSetUpOKÚ
assertTrueÚwasSuccessfulÚassertEqualÚtestsRun©r   ÚresultÚsuiter   r   r   Útest_success   s   zSetUpTests.test_successc                 C   óx   |   tjj¡ |  tj¡\}}||ƒ |   | ¡ ¡ |  |jd¡ |  t|j	ƒd¡ |  t|j
ƒd¡ |   tjj¡ d S ©Nr   r   )ÚassertFalser   ÚDeferredSetUpFailÚ
testCalledr   r   r   r   ÚlenÚfailuresÚerrorsr   r   r   r   Ú	test_fail   ó   zSetUpTests.test_failc                 C   r#   r$   )r%   r   ÚDeferredSetUpCallbackFailr'   r   r   r   r   r(   r)   r*   r   r   r   r   Útest_callbackFail'   r,   zSetUpTests.test_callbackFailc                 C   r#   r$   )r%   r   ÚDeferredSetUpErrorr'   r   r   r   r   r(   r)   r*   r   r   r   r   Ú
test_error1   r,   zSetUpTests.test_errorc                 C   sŠ   |   tjj¡ |  tj¡\}}||ƒ |  | ¡ ¡ |  |jd¡ |  t	|j
ƒd¡ |  t	|jƒd¡ |  t	|jƒd¡ |   tjj¡ d S r$   )r%   r   ÚDeferredSetUpSkipr'   r   r   r   r   r   r(   r)   r*   Úskipsr   r   r   r   Ú	test_skip;   s   zSetUpTests.test_skipN)	Ú__name__Ú
__module__Ú__qualname__r   r"   r+   r.   r0   r3   r   r   r   r   r      s    


r   c                   @   s,   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	S )
ÚNeverFireTestsc                 C   s   t j| _dt _d S )Ngš™™™™™¹?)r   ÚDEFAULT_TIMEOUT_DURATIONÚ_oldTimeout©r   r   r   r   ÚsetUpH   s   
zNeverFireTests.setUpc                 C   s   | j t_d S r	   )r9   r   r8   r:   r   r   r   ÚtearDownL   s   zNeverFireTests.tearDownc                 C   r   r	   r
   r   r   r   r   r   O   r   zNeverFireTests._loadSuitec                 C   s”   |   tjj¡ |  tj¡\}}||ƒ |   | ¡ ¡ |  |jd¡ |  t|j	ƒd¡ |  t|j
ƒd¡ |   tjj¡ |  |j
d d  tj¡¡ d S r$   )r%   r   ÚDeferredSetUpNeverFirer'   r   r   r   r   r(   r)   r*   r   Úcheckr   ÚTimeoutErrorr   r   r   r   Ú
test_setUpU   s    zNeverFireTests.test_setUpN)r4   r5   r6   r;   r<   r   r@   r   r   r   r   r7   G   s
    r7   c                   @   s   e Zd Zdd„ Zdd„ ZdS )Ú
TestTesterc                 C   s   t dƒ‚)Nzmust override me)ÚNotImplementedError©r   Únamer   r   r   ÚgetTestb   s   zTestTester.getTestc                 C   s   t  ¡ }|  |¡ |¡ |S r	   )r   r   rE   Úrun)r   rD   r    r   r   r   ÚrunTeste   s   zTestTester.runTestN)r4   r5   r6   rE   rG   r   r   r   r   rA   a   s    rA   c                   @   sl   e Zd Zdd„ Zdd„ Zdd„ Zejddge_d	d
„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ ZdS )ÚDeferredTestsc                 C   ó
   t  |¡S r	   )r   rH   rC   r   r   r   rE   l   ó   
zDeferredTests.getTestc                 C   ó*   |   d¡}|  | ¡ ¡ |  |jd¡ d S ©NÚ	test_passr   ©rG   r   r   r   r   ©r   r    r   r   r   rM   o   ó   
zDeferredTests.test_passc                 C   s8   |   d¡}|  | ¡ ¡ |  |jd¡ |  tjj¡ d S )NÚtest_passGeneratedr   ©rG   r   r   r   r   r   rH   ÚtouchedrO   r   r   r   rQ   t   ó   
z DeferredTests.test_passGeneratedz6twisted.internet.defer.deferredGenerator is deprecated)Úmessagec                 C   s8   |   d¡}|  | ¡ ¡ |  |jd¡ |  tjj¡ dS )zQ
        The body of a L{defer.inlineCallbacks} decorated test gets run.
        Útest_passInlineCallbacksr   NrR   rO   r   r   r   rV   ~   s   
z&DeferredTests.test_passInlineCallbacksc                 C   ó<   |   d¡}|  | ¡ ¡ |  |jd¡ |  t|jƒd¡ d S )Nr+   r   ©rG   r%   r   r   r   r(   r)   rO   r   r   r   r+   ‡   ó   
zDeferredTests.test_failc                 C   rW   )NÚtest_failureInCallbackr   rX   rO   r   r   r   rZ      rY   z$DeferredTests.test_failureInCallbackc                 C   rW   )NÚtest_errorInCallbackr   )rG   r%   r   r   r   r(   r*   rO   r   r   r   r[   “   rY   z"DeferredTests.test_errorInCallbackc                 C   sJ   |   d¡}|  | ¡ ¡ |  |jd¡ |  t|jƒd¡ |  tj	j
¡ d S ©Nr3   r   )rG   r   r   r   r   r(   r2   r%   r   rH   rS   rO   r   r   r   r3   ™   s
   
zDeferredTests.test_skipc                 C   s`   |   d¡}|  | ¡ ¡ |  |jd¡ |  t|jƒd¡ |  t|jƒd¡ |  t|jƒd¡ d S ©NÚtest_expectedFailurer   r   )	rG   r   r   r   r   r(   r*   r)   ÚexpectedFailuresrO   r   r   r   Ú	test_todo    s   
zDeferredTests.test_todoc                 C   s.   |   d¡}|  |jd¡ |  | ¡ |j¡ d S )NÚtest_threadr   )rG   r   r   r   r   r*   rO   r   r   r   ra   ¨   s   
zDeferredTests.test_threadN)r4   r5   r6   rE   rM   rQ   r   ÚsuppressÚsupressrV   r+   rZ   r[   r3   r`   ra   r   r   r   r   rH   k   s    
ÿ	rH   c                   @   sd   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ ZdS )ÚTimeoutTestsc                 C   rI   r	   )r   rd   rC   r   r   r   rE   ¯   rJ   zTimeoutTests.getTestc                 C   s   |   | tj¡tj¡ d S r	   )r   r>   r   r?   )r   Úerrorr   r   r   Ú_wasTimeout²   s   zTimeoutTests._wasTimeoutc                 C   rK   rL   rN   rO   r   r   r   rM   µ   rP   zTimeoutTests.test_passc                 C   rK   )NÚtest_passDefaultr   rN   rO   r   r   r   rg   º   rP   zTimeoutTests.test_passDefaultc                 C   óP   |   d¡}|  | ¡ ¡ |  |jd¡ |  t|jƒd¡ |  |jd d ¡ d S )NÚtest_timeoutr   r   ©rG   r%   r   r   r   r(   r*   rf   rO   r   r   r   ri   ¿   ó
   
zTimeoutTests.test_timeoutc                 C   rh   )NÚtest_timeoutZeror   r   rj   rO   r   r   r   rl   Æ   rk   zTimeoutTests.test_timeoutZeroc                 C   rW   r\   )rG   r   r   r   r   r(   r2   rO   r   r   r   r3   Í   rY   zTimeoutTests.test_skipc                 C   rh   r]   )rG   r   r   r   r   r(   r_   rf   rO   r   r   r   r`   Ó   rk   zTimeoutTests.test_todoc                 C   s8   |   d¡}|  | ¡ ¡ |  |jd¡ |  tjj¡ d S )NÚtest_errorPropagationr   )	rG   r%   r   r   r   rf   r   rd   ÚtimedOutrO   r   r   r   rm   Ú   rT   z"TimeoutTests.test_errorPropagationc                 C   sP   t  ¡ }| tj¡}t ¡ }| |¡ |  t	|j
ƒd¡ |  |j
d d ¡ d S r$   )r   r   r   r   ÚTestClassTimeoutAttributer   r   rF   r   r(   r*   rf   )r   r   r!   r    r   r   r   Útest_classTimeoutà   s   
zTimeoutTests.test_classTimeoutc                 C   sZ   ddl m} | d|j¡}|  d¡}| ¡ r| ¡  |  | ¡ ¡ |  	|j
d d ¡ d S )Nr   )Úreactoré   Útest_calledButNeverCallbackr   )Útwisted.internetrq   Ú	callLaterÚcrashrG   ÚactiveÚcancelr%   r   rf   r*   )r   rq   Úcallr    r   r   r   Ú&test_callbackReturnsNonCallingDeferredè   s   
z3TimeoutTests.test_callbackReturnsNonCallingDeferredN)r4   r5   r6   rE   rf   rM   rg   ri   rl   r3   r`   rm   rp   rz   r   r   r   r   rd   ®   s    rd   )Ú__doc__r   r   rt   r   Útwisted.trialr   r   Útwisted.trial.testr   ÚTestCaser   r7   rA   rH   rd   r   r   r   r   Ú<module>   s   7
CH