Fixed #29301 -- Added custom help formatter to BaseCommand class

This partially reverts c3055242c8.
Thanks Adam Johnson and Carlton Gibson for the reviews.
This commit is contained in:
Claude Paroz 2018-05-21 11:32:51 +02:00
parent e9bd1a3e12
commit ce3351b950
4 changed files with 52 additions and 4 deletions

View file

@ -0,0 +1,16 @@
from argparse import ArgumentError
from django.core.management.base import BaseCommand, CommandError
class Command(BaseCommand):
def add_arguments(self, parser):
try:
parser.add_argument('--version', action='version', version='A.B.C')
except ArgumentError:
pass
else:
raise CommandError('--version argument does no yet exist')
def handle(self, *args, **options):
return 'Detected that --version already exists'

View file

@ -205,6 +205,11 @@ class CommandTests(SimpleTestCase):
self.assertIn('need_me', out.getvalue())
self.assertIn('needme2', out.getvalue())
def test_command_add_arguments_after_common_arguments(self):
out = StringIO()
management.call_command('common_args', stdout=out)
self.assertIn('Detected that --version already exists', out.getvalue())
def test_subparser(self):
out = StringIO()
management.call_command('subparser', 'foo', 12, stdout=out)