Handles pytest-django

This commit is contained in:
Trenton Holmes
2026-09-05 08:46:25 -07:00
parent 98389a6b2d
commit 59ba416d65
18 changed files with 78 additions and 77 deletions
+3 -3
View File
@@ -10,7 +10,7 @@ import pytest
from django.contrib.auth import get_user_model
from django.contrib.contenttypes.models import ContentType
from guardian.shortcuts import clear_ct_cache
from pytest_django.fixtures import SettingsWrapper
from pytest_django.fixtures import Settings
from rest_framework.test import APIClient
from documents.tests.factories import DocumentFactory
@@ -100,7 +100,7 @@ def sample_doc(
@pytest.fixture()
def _search_index(
tmp_path: Path,
settings: SettingsWrapper,
settings: Settings,
) -> Generator[None, None, None]:
"""Create a temp index directory and point INDEX_DIR at it.
@@ -118,7 +118,7 @@ def _search_index(
@pytest.fixture()
def settings_timezone(settings: SettingsWrapper) -> zoneinfo.ZoneInfo:
def settings_timezone(settings: Settings) -> zoneinfo.ZoneInfo:
return zoneinfo.ZoneInfo(settings.TIME_ZONE)
+1 -1
View File
@@ -70,7 +70,7 @@ def clear_lru_cache() -> Generator[None, None, None]:
@pytest.fixture
def mock_date_parser_settings(settings: pytest_django.fixtures.SettingsWrapper) -> Any:
def mock_date_parser_settings(settings: pytest_django.fixtures.Settings) -> Any:
"""
Override Django settings for the duration of date parser tests.
"""
+3 -3
View File
@@ -6,7 +6,7 @@ from pathlib import Path
import pytest
import pytest_mock
from pytest_django.fixtures import SettingsWrapper
from pytest_django.fixtures import Settings
from documents.export.sinks import DirectoryExportSink
from documents.export.sinks import ExportSink
@@ -242,7 +242,7 @@ class TestZipExportSink:
self,
tmp_path: Path,
source_file: Path,
settings: SettingsWrapper,
settings: Settings,
) -> None:
scratch_dir = tmp_path / "scratch"
settings.SCRATCH_DIR = scratch_dir
@@ -261,7 +261,7 @@ class TestZipExportSink:
def test_abort_after_manifest_written_cleans_up_pending_tmp(
self,
tmp_path: Path,
settings: SettingsWrapper,
settings: Settings,
) -> None:
scratch_dir = tmp_path / "scratch"
settings.SCRATCH_DIR = scratch_dir
+2 -2
View File
@@ -15,11 +15,11 @@ if TYPE_CHECKING:
from collections.abc import Generator
from pathlib import Path
from pytest_django.fixtures import SettingsWrapper
from pytest_django.fixtures import Settings
@pytest.fixture
def index_dir(tmp_path: Path, settings: SettingsWrapper) -> Path:
def index_dir(tmp_path: Path, settings: Settings) -> Path:
path = tmp_path / "index"
path.mkdir()
settings.INDEX_DIR = path
+7 -6
View File
@@ -11,7 +11,8 @@ from documents.search._schema import needs_rebuild
if TYPE_CHECKING:
from pathlib import Path
from pytest_django.fixtures import SettingsWrapper
from pytest_django.fixtures import Settings
pytestmark = pytest.mark.search
@@ -25,7 +26,7 @@ class TestNeedsRebuild:
def test_returns_false_when_version_and_language_match(
self,
index_dir: Path,
settings: SettingsWrapper,
settings: Settings,
) -> None:
settings.SEARCH_LANGUAGE = "en"
(index_dir / ".index_settings.json").write_text(
@@ -36,7 +37,7 @@ class TestNeedsRebuild:
def test_returns_true_on_schema_version_mismatch(
self,
index_dir: Path,
settings: SettingsWrapper,
settings: Settings,
) -> None:
settings.SEARCH_LANGUAGE = None
(index_dir / ".index_settings.json").write_text(
@@ -47,7 +48,7 @@ class TestNeedsRebuild:
def test_returns_true_when_version_is_not_an_integer(
self,
index_dir: Path,
settings: SettingsWrapper,
settings: Settings,
) -> None:
settings.SEARCH_LANGUAGE = None
(index_dir / ".index_settings.json").write_text(
@@ -58,7 +59,7 @@ class TestNeedsRebuild:
def test_returns_true_when_language_key_missing(
self,
index_dir: Path,
settings: SettingsWrapper,
settings: Settings,
) -> None:
settings.SEARCH_LANGUAGE = "en"
(index_dir / ".index_settings.json").write_text(
@@ -69,7 +70,7 @@ class TestNeedsRebuild:
def test_returns_true_when_language_differs(
self,
index_dir: Path,
settings: SettingsWrapper,
settings: Settings,
) -> None:
settings.SEARCH_LANGUAGE = "de"
(index_dir / ".index_settings.json").write_text(
+2 -2
View File
@@ -1,7 +1,7 @@
import pytest
from django.core.checks import Error
from django.core.checks import Warning
from pytest_django.fixtures import SettingsWrapper
from pytest_django.fixtures import Settings
from pytest_mock import MockerFixture
from documents.checks import filename_format_check
@@ -47,7 +47,7 @@ class TestFilenameFormatCheck:
)
def test_warns_on_old_style_format(
self,
settings: SettingsWrapper,
settings: Settings,
filename_format: str,
expected_hint: str,
) -> None:
@@ -43,7 +43,7 @@ if TYPE_CHECKING:
from collections.abc import Generator
from unittest.mock import MagicMock
from pytest_django.fixtures import SettingsWrapper
from pytest_django.fixtures import Settings
from pytest_mock import MockerFixture
@@ -605,7 +605,7 @@ class TestCommandValidation:
def test_raises_for_missing_consumption_dir(
self,
settings: SettingsWrapper,
settings: Settings,
) -> None:
"""Test command raises error when directory is not provided."""
settings.CONSUMPTION_DIR = None
@@ -639,7 +639,7 @@ class TestCommandOneshot:
scratch_dir: Path,
sample_pdf: Path,
mock_consume_file_delay: MagicMock,
settings: SettingsWrapper,
settings: Settings,
) -> None:
"""Test oneshot mode processes existing files."""
target = consumption_dir / "document.pdf"
@@ -659,7 +659,7 @@ class TestCommandOneshot:
scratch_dir: Path,
sample_pdf: Path,
mock_consume_file_delay: MagicMock,
settings: SettingsWrapper,
settings: Settings,
) -> None:
"""Test oneshot mode processes files recursively."""
subdir = consumption_dir / "subdir"
@@ -681,7 +681,7 @@ class TestCommandOneshot:
consumption_dir: Path,
scratch_dir: Path,
mock_consume_file_delay: MagicMock,
settings: SettingsWrapper,
settings: Settings,
) -> None:
"""Test oneshot mode ignores unsupported file extensions."""
target = consumption_dir / "document.xyz"
@@ -1256,7 +1256,7 @@ class TestProcessExistingFilesQueued:
consumption_dir: Path,
sample_pdf: Path,
mock_consume_file_delay: MagicMock,
settings: SettingsWrapper,
settings: Settings,
) -> None:
"""The set returned seeds the rescan's queued set, avoiding re-queue."""
target = consumption_dir / "document.pdf"
+2 -2
View File
@@ -1,7 +1,7 @@
from collections.abc import Generator
import pytest
from pytest_django.fixtures import SettingsWrapper
from pytest_django.fixtures import Settings
from documents.parsers import get_default_file_extension
from documents.parsers import get_supported_file_extensions
@@ -14,7 +14,7 @@ from paperless.parsers.tika import TikaDocumentParser
@pytest.fixture()
def _tika_registry(settings: SettingsWrapper) -> Generator[None, None, None]:
def _tika_registry(settings: Settings) -> Generator[None, None, None]:
"""
Rebuild the parser registry with Tika enabled for the duration of the
test, then reset on exit so other tests see the default (Tika-disabled)
+2 -2
View File
@@ -23,6 +23,7 @@ from guardian.shortcuts import get_users_with_perms
from httpx import ConnectError
from httpx import HTTPError
from httpx import HTTPStatusError
from pytest_django.fixtures import Settings
from pytest_httpx import HTTPXMock
from rest_framework.test import APIClient
from rest_framework.test import APITestCase
@@ -38,7 +39,6 @@ from paperless_ai.exceptions import LLMTimeoutError
if TYPE_CHECKING:
from django.db.models import QuerySet
from pytest_django.fixtures import SettingsWrapper
from documents import tasks
from documents.data_models import ConsumableDocument
@@ -5356,7 +5356,7 @@ class TestDateWorkflowLocalization(
def test_document_consumption_workflow_localization(
self,
tmp_path: Path,
settings: SettingsWrapper,
settings: Settings,
title_template: str,
expected_title: str,
) -> None: