mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2026-08-01 16:42:18 +00:00
62 lines
1.8 KiB
Python
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,
|
|
),
|
|
]
|