59 lines
1.6 KiB
Python
59 lines
1.6 KiB
Python
import datetime
|
|
from unittest import TestCase
|
|
|
|
from paperless.settings import _parse_ignore_dates
|
|
|
|
|
|
class TestIgnoreDateParsing(TestCase):
|
|
"""
|
|
Tests the parsing of the PAPERLESS_IGNORE_DATES setting value
|
|
"""
|
|
|
|
def _parse_checker(self, test_cases):
|
|
"""
|
|
Helper function to check ignore date parsing
|
|
|
|
Args:
|
|
test_cases (_type_): _description_
|
|
"""
|
|
for env_str, date_format, expected_date_set in test_cases:
|
|
|
|
self.assertSetEqual(
|
|
_parse_ignore_dates(env_str, date_format),
|
|
expected_date_set,
|
|
)
|
|
|
|
def test_no_ignore_dates_set(self):
|
|
"""
|
|
GIVEN:
|
|
- No ignore dates are set
|
|
THEN:
|
|
- No ignore dates are parsed
|
|
"""
|
|
self.assertSetEqual(_parse_ignore_dates(""), set())
|
|
|
|
def test_single_ignore_dates_set(self):
|
|
"""
|
|
GIVEN:
|
|
- Ignore dates are set per certain inputs
|
|
THEN:
|
|
- All ignore dates are parsed
|
|
"""
|
|
test_cases = [
|
|
("1985-05-01", "YMD", {datetime.date(1985, 5, 1)}),
|
|
(
|
|
"1985-05-01,1991-12-05",
|
|
"YMD",
|
|
{datetime.date(1985, 5, 1), datetime.date(1991, 12, 5)},
|
|
),
|
|
("2010-12-13", "YMD", {datetime.date(2010, 12, 13)}),
|
|
("11.01.10", "DMY", {datetime.date(2010, 1, 11)}),
|
|
(
|
|
"11.01.2001,15-06-1996",
|
|
"DMY",
|
|
{datetime.date(2001, 1, 11), datetime.date(1996, 6, 15)},
|
|
),
|
|
]
|
|
|
|
self._parse_checker(test_cases)
|