mirror of
				https://github.com/django/django.git
				synced 2025-10-31 09:41:08 +00:00 
			
		
		
		
	Fixed #33657 -- Allowed customizing formatter class of argument parsers.
This commit is contained in:
		| @@ -286,10 +286,10 @@ class BaseCommand: | |||||||
|         Create and return the ``ArgumentParser`` which will be used to |         Create and return the ``ArgumentParser`` which will be used to | ||||||
|         parse the arguments to this command. |         parse the arguments to this command. | ||||||
|         """ |         """ | ||||||
|  |         kwargs.setdefault("formatter_class", DjangoHelpFormatter) | ||||||
|         parser = CommandParser( |         parser = CommandParser( | ||||||
|             prog="%s %s" % (os.path.basename(prog_name), subcommand), |             prog="%s %s" % (os.path.basename(prog_name), subcommand), | ||||||
|             description=self.help or None, |             description=self.help or None, | ||||||
|             formatter_class=DjangoHelpFormatter, |  | ||||||
|             missing_args_message=getattr(self, "missing_args_message", None), |             missing_args_message=getattr(self, "missing_args_message", None), | ||||||
|             called_from_command_line=getattr(self, "_called_from_command_line", None), |             called_from_command_line=getattr(self, "_called_from_command_line", None), | ||||||
|             **kwargs, |             **kwargs, | ||||||
|   | |||||||
| @@ -1,4 +1,5 @@ | |||||||
| import os | import os | ||||||
|  | from argparse import ArgumentDefaultsHelpFormatter | ||||||
| from io import StringIO | from io import StringIO | ||||||
| from unittest import mock | from unittest import mock | ||||||
|  |  | ||||||
| @@ -408,8 +409,14 @@ class CommandTests(SimpleTestCase): | |||||||
|     def test_create_parser_kwargs(self): |     def test_create_parser_kwargs(self): | ||||||
|         """BaseCommand.create_parser() passes kwargs to CommandParser.""" |         """BaseCommand.create_parser() passes kwargs to CommandParser.""" | ||||||
|         epilog = "some epilog text" |         epilog = "some epilog text" | ||||||
|         parser = BaseCommand().create_parser("prog_name", "subcommand", epilog=epilog) |         parser = BaseCommand().create_parser( | ||||||
|  |             "prog_name", | ||||||
|  |             "subcommand", | ||||||
|  |             epilog=epilog, | ||||||
|  |             formatter_class=ArgumentDefaultsHelpFormatter, | ||||||
|  |         ) | ||||||
|         self.assertEqual(parser.epilog, epilog) |         self.assertEqual(parser.epilog, epilog) | ||||||
|  |         self.assertEqual(parser.formatter_class, ArgumentDefaultsHelpFormatter) | ||||||
|  |  | ||||||
|     def test_outputwrapper_flush(self): |     def test_outputwrapper_flush(self): | ||||||
|         out = StringIO() |         out = StringIO() | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user