from documents.models import StoragePath
from documents.tasks import empty_trash
from documents.templating.filepath import localize_date
+from documents.tests.factories import DocumentFactory
from documents.tests.utils import DirectoriesMixin
from documents.tests.utils import FileSystemAssertsMixin
localize_date(self.TEST_DATE, "medium", "invalid_locale_code")
assert "Invalid locale identifier" in str(excinfo.value)
+
+ @pytest.mark.django_db
+ @pytest.mark.parametrize(
+ "filename_format,expected_filename",
+ [
+ pytest.param(
+ "{{title}}_{{ document.created | localize_date('MMMM', 'es_ES')}}",
+ "My Document_octubre.pdf",
+ id="spanish_month_name",
+ ),
+ pytest.param(
+ "{{title}}_{{ document.created | localize_date('EEEE', 'fr_FR')}}",
+ "My Document_jeudi.pdf",
+ id="french_day_of_week",
+ ),
+ pytest.param(
+ "{{title}}_{{ document.created | localize_date('dd/MM/yyyy', 'en_GB')}}",
+ "My Document_26/10/2023.pdf",
+ id="uk_date_format",
+ ),
+ ],
+ )
+ def test_localize_date_path_building(self, filename_format, expected_filename):
+ document = DocumentFactory.create(
+ title="My Document",
+ mime_type="application/pdf",
+ storage_type=Document.STORAGE_TYPE_UNENCRYPTED,
+ created=self.TEST_DATE, # 2023-10-26 (which is a Thursday)
+ )
+ with override_settings(FILENAME_FORMAT=filename_format):
+ filename = generate_filename(document)
+ assert filename == Path(expected_filename)