From 4a03d348c70caa3e21393e08e6e665ef752202ac Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Sat, 17 Jan 2015 12:59:07 -0500 Subject: [PATCH] Removed BaseCommand.requires_model_validation per deprecation timeline. --- django/core/management/base.py | 45 ++----------------- docs/howto/custom-management-commands.txt | 18 +------- .../management/commands/validation_command.py | 11 ----- tests/admin_scripts/tests.py | 5 --- 4 files changed, 4 insertions(+), 75 deletions(-) delete mode 100644 tests/admin_scripts/management/commands/validation_command.py diff --git a/django/core/management/base.py b/django/core/management/base.py index f2301eef37..2777d4109e 100644 --- a/django/core/management/base.py +++ b/django/core/management/base.py @@ -191,18 +191,6 @@ class BaseCommand(object): is the list of application's configuration provided by the 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`` A boolean indicating whether the locale set in settings should be preserved during the execution of the command instead of translations @@ -230,11 +218,7 @@ class BaseCommand(object): can_import_settings = True output_transaction = False # Whether to wrap the output in a "BEGIN; COMMIT;" leave_locale_alone = False - - # Uncomment the following line of code after deprecation plan for - # requires_model_validation comes to completion: - # - # requires_system_checks = True + requires_system_checks = True def __init__(self, stdout=None, stderr=None, no_color=False): self.stdout = OutputWrapper(stdout or sys.stdout) @@ -245,29 +229,6 @@ class BaseCommand(object): self.style = color_style() 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 def use_argparse(self): return not bool(self.option_list) @@ -404,8 +365,8 @@ class BaseCommand(object): def execute(self, *args, **options): """ Try to execute this command, performing system checks if needed (as - controlled by attributes ``self.requires_system_checks`` and - ``self.requires_model_validation``, except if force-skipped). + controlled by the ``requires_system_checks`` attribute, except if + force-skipped). """ if options.get('no_color'): self.style = no_style() diff --git a/docs/howto/custom-management-commands.txt b/docs/howto/custom-management-commands.txt index c55adb19fc..a87e0ef1ba 100644 --- a/docs/howto/custom-management-commands.txt +++ b/docs/howto/custom-management-commands.txt @@ -282,23 +282,7 @@ All attributes can be set in your derived class and can be used in .. versionadded:: 1.7 A boolean; if ``True``, the entire Django project will be checked for - potential problems prior to executing the command. If - ``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`. + potential problems prior to executing the command. Default value is ``True``. .. attribute:: BaseCommand.leave_locale_alone diff --git a/tests/admin_scripts/management/commands/validation_command.py b/tests/admin_scripts/management/commands/validation_command.py deleted file mode 100644 index d0cbe19a81..0000000000 --- a/tests/admin_scripts/management/commands/validation_command.py +++ /dev/null @@ -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 diff --git a/tests/admin_scripts/tests.py b/tests/admin_scripts/tests.py index 7ed840aaf5..f4a29552b5 100644 --- a/tests/admin_scripts/tests.py +++ b/tests/admin_scripts/tests.py @@ -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=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):