mirror of https://github.com/django/django.git
Fixed #29392 -- Disallowed use of abbreviated forms of --settings and --pythonpath management command options.
This commit is contained in:
parent
265506bbc3
commit
2dcc5d629a
|
@ -311,7 +311,7 @@ class ManagementUtility:
|
|||
# Preprocess options to extract --settings and --pythonpath.
|
||||
# These options could affect the commands that are available, so they
|
||||
# must be processed early.
|
||||
parser = CommandParser(usage='%(prog)s subcommand [options] [args]', add_help=False)
|
||||
parser = CommandParser(usage='%(prog)s subcommand [options] [args]', add_help=False, allow_abbrev=False)
|
||||
parser.add_argument('--settings')
|
||||
parser.add_argument('--pythonpath')
|
||||
parser.add_argument('args', nargs='*') # catch-all
|
||||
|
|
|
@ -423,6 +423,9 @@ Miscellaneous
|
|||
to insert untranslated content into the database), use the new
|
||||
:ref:`@no_translations decorator <management-commands-and-locales>`.
|
||||
|
||||
* Management commands no longer allow the abbreviated forms of the
|
||||
``--settings`` and ``--pythonpath`` arguments.
|
||||
|
||||
.. _deprecated-features-2.1:
|
||||
|
||||
Features deprecated in 2.1
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
from django.core.management.base import BaseCommand
|
||||
|
||||
|
||||
class Command(BaseCommand):
|
||||
|
||||
def add_arguments(self, parser):
|
||||
parser.add_argument('--set')
|
||||
|
||||
def handle(self, **options):
|
||||
self.stdout.write('Set %s' % options['set'])
|
|
@ -232,6 +232,16 @@ class CommandRunTests(AdminScriptTestCase):
|
|||
self.assertNoOutput(err)
|
||||
self.assertEqual(out.strip(), '/PREFIX/some/url/')
|
||||
|
||||
def test_disallowed_abbreviated_options(self):
|
||||
"""
|
||||
To avoid conflicts with custom options, commands don't allow
|
||||
abbreviated forms of the --setting and --pythonpath options.
|
||||
"""
|
||||
self.write_settings('settings.py', apps=['user_commands'])
|
||||
out, err = self.run_manage(['set_option', '--set', 'foo'])
|
||||
self.assertNoOutput(err)
|
||||
self.assertEqual(out.strip(), 'Set foo')
|
||||
|
||||
|
||||
class UtilsTests(SimpleTestCase):
|
||||
|
||||
|
|
Loading…
Reference in New Issue