summaryrefslogtreecommitdiff
path: root/tests/staticfiles_tests
diff options
context:
space:
mode:
authorBruno Alla <alla.brunoo@gmail.com>2023-07-17 13:41:33 +0100
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2023-08-31 08:21:44 +0200
commit4c4536f7442a3ed1218f5b1dc791295d65c24f4c (patch)
treee449797203576dc9446f98cdc21e0ec0f5d79d1e /tests/staticfiles_tests
parent74b5074174d1749ee44df2f7ed418010a7a4ac70 (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.py53
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, [])