Fixed #28604 -- Prevented ManifestStaticFilesStorage from leaving intermediate files.
This commit is contained in:
parent
34ec52269a
commit
b27c9c953b
|
@ -55,6 +55,7 @@ class HashedFilesMixin:
|
|||
(r"""(@import\s*["']\s*(.*?)["'])""", """@import url("%s")"""),
|
||||
)),
|
||||
)
|
||||
keep_intermediate_files = True
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super().__init__(*args, **kwargs)
|
||||
|
@ -297,8 +298,9 @@ class HashedFilesMixin:
|
|||
self.delete(hashed_name)
|
||||
# then save the processed result
|
||||
content_file = ContentFile(content.encode())
|
||||
if self.keep_intermediate_files:
|
||||
# Save intermediate file for reference
|
||||
saved_name = self._save(hashed_name, content_file)
|
||||
self._save(hashed_name, content_file)
|
||||
hashed_name = self.hashed_name(name, content_file)
|
||||
|
||||
if self.exists(hashed_name):
|
||||
|
@ -370,6 +372,7 @@ class ManifestFilesMixin(HashedFilesMixin):
|
|||
manifest_version = '1.0' # the manifest format standard
|
||||
manifest_name = 'staticfiles.json'
|
||||
manifest_strict = True
|
||||
keep_intermediate_files = False
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super().__init__(*args, **kwargs)
|
||||
|
|
|
@ -445,6 +445,18 @@ class TestCollectionManifestStorage(TestHashedFiles, CollectionTestCase):
|
|||
# File exists on disk
|
||||
self.hashed_file_path(missing_file_name)
|
||||
|
||||
def test_intermediate_files(self):
|
||||
cached_files = os.listdir(os.path.join(settings.STATIC_ROOT, 'cached'))
|
||||
# Intermediate files shouldn't be created for reference.
|
||||
self.assertEqual(
|
||||
len([
|
||||
cached_file
|
||||
for cached_file in cached_files
|
||||
if cached_file.startswith('relative.')
|
||||
]),
|
||||
2,
|
||||
)
|
||||
|
||||
|
||||
@override_settings(STATICFILES_STORAGE='staticfiles_tests.storage.SimpleStorage')
|
||||
class TestCollectionSimpleStorage(CollectionTestCase):
|
||||
|
|
Loading…
Reference in New Issue