diff options
| author | Bruno Alla <alla.brunoo@gmail.com> | 2023-07-17 13:41:33 +0100 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2023-08-31 08:21:44 +0200 |
| commit | 4c4536f7442a3ed1218f5b1dc791295d65c24f4c (patch) | |
| tree | e449797203576dc9446f98cdc21e0ec0f5d79d1e /tests/staticfiles_tests | |
| parent | 74b5074174d1749ee44df2f7ed418010a7a4ac70 (diff) | |
Refs #34712 -- Added system check for staticfiles storage in STORAGES setting.
Co-authored-by: Mariusz Felisiak <felisiak.mariusz@gmail.com>
Co-authored-by: Natalia Bidart <124304+nessita@users.noreply.github.com>
Diffstat (limited to 'tests/staticfiles_tests')
| -rw-r--r-- | tests/staticfiles_tests/test_checks.py | 53 |
1 files changed, 50 insertions, 3 deletions
diff --git a/tests/staticfiles_tests/test_checks.py b/tests/staticfiles_tests/test_checks.py index a8c6b78a96..14f72ef357 100644 --- a/tests/staticfiles_tests/test_checks.py +++ b/tests/staticfiles_tests/test_checks.py @@ -1,11 +1,11 @@ from pathlib import Path from unittest import mock -from django.conf import settings -from django.contrib.staticfiles.checks import check_finders +from django.conf import DEFAULT_STORAGE_ALIAS, STATICFILES_STORAGE_ALIAS, settings +from django.contrib.staticfiles.checks import E005, check_finders, check_storages from django.contrib.staticfiles.finders import BaseFinder, get_finder from django.core.checks import Error, Warning -from django.test import override_settings +from django.test import SimpleTestCase, override_settings from .cases import CollectionTestCase from .settings import TEST_ROOT @@ -132,3 +132,50 @@ class FindersCheckTests(CollectionTestCase): # Nonexistent directories are skipped. finder = get_finder("django.contrib.staticfiles.finders.FileSystemFinder") self.assertEqual(list(finder.list(None)), []) + + +class StoragesCheckTests(SimpleTestCase): + @override_settings(STORAGES={}) + def test_error_empty_storages(self): + # DEFAULT_STORAGE_ALIAS and STATICFILES_STORAGE_ALIAS need to be + # popped from STORAGES since UserSettingsHolder has code to maintain + # backward compatibility until 5.1 is out. + settings.STORAGES.clear() # RemovedInDjango51Warning + assert settings.STORAGES == {} # RemovedInDjango51Warning + errors = check_storages(None) + self.assertEqual(errors, [E005]) + + @override_settings( + STORAGES={ + DEFAULT_STORAGE_ALIAS: { + "BACKEND": "django.core.files.storage.FileSystemStorage", + }, + "example": { + "BACKEND": "ignore.me", + }, + } + ) + def test_error_missing_staticfiles(self): + # Check out the previous comment about UserSettingsHolder compat code. + settings.STORAGES.pop(STATICFILES_STORAGE_ALIAS) # RemovedInDjango51Warning + assert ( + STATICFILES_STORAGE_ALIAS not in settings.STORAGES + ) # RemovedInDjango51Warning + errors = check_storages(None) + self.assertEqual(errors, [E005]) + + @override_settings( + STORAGES={ + STATICFILES_STORAGE_ALIAS: { + "BACKEND": "django.contrib.staticfiles.storage.StaticFilesStorage", + }, + } + ) + def test_staticfiles_no_errors(self): + # Check out the previous comment about UserSettingsHolder compat code. + settings.STORAGES.pop(DEFAULT_STORAGE_ALIAS) # RemovedInDjango51Warning + assert ( + DEFAULT_STORAGE_ALIAS not in settings.STORAGES + ) # RemovedInDjango51Warning + errors = check_storages(None) + self.assertEqual(errors, []) |
