Files
paperless-ngx/src/documents/tests/test_checks.py
T

62 lines
1.8 KiB
Python

import pytest
from django.core.checks import Error
from django.core.checks import Warning
from pytest_django.fixtures import SettingsWrapper
from pytest_mock import MockerFixture
from documents.checks import filename_format_check
from documents.checks import parser_check
class TestParserCheck:
def test_returns_empty_when_parsers_present(self) -> None:
assert parser_check(None) == []
def test_returns_error_when_no_parsers(self, mocker: MockerFixture) -> None:
mock_registry = mocker.patch(
"documents.checks.get_parser_registry",
).return_value
mock_registry.all_parsers.return_value = []
assert parser_check(None) == [
Error(
"No parsers found. This is a bug. The consumer won't be "
"able to consume any documents without parsers.",
),
]
class TestFilenameFormatCheck:
def test_returns_empty_when_unset(self) -> None:
assert filename_format_check(None) == []
@pytest.mark.parametrize(
("filename_format", "expected_hint"),
[
pytest.param(
"{created}/{title}",
"{{ created }}/{{ title }}",
id="created-and-title",
),
pytest.param(
"{correspondent}",
"{{ correspondent }}",
id="correspondent",
),
],
)
def test_warns_on_old_style_format(
self,
settings: SettingsWrapper,
filename_format: str,
expected_hint: str,
) -> None:
settings.FILENAME_FORMAT = filename_format
assert filename_format_check(None) == [
Warning(
f"Filename format {filename_format} is using the old style, please update to use double curly brackets",
hint=expected_hint,
),
]