mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2026-04-27 10:29:26 +00:00
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
67 lines
2.0 KiB
Python
67 lines
2.0 KiB
Python
"""Tests for OcrConfig archive_file_generation field behavior."""
|
|
|
|
from __future__ import annotations
|
|
|
|
from typing import TYPE_CHECKING
|
|
|
|
import pytest
|
|
from django.test import override_settings
|
|
|
|
from paperless.config import OcrConfig
|
|
|
|
if TYPE_CHECKING:
|
|
from unittest.mock import MagicMock
|
|
|
|
|
|
@pytest.fixture()
|
|
def null_app_config(mocker) -> MagicMock:
|
|
"""Mock ApplicationConfiguration with all fields None → falls back to Django settings."""
|
|
return mocker.MagicMock(
|
|
output_type=None,
|
|
pages=None,
|
|
language=None,
|
|
mode=None,
|
|
archive_file_generation=None,
|
|
image_dpi=None,
|
|
unpaper_clean=None,
|
|
deskew=None,
|
|
rotate_pages=None,
|
|
rotate_pages_threshold=None,
|
|
max_image_pixels=None,
|
|
color_conversion_strategy=None,
|
|
user_args=None,
|
|
)
|
|
|
|
|
|
@pytest.fixture()
|
|
def make_ocr_config(mocker, null_app_config):
|
|
mocker.patch(
|
|
"paperless.config.BaseConfig._get_config_instance",
|
|
return_value=null_app_config,
|
|
)
|
|
|
|
def _make(**django_settings_overrides):
|
|
with override_settings(**django_settings_overrides):
|
|
return OcrConfig()
|
|
|
|
return _make
|
|
|
|
|
|
class TestOcrConfigArchiveFileGeneration:
|
|
def test_auto_from_settings(self, make_ocr_config) -> None:
|
|
cfg = make_ocr_config(OCR_MODE="auto", ARCHIVE_FILE_GENERATION="auto")
|
|
assert cfg.archive_file_generation == "auto"
|
|
|
|
def test_always_from_settings(self, make_ocr_config) -> None:
|
|
cfg = make_ocr_config(ARCHIVE_FILE_GENERATION="always")
|
|
assert cfg.archive_file_generation == "always"
|
|
|
|
def test_never_from_settings(self, make_ocr_config) -> None:
|
|
cfg = make_ocr_config(ARCHIVE_FILE_GENERATION="never")
|
|
assert cfg.archive_file_generation == "never"
|
|
|
|
def test_db_value_overrides_setting(self, make_ocr_config, null_app_config) -> None:
|
|
null_app_config.archive_file_generation = "never"
|
|
cfg = make_ocr_config(ARCHIVE_FILE_GENERATION="always")
|
|
assert cfg.archive_file_generation == "never"
|