summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorJames Bligh <blighj@users.noreply.github.com>2026-03-06 15:47:08 +0000
committerJacob Walls <jacobtylerwalls@gmail.com>2026-03-06 16:54:27 -0500
commit864850b20f7ef89ed2f6bd8baf1a45acc9245a6c (patch)
treeac97baf62fd4744d004d735a099dd23942d7bdf9 /tests
parentf8665b1a7ff5e98d84f66ad0e958c3f175aa5d8b (diff)
Fixed #36968 -- Improved error message when collectstatic can't find a referenced file.
Diffstat (limited to 'tests')
-rw-r--r--tests/staticfiles_tests/test_storage.py16
1 files changed, 12 insertions, 4 deletions
diff --git a/tests/staticfiles_tests/test_storage.py b/tests/staticfiles_tests/test_storage.py
index cdb6fd3c7e..9db449bf9d 100644
--- a/tests/staticfiles_tests/test_storage.py
+++ b/tests/staticfiles_tests/test_storage.py
@@ -13,7 +13,7 @@ from django.contrib.staticfiles import finders, storage
from django.contrib.staticfiles.management.commands.collectstatic import (
Command as CollectstaticCommand,
)
-from django.core.management import call_command
+from django.core.management import CommandError, call_command
from django.test import SimpleTestCase, override_settings
from .cases import CollectionTestCase
@@ -201,8 +201,10 @@ class TestHashedFiles:
def test_import_loop(self):
finders.get_finder.cache_clear()
err = StringIO()
- with self.assertRaisesMessage(RuntimeError, "Max post-process passes exceeded"):
+ msg = "Max post-process passes exceeded"
+ with self.assertRaisesMessage(CommandError, msg) as cm:
call_command("collectstatic", interactive=False, verbosity=0, stderr=err)
+ self.assertIsInstance(cm.exception.__cause__, RuntimeError)
self.assertEqual(
"Post-processing 'bar.css, foo.css' failed!\n\n", err.getvalue()
)
@@ -367,9 +369,14 @@ class TestHashedFiles:
"""
finders.get_finder.cache_clear()
err = StringIO()
- with self.assertRaises(Exception):
+ with self.assertRaises(CommandError) as cm:
call_command("collectstatic", interactive=False, verbosity=0, stderr=err)
self.assertEqual("Post-processing 'faulty.css' failed!\n\n", err.getvalue())
+ self.assertIsInstance(cm.exception.__cause__, ValueError)
+ exc_message = str(cm.exception)
+ self.assertIn("faulty.css", exc_message)
+ self.assertIn("missing.css", exc_message)
+ self.assertIn("1:", exc_message) # line 1 reported
self.assertPostCondition()
@override_settings(
@@ -379,8 +386,9 @@ class TestHashedFiles:
def test_post_processing_nonutf8(self):
finders.get_finder.cache_clear()
err = StringIO()
- with self.assertRaises(UnicodeDecodeError):
+ with self.assertRaises(CommandError) as cm:
call_command("collectstatic", interactive=False, verbosity=0, stderr=err)
+ self.assertIsInstance(cm.exception.__cause__, UnicodeDecodeError)
self.assertEqual("Post-processing 'nonutf8.css' failed!\n\n", err.getvalue())
self.assertPostCondition()