
    <eZ                         d Z ddlZddlZddlmZ ddlmZ d Z G d dej                  Ze	dk    r ej
                     dS dS )	zTests for asyncio/threads.py    N)
ContextVar)mockc                  .    t          j        d            d S N)asyncioset_event_loop_policy     5/usr/lib/python3.11/test/test_asyncio/test_threads.pytearDownModuler   
   s    !$'''''r
   c                   2    e Zd Zd Zd Zd Zd Zd Zd ZdS )ToThreadTestsc                 z   K   t          j        t          ddg           d {V }|                     |d           d S )N(      *   )r   	to_threadsumassertEqual)selfresults     r   test_to_threadzToThreadTests.test_to_thread   sJ      (r1g66666666$$$$$r
   c                    K   d }|                      t          d          5  t          j        |           d {V  d d d            d S # 1 swxY w Y   d S )Nc                       t          d          )Ntest)RuntimeErrorr	   r
   r   raise_runtimez=ToThreadTests.test_to_thread_exception.<locals>.raise_runtime   s    v&&&r
   r   )assertRaisesRegexr   r   r   )r   r   s     r   test_to_thread_exceptionz&ToThreadTests.test_to_thread_exception   s      	' 	' 	' ##L&99 	3 	3#M222222222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3s   A		AAc                    K   t          j                    }t          j        |           d {V  |                                 d S r   )r   Mockr   r   assert_called_oncer   funcs     r   test_to_thread_oncez!ToThreadTests.test_to_thread_once   sL      y{{%%%%%%%%%!!!!!r
   c                   K   t          j                    }g }t          d          D ]+}t          j        |          }|                    |           ,t          j        |  d {V  |                     |j        d           d S )N
   )	r   r!   ranger   r   appendgatherr   
call_count)r   r$   futs_futs        r   test_to_thread_concurrentz'ToThreadTests.test_to_thread_concurrent    s      y{{r 	 	A#D))CKKnd########"-----r
   c                    K   t          j                    }t          j        |dd           d {V  |                    dd           d S )Nr   T)	something)r   r!   r   r   assert_called_once_withr#   s     r   test_to_thread_args_kwargsz(ToThreadTests.test_to_thread_args_kwargs+   sZ      y{{f==========$$Vt$<<<<<r
   c                    K   t          d          fd}                    d           t          j        |           d {V }|                     |d           d S )Ntest_ctxc                  ,                                      S r   )get)r5   s   r   get_ctxz9ToThreadTests.test_to_thread_contextvars.<locals>.get_ctx6   s    <<>>!r
   parrot)r   setr   r   r   )r   r8   r   r5   s      @r   test_to_thread_contextvarsz(ToThreadTests.test_to_thread_contextvars3   s      j))	" 	" 	" 	" 	" 	X(11111111*****r
   N)	__name__
__module____qualname__r   r   r%   r/   r3   r;   r	   r
   r   r   r      sn        % % %3 3 3" " "	. 	. 	.= = =	+ 	+ 	+ 	+ 	+r
   r   __main__)__doc__r   unittestcontextvarsr   r   r   IsolatedAsyncioTestCaser   r<   mainr	   r
   r   <module>rE      s    " "   " " " " " "      ( ( (.+ .+ .+ .+ .+H4 .+ .+ .+b zHMOOOOO r
   