diff options
| author | James Bligh <blighj@users.noreply.github.com> | 2026-03-06 15:47:08 +0000 |
|---|---|---|
| committer | Jacob Walls <jacobtylerwalls@gmail.com> | 2026-03-06 16:54:27 -0500 |
| commit | 864850b20f7ef89ed2f6bd8baf1a45acc9245a6c (patch) | |
| tree | ac97baf62fd4744d004d735a099dd23942d7bdf9 /tests | |
| parent | f8665b1a7ff5e98d84f66ad0e958c3f175aa5d8b (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.py | 16 |
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() |
