Fixed #30418 -- Added --skip-checks management command option.

This commit is contained in:
Jon Dufresne 2019-04-26 16:37:57 -07:00 committed by Mariusz Felisiak
parent eb16c7260e
commit 6866c91b63
4 changed files with 34 additions and 3 deletions

View File

@ -95,7 +95,7 @@ class DjangoHelpFormatter(HelpFormatter):
"""
show_last = {
'--version', '--verbosity', '--traceback', '--settings', '--pythonpath',
'--no-color', '--force-color',
'--no-color', '--force-color', '--skip-checks',
}
def _reordered_actions(self, actions):
@ -223,7 +223,7 @@ class BaseCommand:
requires_system_checks = True
# Arguments, common to all commands, which aren't defined by the argument
# parser.
base_stealth_options = ('skip_checks', 'stderr', 'stdout')
base_stealth_options = ('stderr', 'stdout')
# Command-specific options not defined by the argument parser.
stealth_options = ()
@ -286,6 +286,11 @@ class BaseCommand:
'--force-color', action='store_true',
help='Force colorization of the command output.',
)
if self.requires_system_checks:
parser.add_argument(
'--skip-checks', action='store_true',
help='Skip system checks.',
)
self.add_arguments(parser)
return parser
@ -357,7 +362,7 @@ class BaseCommand:
if options.get('stderr'):
self.stderr = OutputWrapper(options['stderr'])
if self.requires_system_checks and not options.get('skip_checks'):
if self.requires_system_checks and not options['skip_checks']:
self.check()
if self.requires_migrations_checks:
self.check_migrations()

View File

@ -1724,6 +1724,19 @@ Forces colorization of the command output if it would otherwise be disabled
as discussed in :ref:`syntax-coloring`. For example, you may want to pipe
colored output to another command.
.. django-admin-option:: --skip-checks
.. versionadded:: 3.0
Skips running system checks prior to running the command. This option is only
available if the
:attr:`~django.core.management.BaseCommand.requires_system_checks` command
attribute is set to ``True``.
Example usage::
django-admin migrate --skip-checks
Extra niceties
==============

View File

@ -180,6 +180,9 @@ Management Commands
* :djadmin:`inspectdb` now introspects :class:`~django.db.models.OneToOneField`
when a foreign key has a unique or primary key constraint.
* The new :option:`--skip-checks` option skips running system checks prior to
running the command.
Migrations
~~~~~~~~~~

View File

@ -253,6 +253,16 @@ class CommandRunTests(AdminScriptTestCase):
self.assertNoOutput(err)
self.assertEqual(out.strip(), 'Set foo')
def test_skip_checks(self):
self.write_settings('settings.py', apps=['django.contrib.staticfiles', 'user_commands'], sdict={
# (staticfiles.E001) The STATICFILES_DIRS setting is not a tuple or
# list.
'STATICFILES_DIRS': '"foo"',
})
out, err = self.run_manage(['set_option', '--skip-checks', '--set', 'foo'])
self.assertNoOutput(err)
self.assertEqual(out.strip(), 'Set foo')
class UtilsTests(SimpleTestCase):