1
0
mirror of https://github.com/django/django.git synced 2024-12-22 17:16:24 +00:00

Fixed #31528 -- Made collectstatic management command run staticfiles checks.

This commit is contained in:
Hasan Ramezani 2020-05-06 22:29:32 +02:00 committed by Mariusz Felisiak
parent b23e3a1caa
commit 87faeee4e0
2 changed files with 14 additions and 0 deletions

View File

@ -3,6 +3,7 @@ import os
from django.apps import apps from django.apps import apps
from django.contrib.staticfiles.finders import get_finders from django.contrib.staticfiles.finders import get_finders
from django.contrib.staticfiles.storage import staticfiles_storage from django.contrib.staticfiles.storage import staticfiles_storage
from django.core.checks import Tags
from django.core.files.storage import FileSystemStorage from django.core.files.storage import FileSystemStorage
from django.core.management.base import BaseCommand, CommandError from django.core.management.base import BaseCommand, CommandError
from django.core.management.color import no_style from django.core.management.color import no_style
@ -35,6 +36,10 @@ class Command(BaseCommand):
return True return True
def add_arguments(self, parser): def add_arguments(self, parser):
parser.add_argument(
'--skip-checks', action='store_true',
help='Skip system checks.',
)
parser.add_argument( parser.add_argument(
'--noinput', '--no-input', action='store_false', dest='interactive', '--noinput', '--no-input', action='store_false', dest='interactive',
help="Do NOT prompt the user for input of any kind.", help="Do NOT prompt the user for input of any kind.",
@ -146,6 +151,8 @@ class Command(BaseCommand):
def handle(self, **options): def handle(self, **options):
self.set_options(**options) self.set_options(**options)
if not options['skip_checks']:
self.check(tags=[Tags.staticfiles])
message = ['\n'] message = ['\n']
if self.dry_run: if self.dry_run:

View File

@ -16,6 +16,7 @@ from django.contrib.staticfiles.management.commands import (
) )
from django.core.exceptions import ImproperlyConfigured from django.core.exceptions import ImproperlyConfigured
from django.core.management import CommandError, call_command from django.core.management import CommandError, call_command
from django.core.management.base import SystemCheckError
from django.test import RequestFactory, override_settings from django.test import RequestFactory, override_settings
from django.test.utils import extend_sys_path from django.test.utils import extend_sys_path
from django.utils import timezone from django.utils import timezone
@ -145,6 +146,12 @@ class TestConfiguration(StaticFilesTestCase):
collectstatic.staticfiles_storage = staticfiles_storage collectstatic.staticfiles_storage = staticfiles_storage
storage.staticfiles_storage = staticfiles_storage storage.staticfiles_storage = staticfiles_storage
@override_settings(STATICFILES_DIRS=('test'))
def test_collectstatis_check(self):
msg = 'The STATICFILES_DIRS setting is not a tuple or list.'
with self.assertRaisesMessage(SystemCheckError, msg):
call_command('collectstatic', skip_checks=False)
class TestCollectionHelpSubcommand(AdminScriptTestCase): class TestCollectionHelpSubcommand(AdminScriptTestCase):
@override_settings(STATIC_ROOT=None) @override_settings(STATIC_ROOT=None)