
    h                       S r SSKJr  SSKJrJrJr  SSKJr  SSK	J
r
   " S S\
R                  5      r " S S	\
R                  5      r " S
 S\
R                  5      r " S S\
R                  5      r " S S\
R                  5      r " S S\
R                  5      r " S S\
R                  5      r " S S\
R                  5      r " S S\
R                  5      rg)zD
Tests for Deferred handling by L{twisted.trial.unittest.TestCase}.
    )annotations)deferreactorthreads)Failure)unittestc                  &    \ rS rSrS rS rS rSrg)DeferredSetUpOK   c                h    [         R                  " S5      nUR                  U R                  5        U$ Nvaluer   succeedaddCallback_cb_setUpCalledselfds     a/root/1688_scrapy/alibaba-scraper/venv/lib/python3.13/site-packages/twisted/trial/test/detests.pysetUpDeferredSetUpOK.setUp   '    MM'"	d**+    c                    SU l         g NT_setUpCalledr   ignoreds     r   r   DeferredSetUpOK._cb_setUpCalled   s
     r   c                :    U R                  U R                  5        g N)
assertTruer   r   s    r   test_okDeferredSetUpOK.test_ok   s    ))*r   r   N)__name__
__module____qualname____firstlineno__r   r   r&   __static_attributes__ r   r   r
   r
      s    
!+r   r
   c                  $    \ rS rSrSrS rS rSrg)DeferredSetUpFail   Fc                V    [         R                  " [        R                  " S5      5      $ )Nzi fail)r   failr   FailTestr%   s    r   r   DeferredSetUpFail.setUp   s    zz(++H566r   c                <    S[         l        U R                  S5        g )NTzI should not get called)r/   
testCalledr2   r%   s    r   r&   DeferredSetUpFail.test_ok!   s    '+$		+,r   r-   Nr(   r)   r*   r+   r6   r   r&   r,   r-   r   r   r/   r/      s    J7-r   r/   c                  *    \ rS rSrSrS rS rS rSrg)DeferredSetUpCallbackFail&   Fc                h    [         R                  " S5      nUR                  U R                  5        U$ r   r   r   s     r   r   DeferredSetUpCallbackFail.setUp)   r   r   c                &    U R                  S5        g )Nzdeliberate failurer2   r   s     r   r   )DeferredSetUpCallbackFail._cb_setUpCalled.   s    		&'r   c                    S[         l        g r   )r:   r6   r%   s    r   r&   !DeferredSetUpCallbackFail.test_ok1   s    /3!,r   r-   N)	r(   r)   r*   r+   r6   r   r   r&   r,   r-   r   r   r:   r:   &   s    J
(4r   r:   c                  $    \ rS rSrSrS rS rSrg)DeferredSetUpError5   Fc                @    [         R                  " [        S5      5      $ )Nzdeliberate error)r   r2   RuntimeErrorr%   s    r   r   DeferredSetUpError.setUp8   s    zz,'9:;;r   c                    S[         l        g r   )rD   r6   r%   s    r   r&   DeferredSetUpError.test_ok;   s    (,%r   r-   Nr8   r-   r   r   rD   rD   5   s    J<-r   rD   c                  $    \ rS rSrSrS rS rSrg)DeferredSetUpNeverFire?   Fc                ,    [         R                  " 5       $ r#   r   Deferredr%   s    r   r   DeferredSetUpNeverFire.setUpB       ~~r   c                    S[         l        g r   )rL   r6   r%   s    r   r&   DeferredSetUpNeverFire.test_okE   s    ,0)r   r-   Nr8   r-   r   r   rL   rL   ?   s    J 1r   rL   c                  *    \ rS rSrSrS rS rS rSrg)DeferredSetUpSkipI   Fc                h    [         R                  " S5      nUR                  U R                  5        U$ r   )r   r   r   _cb1r   s     r   r   DeferredSetUpSkip.setUpL   s%    MM'"	dii r   c                .    [         R                  " S5      e)Nzskip mer   SkipTestr   s     r   rY   DeferredSetUpSkip._cb1Q   s    	**r   c                    S[         l        g r   )rV   r6   r%   s    r   r&   DeferredSetUpSkip.test_okT   s    '+$r   r-   N)	r(   r)   r*   r+   r6   r   rY   r&   r,   r-   r   r   rV   rV   I   s    J
+,r   rV   c                      \ rS rSrSrS rS rS rS rS r	S r
\R                  S	 5       rS
 rS rS rS rS rS rS\l        Srg)DeferredTestsX   Fc                &    U R                  U5        g r#   r?   r   reasons     r   _cb_failDeferredTests._cb_fail[   s    		&r   c                    [        U5      er#   )rG   re   s     r   	_cb_errorDeferredTests._cb_error^   s    6""r   c                .    [         R                  " U5      er#   r\   re   s     r   _cb_skipDeferredTests._cb_skipa   s    ''r   c                &    SU R                   l        g r   	__class__touchedr   s     r   _touchClassDeferredTests._touchClassd   s    !%r   c                &    SU R                   l        g )NFrp   r%   s    r   r   DeferredTests.setUpg   s    !&r   c                .    [         R                  " S5      $ )Nsuccess)r   r   r%   s    r   	test_passDeferredTests.test_passj   s    }}Y''r   c              #  6   #    U R                  S5        Sv   g7f)z<
Test case that is decorated with L{defer.inlineCallbacks}.
N)rs   r%   s    r   test_passInlineCallbacks&DeferredTests.test_passInlineCallbacksm   s     
 	
s   c                L    [         R                  " U R                  S5      5      $ )NzI fail)r   r2   failureExceptionr%   s    r   	test_failDeferredTests.test_failu   s    zz$//9::r   c                h    [         R                  " S5      nUR                  U R                  5        U$ )Nr2   )r   r   r   rg   r   s     r   test_failureInCallback$DeferredTests.test_failureInCallbackx   s%    MM&!	dmm$r   c                h    [         R                  " S5      nUR                  U R                  5        U$ )Nerrorr   r   r   rj   r   s     r   test_errorInCallback"DeferredTests.test_errorInCallback}   s%    MM'"	dnn%r   c                    [         R                  " S5      nUR                  U R                  5        UR                  U R                  5        U$ )Nskip)r   r   r   rm   rs   r   s     r   	test_skipDeferredTests.test_skip   s7    MM&!	dmm$	d&&'r   c                0    [         R                  " S 5      $ )Nc                     g r#   r-   r-   r   r   <lambda>+DeferredTests.test_thread.<locals>.<lambda>   s    Tr   )r   deferToThreadr%   s    r   test_threadDeferredTests.test_thread   s    $$\22r   c                h    [         R                  " S5      nUR                  U R                  5        U$ )Ntodor   r   s     r   test_expectedFailure"DeferredTests.test_expectedFailure   s%    MM&!	dnn%r   zExpected failurer-   N)r(   r)   r*   r+   rr   rg   rj   rm   rs   r   ry   r   inlineCallbacksr|   r   r   r   r   r   r   r   r,   r-   r   r   rb   rb   X   sh    G#(&'(  ;

3
 !3r   rb   c                      \ rS rSr% SrS\S'   S rS\l        S rS r	S	\	l        S
 r
S\
l        S rS rS	\l        S rS	\l        S\l        S rS	\l        S\l        S rS	\l        S rS	\l        Srg)TimeoutTests   NzFailure | NonetimedOutc                t    [         R                  " 5       n[        R                  " SUR                  S5        U$ Nr   zhoorj!r   rP   r   	callLatercallbackr   s     r   ry   TimeoutTests.test_pass   s)    NN!QZZ2r      c                t    [         R                  " 5       n[        R                  " SUR                  S5        U$ r   r   r   s     r   test_passDefaultTimeoutTests.test_passDefault   s)    NN!QZZ2r   c                ,    [         R                  " 5       $ r#   rO   r%   s    r   test_timeoutTimeoutTests.test_timeout   rR   r   g?c                ,    [         R                  " 5       $ r#   rO   r%   s    r   test_timeoutZeroTimeoutTests.test_timeoutZero   rR   r   r   c                ,    S nU R                  U5        g)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                 t    [         R                  " 5       n [        R                  " SU R                  S5        U $ )Nr   rx   r   )r   s    r   cleanup8TimeoutTests.test_addCleanupPassDefault.<locals>.cleanup   s)     AaY7Hr   N
addCleanupr   r   s     r   test_addCleanupPassDefault'TimeoutTests.test_addCleanupPassDefault   s    	
 	 r   c                ,    S nU R                  U5        g)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                 ,    [         R                  " 5       $ r#   rO   r-   r   r   r   4TimeoutTests.test_addCleanupTimeout.<locals>.cleanup       >>##r   Nr   r   s     r   test_addCleanupTimeout#TimeoutTests.test_addCleanupTimeout   s    	$ 	 r   c                ,    [         R                  " 5       $ r#   rO   r%   s    r   r   !TimeoutTests.test_expectedFailure   rR   r   zi will get it right, eventuallyc                ,    [         R                  " 5       $ r#   rO   r%   s    r   r   TimeoutTests.test_skip   rR   r   c                `   ^  U 4S jn[         R                  " 5       nUR                  U5        U$ )Nc                *   > U TR                   l        U $ r#   )rq   r   )errr   s    r   r   4TimeoutTests.test_errorPropagation.<locals>.timedOut   s    &)DNN#Jr   )r   rP   
addErrback)r   r   r   s   `  r   test_errorPropagation"TimeoutTests.test_errorPropagation   s'    	 NN	Xr   c                z    [         R                  " 5       nS nUR                  U5        UR                  S5        U$ )Nc                ,    [         R                  " 5       $ r#   rO   )rs    r   	neverFire;TimeoutTests.test_calledButNeverCallback.<locals>.neverFire   r   r      )r   rP   r   r   )r   r   r   s      r   test_calledButNeverCallback(TimeoutTests.test_calledButNeverCallback   s1    NN	$ 	
i 	

1r   r-   )r(   r)   r*   r+   r   __annotations__ry   timeoutr   r   r   r   r   r   r   r   r   r   r   r,   r-   r   r   r   r      s    #Hn#
 I  L   !!
! &)"  $'  A  I6IN %(! +.'r   r   c                  $    \ rS rSrSrS rS rSrg)TestClassTimeoutAttribute   g?c                8    [         R                  " 5       U l        g r#   )r   rP   r   r%   s    r   r   TestClassTimeoutAttribute.setUp   s    !r   c                (    SU l         U R                  $ r   )methodCalledr   r%   s    r   
testMethod$TestClassTimeoutAttribute.testMethod   s     vvr   )r   r   N)r(   r)   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.trialr   TestCaser
   r/   r:   rD   rL   rV   rb   r   r   r-   r   r   <module>r      s    # 4 4 * "
+h'' 
+-)) -4 1 1 4-** -1X.. 1,)) ,83H%% 83vW.8$$ W.t 1 1 r   