HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //home/arjun/projects/env/lib64/python3.10/site-packages/mock/__pycache__/backports.cpython-310.pyc
o

we�
�@s�ddlZejdd�dkrAddlZddlZddlmZddlmZmZm	Z	ddl
mZdd�Zd	d
�Z
dd�ZGd
d�de�ZdSddlmZddl
mZdS)�N�)��)�
_is_coroutine)�ismethod�
isfunction�CO_COROUTINE)�TestCasecCs"t|tj�r|j}t|tj�s|S�N)�
isinstance�	functools�partial�func)r�r�G/home/arjun/projects/env/lib/python3.10/site-packages/mock/backports.py�_unwrap_partials�rcCs:t|�r|j}t|�st|�}t|�sdSt|jj|@�S)z�Return true if ``f`` is a function (or a method or functools.partial
        wrapper wrapping a function) whose code object has the given ``flag``
        set in its flags.F)r�__func__rr�bool�__code__�co_flags)�f�flagrrr�_has_code_flags�rcCst|t�pt|dd�tuS)z}Return true if the object is a coroutine function.

        Coroutine functions are defined with "async def" syntax.
        rN)rr�getattrr)�objrrr�iscoroutinefunctions
�rcsDeZdZd
�fdd�	Zdd�Zdd�Zdd	�Zd�fdd�	Z�ZS)�IsolatedAsyncioTestCase�runTestcst��|�d|_d|_dSr
)�super�__init__�_asyncioTestLoop�_asyncioCallsQueue)�self�
methodName��	__class__rrr(s
z IsolatedAsyncioTestCase.__init__c�s@�t��|_}|�d�	|��IdH}|��|dusJ�qr
)�asyncio�Queuer!�
set_result�get�	task_done)r"�fut�queue�queryrrr�_asyncioLoopRunner-s�
�z*IsolatedAsyncioTestCase._asyncioLoopRunnercCsX|jdusJ�t��}t�|�|�d�||_|��}|�|�|��|_|�	|�dS)NT)
r r&�new_event_loop�set_event_loop�	set_debug�
create_future�create_taskr.�_asyncioCallsTask�run_until_complete)r"�loopr+rrr�_setupAsyncioLoop5s

z)IsolatedAsyncioTestCase._setupAsyncioLoopc	Csr|jdusJ�|j}d|_|j�d�|�|j���z|�|���Wt�d�|��dSt�d�|��wr
)	r r!�
put_nowaitr5�join�shutdown_asyncgensr&r0�close)r"r6rrr�_tearDownAsyncioLoop?s

�
z,IsolatedAsyncioTestCase._tearDownAsyncioLoopNcs*|��zt��|�W|��S|��wr
)r7r�runr<)r"�resultr$rrr=MszIsolatedAsyncioTestCase.run)rr
)	�__name__�
__module__�__qualname__rr.r7r<r=�
__classcell__rrr$rr&s
r)r)r)�sys�version_infor&r�asyncio.coroutinesr�inspectrrr�unittestr	rrrrrrrr�<module>s1