+
    Bi'                         ^ RI t ^ RIt^ RIt^ RIHt ^ RIHtHtHtH	t	H
t
Ht ^ RIHt ^RIHtHtHtHtHtHtHtHtHt  ! R R]4      tR t]R	8X  d   ]P6                  ! 4        R# R# )
    N)futures)PENDINGRUNNING	CANCELLEDCANCELLED_AND_NOTIFIEDFINISHEDFuture)support)	PENDING_FUTURERUNNING_FUTURECANCELLED_FUTURECANCELLED_AND_NOTIFIED_FUTUREEXCEPTION_FUTURESUCCESSFUL_FUTUREBaseTestCasecreate_futuresetup_modulec                      a  ] tR t^t o R tR tR tR tR tR t	R t
R tR	 tR
 tR tR tR tR tR tR tR tR tR tR tRtV tR# )FutureTestsc                   a R oV3R lp\        4       pVP                  V4       VP                  ^4       V P                  ^S4       R # )Nc                 (   < V P                  4       oR # Nresultcallback_futurecallback_results   &?/usr/lib/python3.14/test/test_concurrent_futures/test_future.pyfn6FutureTests.test_done_callback_with_result.<locals>.fn       -446O    )r	   add_done_callback
set_resultassertEqualselfr   fr   s   &  @r   test_done_callback_with_result*FutureTests.test_done_callback_with_result   s?    	7 H	B	QO,r"   c                   a R oV3R lp\        4       pVP                  V4       VP                  \        R4      4       V P	                  RSP
                  4       R # )Nc                 (   < V P                  4       oR # r   	exceptionr   callback_exceptions   &r   r   9FutureTests.test_done_callback_with_exception.<locals>.fn       !0!:!:!<r"   testr3   )r	   r#   set_exception	Exceptionr%   argsr'   r   r(   r0   s   &  @r   !test_done_callback_with_exception-FutureTests.test_done_callback_with_exception   sM    !	= H	B		&)*$6$;$;<r"   c                   a R oV3R lp\        4       pVP                  V4       V P                  VP                  4       4       V P                  S4       R # )Nc                 (   < V P                  4       oR # r   	cancelledr   was_cancelleds   &r   r   6FutureTests.test_done_callback_with_cancel.<locals>.fn)       +557Mr"   )r	   r#   
assertTruecancelr'   r   r(   r@   s   &  @r   test_done_callback_with_cancel*FutureTests.test_done_callback_with_cancel'   sB    	8 H	B
#&r"   c                  aa \         P                  ! 4       ;_uu_ 4       pR oR oV3R lpV3R lp\        4       pVP                  V4       VP                  V4       VP	                  ^4       V P                  S4       V P                  S4       V P                  RVP                  4       4       RRR4       R#   + '       g   i     R# ; i)Fc                    < R o\        R4      h)Tdoh!r6   )r   raising_was_calleds   &r   
raising_fn9FutureTests.test_done_callback_raises.<locals>.raising_fn7   s    %)"''r"   c                    < R oR# )TN )r   fn_was_calleds   &r   r   1FutureTests.test_done_callback_raises.<locals>.fn<   s     $r"   zException: doh!N)r
   captured_stderrr	   r#   r$   rC   assertIngetvalue)r'   stderrrM   r   r(   rQ   rL   s   &    @@r   test_done_callback_raises%FutureTests.test_done_callback_raises2   s    $$&&&!&!M(
% A
+#LLOOO./OOM*MM+V__->?' '&&&s   BB::C	c                   a R oV3R lp\        4       pVP                  ^4       VP                  V4       V P                  ^S4       R # )Nc                 (   < V P                  4       oR # r   r   r   s   &r   r   =FutureTests.test_done_callback_already_successful.<locals>.fnJ   r!   r"   )r	   r$   r#   r%   r&   s   &  @r   %test_done_callback_already_successful1FutureTests.test_done_callback_already_successfulH   s?    	7 H	Q	BO,r"   c                   a R oV3R lp\        4       pVP                  \        R4      4       VP                  V4       V P	                  RSP
                  4       R # )Nc                 (   < V P                  4       oR # r   r-   r/   s   &r   r   9FutureTests.test_done_callback_already_failed.<locals>.fnU   r2   r"   r3   r4   )r	   r5   r6   r#   r%   r7   r8   s   &  @r   !test_done_callback_already_failed-FutureTests.test_done_callback_already_failedS   sM    !	= H		&)*	B$6$;$;<r"   c                   a R oV3R lp\        4       pV P                  VP                  4       4       VP                  V4       V P                  S4       R # )Nc                 (   < V P                  4       oR # r   r=   r?   s   &r   r   <FutureTests.test_done_callback_already_cancelled.<locals>.fn`   rB   r"   )r	   rC   rD   r#   rE   s   &  @r   $test_done_callback_already_cancelled0FutureTests.test_done_callback_already_cancelled^   sB    	8 H
#	B&r"   c                X   \         P                  ! 4       ;_uu_ 4       pR  p\        4       pVP                  ^4       VP	                  V4       V P                  RVP                  4       4       V P                  RVP                  4       4       RRR4       R#   + '       g   i     R# ; i)c                     \        R 4      h)rJ   rK   )r   s   &r   rM   KFutureTests.test_done_callback_raises_already_succeeded.<locals>.raising_fnk   s    ''r"   zexception calling callback forrJ   N)r
   rS   r	   r$   r#   rT   rU   )r'   rV   rM   r(   s   &   r   +test_done_callback_raises_already_succeeded7FutureTests.test_done_callback_raises_already_succeededi   sv    $$&&&( A LLO
+MM:FOO<MNMM&&//"34 '&&&s   A0BB)	c                z   V P                  \        \        4      R 4       V P                  \        \        4      R4       V P                  \        \        4      R4       V P                  \        \
        4      R4       V P                  \        \        4      R4       V P                  \        \        4      R4       R# )z%<Future at 0x[0-9a-f]+ state=pending>z%<Future at 0x[0-9a-f]+ state=running>z'<Future at 0x[0-9a-f]+ state=cancelled>z5<Future at 0x[0-9a-f]+ state=finished raised OSError>z3<Future at 0x[0-9a-f]+ state=finished returned int>N)assertRegexreprr   r   r   r   r   r   r'   s   &r   	test_reprFutureTests.test_repry   s    n-@	Bn-@	B./B	D;<B	D%&G	I 	&'E	Gr"   c                   \        \        R 7      p\        \        R 7      p\        \        R 7      p\        \        R 7      p\        \
        \        4       R7      p\        \
        ^R7      pV P                  VP                  4       4       V P                  VP                  \        4       V P                  VP                  4       4       V P                  VP                  \        4       V P                  VP                  4       4       V P                  VP                  \        4       V P                  VP                  4       4       V P                  VP                  \        4       V P                  VP                  4       4       V P                  VP                  \
        4       V P                  VP                  4       4       V P                  VP                  \
        4       R# )state)ru   r.   )ru   r   N)r   r   r   r   r   r   OSErrorrC   rD   r%   _stateassertFalse)r'   f1f2f3f4f5f6s   &      r   test_cancelFutureTests.test_cancel   s0   ))+!78WY?!4		$I.%G,		$I.		$$:;%H-%H-r"   c                   V P                  \        P                  ! 4       4       V P                  \        P                  ! 4       4       V P	                  \
        P                  ! 4       4       V P	                  \        P                  ! 4       4       V P                  \        P                  ! 4       4       V P                  \        P                  ! 4       4       R # r   )	rx   r   r>   r   rC   r   r   r   r   rp   s   &r   test_cancelledFutureTests.test_cancelled   s    11341134(22455??AB)3356*4467r"   c                   V P                  \        P                  ! 4       4       V P                  \        P                  ! 4       4       V P	                  \
        P                  ! 4       4       V P	                  \        P                  ! 4       4       V P	                  \        P                  ! 4       4       V P	                  \        P                  ! 4       4       R # r   )	rx   r   doner   rC   r   r   r   r   rp   s   &r   	test_doneFutureTests.test_done   s    ,,./,,./(--/05::<=(--/0)..01r"   c                   V P                  \        P                  ! 4       4       V P                  \        P                  ! 4       4       V P                  \
        P                  ! 4       4       V P                  \        P                  ! 4       4       V P                  \        P                  ! 4       4       V P                  \        P                  ! 4       4       R # r   )	rx   r   runningrC   r   r   r   r   r   rp   s   &r   test_runningFutureTests.test_running   s    //12..01)11346>>@A)1134*2245r"   c                    V P                  \        P                  \        P                  ^ R7       V P                  \        P                  \
        P                  ^ R7       V P                  \        P                  \        P                  ^ R7       V P                  \        P                  \        P                  ^ R7       V P                  \        \        P                  ^ R7       V P                  \        P                  ! ^ R7      ^*4       R# r   timeoutN)assertRaisesr   TimeoutErrorr   r   r   CancelledErrorr   r   rv   r   r%   r   rp   s   &r   test_result_with_timeout$FutureTests.test_result_with_timeout   s    '..(// 	 	<'..(// 	 	<'00*111 	 	>'007>> 	 	K'#3#:#:AF*11!<bAr"   c                   a V3R  lp\        \        R7      o\        P                  ! VR7      pVP	                  4        V P                  SP                  ^R7      ^*4       VP                  4        R# )c                  V   < \         P                  ! ^4       S P                  ^*4       R#    N)timesleepr$   ry   s   r   notification:FutureTests.test_result_with_success.<locals>.notification   s    JJqMMM"r"   rt   targetr   N)r   r   	threadingThreadstartr%   r   joinr'   r   try   s   &  @r   test_result_with_success$FutureTests.test_result_with_success   sQ    	
 )L1		1-r2	r"   c                  a V3R  lp\        \        R7      o\        P                  ! VR7      pVP	                  4        V P                  \        P                  SP                  \        P                  R7       VP                  4        R# )c                  T   < \         P                  ! ^4       S P                  4        R# r   )r   r   rD   r   s   r   r   9FutureTests.test_result_with_cancel.<locals>.notification   s    JJqMIIKr"   rt   r   r   N)r   r   r   r   r   r   r   r   r   r
   SHORT_TIMEOUTr   r   s   &  @r   test_result_with_cancel#FutureTests.test_result_with_cancel   sa    	
 )L1		'00))W-B-B 	 	D	r"   c                <   V P                  \        P                  \        P                  ^ R7       V P                  \        P                  \
        P                  ^ R7       V P                  \        P                  \        P                  ^ R7       V P                  \        P                  \        P                  ^ R7       V P                  \        \        P                  ! ^ R7      \        4      4       V P                  \        P                  ! ^ R7      R4       R# r   )r   r   r   r   r.   r   r   r   r   rC   
isinstancer   rv   r%   r   rp   s   &r   test_exception_with_timeout'FutureTests.test_exception_with_timeout   s    '..(22A 	 	?'..(22A 	 	?'00*44a 	 	A'007AA1 	 	N
#3#=#=a#H#*, 	-*44Q?Fr"   c                  a V3R  lp\        \        R7      o\        P                  ! VR7      pVP	                  4        V P                  \        SP                  \        P                  R7      \        4      4       VP                  4        R# )c                     < \         P                  ! ^4       S P                  ;_uu_ 4        \        S n        \        4       S n        S P                  P                  4        RRR4       R#   + '       g   i     R# ; ir   )r   r   
_conditionr   rw   rv   
_exception
notify_allr   s   r   r   =FutureTests.test_exception_with_success.<locals>.notification   sC    JJqM$	 '	((* s   5A++A<	rt   r   r   N)r   r   r   r   r   rC   r   r.   r
   r   rv   r   r   s   &  @r   test_exception_with_success'FutureTests.test_exception_with_success   s[    	+ )L1		
2<<8M8M<#NPWXY	r"   c                p   \        \        R 7      pVP                  ^4       V P                  \        P
                  R4      ;_uu_ 4        VP                  ^4       RRR4       V P                  VP                  4       4       V P                  VP                  4       ^4       R#   + '       g   i     LQ; i)rt   z=FINISHED: <Future at 0x[0-9a-f]+ state=finished returned int>N)
r   r   r$   assertRaisesRegexr   InvalidStateErrorrC   r   r%   r   )r'   r(   s   & r   test_multiple_set_result$FutureTests.test_multiple_set_result  s    (	Q##))/
 

 LLO
 	!Q'
 
s   
B%%B5	c                V   \        \        R 7      p\        4       pVP                  V4       V P	                  \
        P                  R4      ;_uu_ 4        VP                  \        4       4       RRR4       V P                  VP                  4       V4       R#   + '       g   i     L2; i)rt   zBFINISHED: <Future at 0x[0-9a-f]+ state=finished raised ValueError>N)
r   r   
ValueErrorr5   r   r   r   r6   r%   r.   )r'   r(   es   &  r   test_multiple_set_exception'FutureTests.test_multiple_set_exception  sx    (L	##))4
 

 OOIK(
 	*
 
s   BB(	rP   N)__name__
__module____qualname____firstlineno__r)   r9   rF   rW   r\   ra   rf   rk   rq   r   r   r   r   r   r   r   r   r   r   r   __static_attributes____classdictcell__)__classdict__s   @r   r   r      sr     	-	=	'@,	-	=	'5 G .4826
BG (+ +r"   r   c                      \        4        R # r   )r   rP   r"   r   setUpModuler     s    Nr"   __main__)r   r   unittest
concurrentr   concurrent.futures._baser   r   r   r   r   r	   r3   r
   utilr   r   r   r   r   r   r   r   r   r   r   r   mainrP   r"   r   <module>r      s]       K K / / /K+, K+\ zMMO r"   