File: //opt/alt/python38/lib64/python3.8/site-packages/aiohttp/__pycache__/pytest_plugin.cpython-38.pyc
U
'�7`+ � @ s� d dl Z d dlZd dlZd dlmZ d dlZd dlmZmZ d dl m
Z
ddlmZm
Z
mZmZmZmZmZmZ zd dlZW n ek
r� dZY nX zd dlZW n ek
r� dZY nX dd� Zd d
� Zejdd� �Zejd
d� �Zejdd� �Zejd.dd��Zdd� Z dd� Z!dd� Z"ejdd� �Z#ejdd� �Z$ejdd� �Zejd d!� �Z%ejd"d#� �Z&ejd$d%� �Z'ejd&d'� �Z(ejd(d)� �Z)ejd*d+� �Z*ejd,d-� �Z+dS )/� N)�Callable)�PY_37�isasyncgenfunction)�Application� )�BaseTestServer�
RawTestServer�
TestClient�
TestServer�loop_context�setup_test_loop�teardown_test_loop�unused_portc C s: | j ddddd� | j dddd d� | j d
dddd� d S )N�--aiohttp-fast�
store_trueFz*run tests faster by disabling extra checks)�action�default�helpz--aiohttp-loop�store�pyloopz:run tests with specific loop: pyloop, uvloop, tokio or all�--aiohttp-enable-loop-debugzenable event loop debug mode)Z addoption)�parser� r �H/opt/alt/python38/lib64/python3.8/site-packages/aiohttp/pytest_plugin.py�pytest_addoption! s$ ���r c sb | j � t� �rd�nt�� �r$d�ndS d�d| jkrH| jd7 _d�� ��fdd�}|| _ dS )zS
Allow fixtures to be coroutines. Run coroutine fixtures in an event loop.
TFN�request�r c sv |d }�r|d= d|j kr$td��|�d�� �rb�| |��� �fdd�}|�|� � ���� �S � ��| |��S d S )Nr �loopz^Asynchronous fixtures must depend on the 'loop' fixture or be used in tests depending from it.c s* z� � ��� �W S tk
r$ Y nX d S �N)�run_until_complete� __anext__�StopAsyncIterationr ��_loop�genr r � finalizer` s z8pytest_fixture_setup.<locals>.wrapper.<locals>.finalizer)�fixturenames� ExceptionZgetfixturevalueZaddfinalizerr r )�args�kwargsr r% ��funcZis_async_genZ
strip_requestr"