diff --git a/docs/source/quickstart/install.rst b/docs/source/quickstart/install.rst index 981b75e7..93532990 100644 --- a/docs/source/quickstart/install.rst +++ b/docs/source/quickstart/install.rst @@ -36,7 +36,7 @@ Example where the ``cbor`` and ``msgpack`` extensions are installed: (.venv) $ pip install "easynetwork[cbor,msgpack]" -.. seealso:: +.. todo:: - :doc:`/api/lowlevel/async/backend` - See how ``sniffio`` is used. + Explain what we do with ``sniffio`` when adding documentation of ``AsyncIOBackend`` + (because it is *NOT* for ``sniffio.current_async_library()``). diff --git a/src/easynetwork/lowlevel/api_async/backend/_sniffio_helpers.py b/src/easynetwork/lowlevel/api_async/backend/_sniffio_helpers.py index b9a1f8d5..22a8a9dc 100644 --- a/src/easynetwork/lowlevel/api_async/backend/_sniffio_helpers.py +++ b/src/easynetwork/lowlevel/api_async/backend/_sniffio_helpers.py @@ -16,35 +16,18 @@ from __future__ import annotations -__all__ = ["current_async_library", "setup_sniffio_contextvar"] +__all__ = ["setup_sniffio_contextvar"] import contextvars -import sys - - -def _current_async_library_fallback() -> str: - if "asyncio" in sys.modules: - import asyncio - - try: - asyncio.get_running_loop() - except RuntimeError: - pass - else: - return "asyncio" - raise RuntimeError("unknown async library, or not in async context") - try: import sniffio except ModuleNotFoundError: - current_async_library = _current_async_library_fallback def setup_sniffio_contextvar(context: contextvars.Context, library_name: str | None, /) -> None: pass else: - current_async_library = sniffio.current_async_library def setup_sniffio_contextvar(context: contextvars.Context, library_name: str | None, /) -> None: context.run(sniffio.current_async_library_cvar.set, library_name) diff --git a/tests/unit_test/test_async/test_lowlevel_api/test_backend/test_sniffio_helpers.py b/tests/unit_test/test_async/test_lowlevel_api/test_backend/test_sniffio_helpers.py deleted file mode 100644 index 53d73eb8..00000000 --- a/tests/unit_test/test_async/test_lowlevel_api/test_backend/test_sniffio_helpers.py +++ /dev/null @@ -1,46 +0,0 @@ -from __future__ import annotations - -import sys - -from easynetwork.lowlevel.api_async.backend._sniffio_helpers import _current_async_library_fallback - -import pytest - - -def test____current_async_library_fallback____asyncio_not_imported( - monkeypatch: pytest.MonkeyPatch, -) -> None: - # Arrange - monkeypatch.delitem(sys.modules, "asyncio", raising=False) - - # Act - with pytest.raises(RuntimeError, match=r"^unknown async library, or not in async context$"): - _current_async_library_fallback() - - # Assert - assert "asyncio" not in sys.modules - - -def test____current_async_library_fallback____asyncio_not_running() -> None: - # Arrange - import asyncio - - del asyncio - - # Act & Assert - with pytest.raises(RuntimeError, match=r"^unknown async library, or not in async context$"): - _current_async_library_fallback() - - -def test____current_async_library_fallback____asyncio_is_running() -> None: - # Arrange - import asyncio - - async def main() -> str: - return _current_async_library_fallback() - - # Act - library_name = asyncio.run(main()) - - # Assert - assert library_name == "asyncio"