Removed BaseCommand.requires_model_validation per deprecation timeline.
This commit is contained in:
parent
18192b9fa4
commit
4a03d348c7
|
@ -191,18 +191,6 @@ class BaseCommand(object):
|
||||||
is the list of application's configuration provided by the
|
is the list of application's configuration provided by the
|
||||||
app registry.
|
app registry.
|
||||||
|
|
||||||
``requires_model_validation``
|
|
||||||
DEPRECATED - This value will only be used if requires_system_checks
|
|
||||||
has not been provided. Defining both ``requires_system_checks`` and
|
|
||||||
``requires_model_validation`` will result in an error.
|
|
||||||
|
|
||||||
A boolean; if ``True``, validation of installed models will be
|
|
||||||
performed prior to executing the command. Default value is
|
|
||||||
``True``. To validate an individual application's models
|
|
||||||
rather than all applications' models, call
|
|
||||||
``self.validate(app_config)`` from ``handle()``, where ``app_config``
|
|
||||||
is the application's configuration provided by the app registry.
|
|
||||||
|
|
||||||
``leave_locale_alone``
|
``leave_locale_alone``
|
||||||
A boolean indicating whether the locale set in settings should be
|
A boolean indicating whether the locale set in settings should be
|
||||||
preserved during the execution of the command instead of translations
|
preserved during the execution of the command instead of translations
|
||||||
|
@ -230,11 +218,7 @@ class BaseCommand(object):
|
||||||
can_import_settings = True
|
can_import_settings = True
|
||||||
output_transaction = False # Whether to wrap the output in a "BEGIN; COMMIT;"
|
output_transaction = False # Whether to wrap the output in a "BEGIN; COMMIT;"
|
||||||
leave_locale_alone = False
|
leave_locale_alone = False
|
||||||
|
requires_system_checks = True
|
||||||
# Uncomment the following line of code after deprecation plan for
|
|
||||||
# requires_model_validation comes to completion:
|
|
||||||
#
|
|
||||||
# requires_system_checks = True
|
|
||||||
|
|
||||||
def __init__(self, stdout=None, stderr=None, no_color=False):
|
def __init__(self, stdout=None, stderr=None, no_color=False):
|
||||||
self.stdout = OutputWrapper(stdout or sys.stdout)
|
self.stdout = OutputWrapper(stdout or sys.stdout)
|
||||||
|
@ -245,29 +229,6 @@ class BaseCommand(object):
|
||||||
self.style = color_style()
|
self.style = color_style()
|
||||||
self.stderr.style_func = self.style.ERROR
|
self.stderr.style_func = self.style.ERROR
|
||||||
|
|
||||||
# `requires_model_validation` is deprecated in favor of
|
|
||||||
# `requires_system_checks`. If both options are present, an error is
|
|
||||||
# raised. Otherwise the present option is used. If none of them is
|
|
||||||
# defined, the default value (True) is used.
|
|
||||||
has_old_option = hasattr(self, 'requires_model_validation')
|
|
||||||
has_new_option = hasattr(self, 'requires_system_checks')
|
|
||||||
|
|
||||||
if has_old_option:
|
|
||||||
warnings.warn(
|
|
||||||
'"requires_model_validation" is deprecated '
|
|
||||||
'in favor of "requires_system_checks".',
|
|
||||||
RemovedInDjango19Warning)
|
|
||||||
if has_old_option and has_new_option:
|
|
||||||
raise ImproperlyConfigured(
|
|
||||||
'Command %s defines both "requires_model_validation" '
|
|
||||||
'and "requires_system_checks", which is illegal. Use only '
|
|
||||||
'"requires_system_checks".' % self.__class__.__name__)
|
|
||||||
|
|
||||||
self.requires_system_checks = (
|
|
||||||
self.requires_system_checks if has_new_option else
|
|
||||||
self.requires_model_validation if has_old_option else
|
|
||||||
True)
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def use_argparse(self):
|
def use_argparse(self):
|
||||||
return not bool(self.option_list)
|
return not bool(self.option_list)
|
||||||
|
@ -404,8 +365,8 @@ class BaseCommand(object):
|
||||||
def execute(self, *args, **options):
|
def execute(self, *args, **options):
|
||||||
"""
|
"""
|
||||||
Try to execute this command, performing system checks if needed (as
|
Try to execute this command, performing system checks if needed (as
|
||||||
controlled by attributes ``self.requires_system_checks`` and
|
controlled by the ``requires_system_checks`` attribute, except if
|
||||||
``self.requires_model_validation``, except if force-skipped).
|
force-skipped).
|
||||||
"""
|
"""
|
||||||
if options.get('no_color'):
|
if options.get('no_color'):
|
||||||
self.style = no_style()
|
self.style = no_style()
|
||||||
|
|
|
@ -282,23 +282,7 @@ All attributes can be set in your derived class and can be used in
|
||||||
.. versionadded:: 1.7
|
.. versionadded:: 1.7
|
||||||
|
|
||||||
A boolean; if ``True``, the entire Django project will be checked for
|
A boolean; if ``True``, the entire Django project will be checked for
|
||||||
potential problems prior to executing the command. If
|
potential problems prior to executing the command. Default value is ``True``.
|
||||||
``requires_system_checks`` is missing, the value of
|
|
||||||
``requires_model_validation`` is used. If the latter flag is missing
|
|
||||||
as well, the default value (``True``) is used. Defining both
|
|
||||||
``requires_system_checks`` and ``requires_model_validation`` will result
|
|
||||||
in an error.
|
|
||||||
|
|
||||||
.. attribute:: BaseCommand.requires_model_validation
|
|
||||||
|
|
||||||
.. deprecated:: 1.7
|
|
||||||
Replaced by ``requires_system_checks``
|
|
||||||
|
|
||||||
A boolean; if ``True``, validation of installed models will be
|
|
||||||
performed prior to executing the command. Default value is
|
|
||||||
``True``. To validate an individual application's models
|
|
||||||
rather than all applications' models, call
|
|
||||||
:meth:`~BaseCommand.validate` from :meth:`~BaseCommand.handle`.
|
|
||||||
|
|
||||||
.. attribute:: BaseCommand.leave_locale_alone
|
.. attribute:: BaseCommand.leave_locale_alone
|
||||||
|
|
||||||
|
|
|
@ -1,11 +0,0 @@
|
||||||
from django.core.management.base import BaseCommand
|
|
||||||
|
|
||||||
|
|
||||||
class InvalidCommand(BaseCommand):
|
|
||||||
help = ("Test raising an error if both requires_system_checks "
|
|
||||||
"and requires_model_validation are defined.")
|
|
||||||
requires_system_checks = True
|
|
||||||
requires_model_validation = True
|
|
||||||
|
|
||||||
def handle(self, **options):
|
|
||||||
pass
|
|
|
@ -1662,11 +1662,6 @@ class CommandTypes(AdminScriptTestCase):
|
||||||
self.assertOutput(out, "EXECUTE:LabelCommand label=testlabel, options=[('no_color', False), ('pythonpath', None), ('settings', None), ('traceback', False), ('verbosity', 1)]")
|
self.assertOutput(out, "EXECUTE:LabelCommand label=testlabel, options=[('no_color', False), ('pythonpath', None), ('settings', None), ('traceback', False), ('verbosity', 1)]")
|
||||||
self.assertOutput(out, "EXECUTE:LabelCommand label=anotherlabel, options=[('no_color', False), ('pythonpath', None), ('settings', None), ('traceback', False), ('verbosity', 1)]")
|
self.assertOutput(out, "EXECUTE:LabelCommand label=anotherlabel, options=[('no_color', False), ('pythonpath', None), ('settings', None), ('traceback', False), ('verbosity', 1)]")
|
||||||
|
|
||||||
@ignore_warnings(category=RemovedInDjango19Warning)
|
|
||||||
def test_requires_model_validation_and_requires_system_checks_both_defined(self):
|
|
||||||
from .management.commands.validation_command import InvalidCommand
|
|
||||||
self.assertRaises(ImproperlyConfigured, InvalidCommand)
|
|
||||||
|
|
||||||
|
|
||||||
class Discovery(TestCase):
|
class Discovery(TestCase):
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue