U
    g                     @  sj   d dl mZ d dlZd dlmZmZ d dlmZmZm	Z	m
Z
 d dlmZmZ edZG dd ded	ZdS )
    )annotationsN)ABCMetaabstractmethod)AsyncGeneratorCallable	CoroutineIterable)AnyTypeVar_Tc                   @  sx   e Zd ZdZd dddZeddddd	d
dZeddddddZeddddddZeddddddZ	dS )
TestRunnerzr
    Encapsulates a running event loop. Every call made through this object will use the
    same event loop.
    )returnc                 C  s   | S N )selfr   r   6/tmp/pip-unpacked-wheel-3u0cc9gf/anyio/abc/_testing.py	__enter__   s    zTestRunner.__enter__ztype[BaseException] | NonezBaseException | Noneztypes.TracebackType | Nonezbool | None)exc_typeexc_valexc_tbr   c                 C  s   d S r   r   )r   r   r   r   r   r   r   __exit__   s    zTestRunner.__exit__z&Callable[..., AsyncGenerator[_T, Any]]zdict[str, Any]zIterable[_T])fixture_funckwargsr   c                 C  s   dS )a   
        Run an async generator fixture.

        :param fixture_func: the fixture function
        :param kwargs: keyword arguments to call the fixture function with
        :return: an iterator yielding the value yielded from the async generator
        Nr   r   r   r   r   r   r   run_asyncgen_fixture   s    zTestRunner.run_asyncgen_fixturez&Callable[..., Coroutine[Any, Any, _T]]r   c                 C  s   dS )z
        Run an async fixture.

        :param fixture_func: the fixture function
        :param kwargs: keyword arguments to call the fixture function with
        :return: the return value of the fixture function
        Nr   r   r   r   r   run_fixture*   s    zTestRunner.run_fixturez'Callable[..., Coroutine[Any, Any, Any]]None)	test_funcr   r   c                 C  s   dS )z
        Run an async test function.

        :param test_func: the test function
        :param kwargs: keyword arguments to call the test function with
        Nr   )r   r   r   r   r   r   run_test8   s    zTestRunner.run_testN)
__name__
__module____qualname____doc__r   r   r   r   r   r   r   r   r   r   r      s   r   )	metaclass)
__future__r   typesabcr   r   collections.abcr   r   r   r   typingr	   r
   r   r   r   r   r   r   <module>   s   