Spaces:
Building
Building
from __future__ import annotations | |
import types | |
from abc import ABCMeta, abstractmethod | |
from collections.abc import AsyncGenerator, Callable, Coroutine, Iterable | |
from typing import Any, TypeVar | |
_T = TypeVar("_T") | |
class TestRunner(metaclass=ABCMeta): | |
""" | |
Encapsulates a running event loop. Every call made through this object will use the | |
same event loop. | |
""" | |
def __enter__(self) -> TestRunner: | |
return self | |
def __exit__( | |
self, | |
exc_type: type[BaseException] | None, | |
exc_val: BaseException | None, | |
exc_tb: types.TracebackType | None, | |
) -> bool | None: | |
... | |
def run_asyncgen_fixture( | |
self, | |
fixture_func: Callable[..., AsyncGenerator[_T, Any]], | |
kwargs: dict[str, Any], | |
) -> Iterable[_T]: | |
""" | |
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 | |
""" | |
def run_fixture( | |
self, | |
fixture_func: Callable[..., Coroutine[Any, Any, _T]], | |
kwargs: dict[str, Any], | |
) -> _T: | |
""" | |
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 | |
""" | |
def run_test( | |
self, test_func: Callable[..., Coroutine[Any, Any, Any]], kwargs: dict[str, Any] | |
) -> None: | |
""" | |
Run an async test function. | |
:param test_func: the test function | |
:param kwargs: keyword arguments to call the test function with | |
""" | |