diff --git a/ninja/main.py b/ninja/main.py index af5ed5df6..d93a84f42 100644 --- a/ninja/main.py +++ b/ninja/main.py @@ -1,4 +1,3 @@ -import os from typing import ( TYPE_CHECKING, Any, @@ -13,6 +12,7 @@ Union, ) +from django.conf import settings from django.http import HttpRequest, HttpResponse from django.urls import URLPattern, URLResolver, reverse from django.utils.module_loading import import_string @@ -561,7 +561,7 @@ def _lookup_exception_handler(self, exc: Exc[_E]) -> Optional[ExcHandler[_E]]: def _validate(self) -> None: # urls namespacing validation - skip_registry = os.environ.get("NINJA_SKIP_REGISTRY", False) + skip_registry = getattr(settings, "NINJA_SKIP_REGISTRY", False) if ( not skip_registry and self.urls_namespace in NinjaAPI._registry diff --git a/tests/conftest.py b/tests/conftest.py index 632e049a8..618e19318 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -10,9 +10,10 @@ os.environ.setdefault("DJANGO_SETTINGS_MODULE", "demo.settings") import django # noqa +from django.conf import settings # noqa django.setup() def pytest_generate_tests(metafunc): - os.environ["NINJA_SKIP_REGISTRY"] = "yes" + settings.NINJA_SKIP_REGISTRY = True diff --git a/tests/test_app.py b/tests/test_app.py index 9a6d34908..1234f34a0 100644 --- a/tests/test_app.py +++ b/tests/test_app.py @@ -1,5 +1,4 @@ import contextlib -import os from pathlib import Path from tempfile import NamedTemporaryFile @@ -102,10 +101,7 @@ def test_method(method, path, expected_status, expected_data, expected_streaming assert data == expected_data -def test_validates(): - try: - os.environ["NINJA_SKIP_REGISTRY"] = "" - with pytest.raises(ConfigError): - _urls = NinjaAPI().urls - finally: - os.environ["NINJA_SKIP_REGISTRY"] = "yes" +def test_validates(settings): + delattr(settings, "NINJA_SKIP_REGISTRY") + with pytest.raises(ConfigError): + _urls = NinjaAPI().urls