Source code for dmr_pytest

from collections.abc import Iterator
from typing import TYPE_CHECKING

try:  # noqa: WPS229
    import pytest
    import pytest_django  # noqa: F401  # pyright: ignore[reportUnusedImport]
except ImportError:  # pragma: no cover
    print(  # noqa: WPS421
        (
            'Looks like `pytest` or `pytest-django` is not installed, '
            'please install it separately'
        ),
    )
    raise

if TYPE_CHECKING:
    # We can't import it directly, because it will ruin our coverage measures.

    from django.conf import LazySettings

    from dmr.test import (
        DMRAsyncClient,
        DMRAsyncRequestFactory,
        DMRClient,
        DMRRequestFactory,
    )


# Building requests:


[docs] @pytest.fixture def dmr_client(request: pytest.FixtureRequest) -> 'DMRClient': """Customized version of :class:`django.test.Client`.""" from dmr.internal.test import maybe_track_client from dmr.test import DMRClient client = DMRClient() maybe_track_client(request, client) return client
[docs] @pytest.fixture def dmr_async_client(request: pytest.FixtureRequest) -> 'DMRAsyncClient': """Customized version of :class:`django.test.AsyncClient`.""" from dmr.internal.test import maybe_track_client from dmr.test import DMRAsyncClient client = DMRAsyncClient() maybe_track_client(request, client) return client
[docs] @pytest.fixture def dmr_rf() -> 'DMRRequestFactory': """Customized version of :class:`django.test.RequestFactory`.""" from dmr.test import DMRRequestFactory return DMRRequestFactory()
[docs] @pytest.fixture def dmr_async_rf() -> 'DMRAsyncRequestFactory': """Customized version of :class:`django.test.AsyncRequestFactory`.""" from dmr.test import DMRAsyncRequestFactory return DMRAsyncRequestFactory()
# Settings:
[docs] @pytest.fixture def dmr_clean_settings() -> Iterator[None]: """Cleans settings caches before and after the test.""" from dmr.settings import clear_settings_cache clear_settings_cache() yield clear_settings_cache()
[docs] @pytest.fixture def settings( settings: 'LazySettings', dmr_clean_settings: None, ) -> 'LazySettings': """Customized version of :func:`pytest_django.fixtures.settings`.""" return settings