0
0
mirror of https://github.com/django/django.git synced 2024-11-21 19:09:18 +01:00

Fixed #35669 -- Improved max post-process passes exceeded error message in HashedFilesMixin.

Signed-off-by: SaJH <wogur981208@gmail.com>
This commit is contained in:
SaJH 2024-08-26 23:49:30 +09:00 committed by Sarah Boyce
parent 2b2a2c0e26
commit 2ff00251f9
3 changed files with 14 additions and 8 deletions

View File

@ -308,22 +308,23 @@ class HashedFilesMixin:
processed_adjustable_paths[name] = (name, hashed_name, processed)
paths = {path: paths[path] for path in adjustable_paths}
substitutions = False
unresolved_paths = []
for i in range(self.max_post_process_passes):
substitutions = False
unresolved_paths = []
for name, hashed_name, processed, subst in self._post_process(
paths, adjustable_paths, hashed_files
):
# Overwrite since hashed_name may be newer.
processed_adjustable_paths[name] = (name, hashed_name, processed)
substitutions = substitutions or subst
if subst:
unresolved_paths.append(name)
if not substitutions:
if not unresolved_paths:
break
if substitutions:
yield "All", None, RuntimeError("Max post-process passes exceeded.")
if unresolved_paths:
problem_paths = ", ".join(sorted(unresolved_paths))
yield problem_paths, None, RuntimeError("Max post-process passes exceeded.")
# Store the processed paths
self.hashed_files.update(hashed_files)

View File

@ -0,0 +1,3 @@
body {
background-color: #fafafa;
}

View File

@ -186,7 +186,9 @@ class TestHashedFiles:
err = StringIO()
with self.assertRaisesMessage(RuntimeError, "Max post-process passes exceeded"):
call_command("collectstatic", interactive=False, verbosity=0, stderr=err)
self.assertEqual("Post-processing 'All' failed!\n\n", err.getvalue())
self.assertEqual(
"Post-processing 'bar.css, foo.css' failed!\n\n", err.getvalue()
)
self.assertPostCondition()
def test_post_processing(self):