mirror of
https://github.com/django/django.git
synced 2025-10-23 21:59:11 +00:00
Fixed #30584 -- Fixed management command when using subparsers with dest parameter.
This commit is contained in:
committed by
Mariusz Felisiak
parent
f03b7bd114
commit
2b03e8e9e8
@@ -15,6 +15,7 @@ from django.db import connection
|
||||
from django.test import SimpleTestCase, override_settings
|
||||
from django.test.utils import captured_stderr, extend_sys_path
|
||||
from django.utils import translation
|
||||
from django.utils.version import PY37
|
||||
|
||||
from .management.commands import dance
|
||||
|
||||
@@ -218,10 +219,34 @@ class CommandTests(SimpleTestCase):
|
||||
management.call_command('subparser', 'foo', 12, stdout=out)
|
||||
self.assertIn('bar', out.getvalue())
|
||||
|
||||
def test_subparser_dest_args(self):
|
||||
out = StringIO()
|
||||
management.call_command('subparser_dest', 'foo', bar=12, stdout=out)
|
||||
self.assertIn('bar', out.getvalue())
|
||||
|
||||
def test_subparser_dest_required_args(self):
|
||||
out = StringIO()
|
||||
management.call_command('subparser_required', 'foo_1', 'foo_2', bar=12, stdout=out)
|
||||
self.assertIn('bar', out.getvalue())
|
||||
|
||||
def test_subparser_invalid_option(self):
|
||||
msg = "Error: invalid choice: 'test' (choose from 'foo')"
|
||||
with self.assertRaisesMessage(CommandError, msg):
|
||||
management.call_command('subparser', 'test', 12)
|
||||
if PY37:
|
||||
# "required" option requires Python 3.7 and later.
|
||||
msg = 'Error: the following arguments are required: subcommand'
|
||||
with self.assertRaisesMessage(CommandError, msg):
|
||||
management.call_command('subparser_dest', subcommand='foo', bar=12)
|
||||
else:
|
||||
msg = (
|
||||
'Unknown option(s) for subparser_dest command: subcommand. '
|
||||
'Valid options are: bar, force_color, help, no_color, '
|
||||
'pythonpath, settings, skip_checks, stderr, stdout, '
|
||||
'traceback, verbosity, version.'
|
||||
)
|
||||
with self.assertRaisesMessage(TypeError, msg):
|
||||
management.call_command('subparser_dest', subcommand='foo', bar=12)
|
||||
|
||||
def test_create_parser_kwargs(self):
|
||||
"""BaseCommand.create_parser() passes kwargs to CommandParser."""
|
||||
|
||||
Reference in New Issue
Block a user