
    4hh                         S SK r S SKrS SKrS SKJr  S SKJrJr  \R                  " SS9  Sr
 " S S5      r " S	 S
\R                  5      r\S:X  a  \R                  " 5         gg)    N)threading_helper)patchThreadingMockT)moduleg?c                        \ rS rSrS rS rSrg)	Something   c                     g N selfs    V/opt/python-3.13.8/usr/lib/python3.13/test/test_unittest/testmock/testthreadingmock.pymethod_1Something.method_1           c                     g r   r   r   s    r   method_2Something.method_2   r   r   r   N)__name__
__module____qualname____firstlineno__r   r   __static_attributes__r   r   r   r   r      s    r   r   c                       \ rS rSrS rS rS rSS.S jrS rS	 r	S
 r
S rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rSrg)TestThreadingMock   c                ^    [         R                  " UR                  S5      5        U" U0 UD6  g Ndelay)timesleeppop)r   funcargskwargss       r   _call_after_delay#TestThreadingMock._call_after_delay   s$    

6::g&'dfr   c                 H    [         R                  R                  SS9U l        g )N   )max_workers)
concurrentfuturesThreadPoolExecutor	_executorr   s    r   setUpTestThreadingMock.setUp   s    #++>>1>Mr   c                 8    U R                   R                  5         g r   )r0   shutdownr   s    r   tearDownTestThreadingMock.tearDown   s    !r   r   r!   c               b    U R                   R                  " U R                  U/UQ70 UDSU0D6  g r    )r0   submitr(   )r   r%   r!   r&   r'   s        r   	run_asyncTestThreadingMock.run_async!   s7    ""D	
+/	
39	
AF	
r   c                     [        U0 UD6$ r   )r   )r   r&   r'   s      r   
_make_mockTestThreadingMock._make_mock&   s    d-f--r   c                    U R                  [        S9n[        [         S3U5       nU" 5       nU R	                  UR
                  [        5        U R	                  UR                  5       R                  5       [        5        U R                  [        5         UR                    S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = fNspec
.Something)r=   r   r   r   assertIsInstancer   r   r   assertRaisesAttributeErrortest)r   waitable_mockm	somethings       r   	test_specTestThreadingMock.test_spec)   s    Y7hZz*M:aI!!)"4"4mD!!)"4"4"6"?"?"A=Q"">2 3 ;: 32 ;:s$   A/CB4#C4
C	>C
Cc                     U R                  5       n[        [         S3U5         [        5       nS/UR                  l        U R                  UR	                  5       S5        S S S 5        g ! , (       d  f       g = f)NrC      )r=   r   r   r   r   side_effectassertEqualr   rH   rJ   s      r   test_side_effect"TestThreadingMock.test_side_effect5   s[    )hZz*M:!I./SI*Y//115	 ;::s   =A**
A8c                 6   U R                  5       n[        [         S3U5         [        5       nU R	                  UR
                  [        5        U R	                  UR                  5       R                  5       [        5        S S S 5        g ! , (       d  f       g = f)NrC   )r=   r   r   r   rD   r   r   r   rQ   s      r   test_instance_check%TestThreadingMock.test_instance_check>   sj    )hZz*M:!I!!)"4"4mD!!)"4"4"6"?"?"A=Q	 ;::s   AB


Bc                 d    U R                  5       nU R                  UR                  [        5        g r   )r=   rD   childr   r   rH   s     r   ,test_dynamic_child_mocks_are_threading_mocks>TestThreadingMock.test_dynamic_child_mocks_are_threading_mocksG   s$    )m11=Ar   c                 p   U R                  5       nU R                  UR                  S 5        U R                  SS9nU R                  UR                  S5        U R                  SS9nU R                  UR                  S5        U R                  UR                  R                  S 5        U R                  UR                  R                  S5        U R                  UR                  R                  S5        U R                  UR                  5       R                  5       R                  R                  S5        g )N   timeout   )r=   assertIs_mock_wait_timeoutrP   rX   really__mul__complex)r   mock1mock2mock3s       r   (test_dynamic_child_mocks_inherit_timeout:TestThreadingMock.test_dynamic_child_mocks_inherit_timeoutK   s    !e..5*1115*1115ekk44d;77;77;//199LLaPr   c                     U R                  5       nSUl        SUl        SUl        U" S5        UR	                  5         UR                  S5        g )Nmyevent	mytimeoutworks)r=   _eventeventr_   wait_until_calledwait_until_any_call_withrY   s     r   test_no_name_clash$TestThreadingMock.test_no_name_clashY   sH    )(' +g'')..w7r   c                     U R                  [        S9n[        [         S3U5         [        5       nUR	                  5         UR                  R                  5         S S S 5        g ! , (       d  f       g = fr@   )r=   r   r   r   r   rq   rQ   s      r   
test_patchTestThreadingMock.test_patchb   sT    Y7hZz*M:!I 002 ;::s   5A%%
A3c                     U R                  [        S9nUR                  5         UR                  R                  5         UR                  R	                  5         UR                  R                  5         g )NrA   )r=   r   r   rq   rr   assert_calledrY   s     r    test_wait_already_called_success2TestThreadingMock.test_wait_already_called_successj   sT    Y7 002779,,.r   c                     U R                  [        S9nU R                  UR                  [        S9  UR                  R                  5         g )NrA   r7   )r=   r   r:   r   VERY_SHORT_TIMEOUTrq   rY   s     r   test_wait_until_called_success0TestThreadingMock.test_wait_until_called_successq   s;    Y7}--5GH002r   c                     U R                  [        S9nU R                  [        5         UR                  R                  [        S9  S S S 5        g ! , (       d  f       g = f)NrA   r^   )r=   r   rE   AssertionErrorr   rq   r}   rY   s     r   %test_wait_until_called_method_timeout7TestThreadingMock.test_wait_until_called_method_timeoutv   sD    Y7~.""44=O4P /..s   A
Ac                     U R                  [        [        S9nU R                  [        5         UR
                  R                  5         S S S 5        g ! , (       d  f       g = f)N)rB   r_   )r=   r   r}   rE   r   r   rq   rY   s     r   'test_wait_until_called_instance_timeout9TestThreadingMock.test_wait_until_called_instance_timeout{   sA    Y@RS~.""446 /..s   A
A c                 D   [         R                  " [        S5         [        [        l        U R                  [        S9nU R                  [        5         UR                  R                  5         S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)NDEFAULT_TIMEOUTrA   )r   objectr   r}   r   r=   r   rE   r   r   rq   rY   s     r   %test_wait_until_called_global_timeout7TestThreadingMock.test_wait_until_called_global_timeout   sh    \\-):;,>M) OOO;M"">2&&88: 3 <; 32 <;s#   8BB /B 
B	
B
Bc                 l    U R                  5       nU R                  U[        S9  UR                  5         g )Nr7   )r=   r:   r}   rr   rY   s     r   %test_wait_until_any_call_with_success7TestThreadingMock.test_wait_until_any_call_with_success   s+    )},>?..0r   c                     U R                  [        S9nU R                  [        5         UR	                  5         S S S 5        g ! , (       d  f       g = fNr^   )r=   r}   rE   r   rr   rY   s     r   .test_wait_until_any_call_with_instance_timeout@TestThreadingMock.test_wait_until_any_call_with_instance_timeout   s9    0BC~.224 /..s   A
Ac                 *   [         R                  " [        S5         [        [        l        U R                  5       nU R                  [        5         UR                  5         S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nr   )	r   r   r   r}   r   r=   rE   r   rr   rY   s     r   'test_wait_until_any_call_global_timeout9TestThreadingMock.test_wait_until_any_call_global_timeout   s^    \\-):;,>M) OO-M"">2668 3 <; 32 <;s#   5BA3"B3
B	=B
Bc                    U R                  [        S9nUR                  SSS5        UR                  R                  SSS5        U R	                  [
        5         UR                  R                  SSS5        S S S 5        U R	                  [
        5         UR                  R                  5         S S S 5        g ! , (       d  f       NG= f! , (       d  f       g = f)Nr^   rN   r]   r`   r=   r}   r   rr   rE   r   rY   s     r   #test_wait_until_any_call_positional5TestThreadingMock.test_wait_until_any_call_positional   s    0BCq!Q'771a@~."";;Aq!D /~."";;= /. /...s   B8C	8
C	
Cc                    U R                  [        S9nUR                  SSS9  UR                  R                  SSS9  U R	                  [
        5         UR                  R                  SSS9  S S S 5        U R	                  [
        5         UR                  R                  5         S S S 5        g ! , (       d  f       NG= f! , (       d  f       g = f)Nr^   rN   r]   )abr   rY   s     r   test_wait_until_any_call_kw-TestThreadingMock.test_wait_until_any_call_kw   s    0BCa(77!q7A~."";;a1;E /~."";;= /. /...s   B/C /
B= 
Cc                     U R                  5       n[        U5        UR                  R                  5         UR                  R	                  5         g r   )r=   str__str__rq   ry   rY   s     r   test_magic_methods_success,TestThreadingMock.test_magic_methods_success   s:    )M//1++-r   c                     U R                  [        S9nU R                  [        5         UR	                  5         S S S 5        U R                  [        5         UR                  5         S S S 5        U" 5         UR	                  5         UR                  5         UR                  5         UR                  5         U R                  [        5         UR	                  5         S S S 5        U R                  [        5         UR                  5         S S S 5        U" 5         UR	                  5         UR                  5         UR                  5         g ! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nz= fr   )r=   r}   rE   r   rq   rr   assert_called_once
reset_mock)r   rI   s     r   test_reset_mock_resets_wait-TestThreadingMock.test_reset_mock_resets_wait   s
   OO$6O7~.! /~.&&( /			""$		~.! /~.&&( /			""$	% /... /...s/   EEE.:E?
E
E+.
E<?
F)r0   N)r   r   r   r   r(   r1   r5   r:   r=   rK   rR   rU   rZ   ri   rs   rv   rz   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r      s    N" /0 

.
6RBQ83/3
Q
7
;1
5
9>>.r   r   __main__)r"   unittestconcurrent.futuresr-   test.supportr   unittest.mockr   r   requires_working_threadingr}   r   TestCaser   r   mainr   r   r   <module>r      sa       ) .  + +4 8  o)) od zMMO r   