Kaydet (Commit) 4a03d348 authored tarafından Tim Graham's avatar Tim Graham

Removed BaseCommand.requires_model_validation per deprecation timeline.

üst 18192b9f
...@@ -191,18 +191,6 @@ class BaseCommand(object): ...@@ -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): ...@@ -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): ...@@ -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): ...@@ -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 ...@@ -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
......
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): ...@@ -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):
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment