mirror of
https://github.com/django/django.git
synced 2025-07-24 05:36:15 +00:00
Converted test management command to argparse
Keeping backwards compatibility with test_runner.option_list is tricky and would imply transforming an optparse.Option to an argparse.Action. I choose to introduce a backwards incompatible change because it only affects testing, not runtime behavior.
This commit is contained in:
parent
cbff097bd9
commit
4b4524291a
5 changed files with 86 additions and 50 deletions
|
@ -294,6 +294,17 @@ you don't have to keep compatibility with older Django versions, it's better to
|
|||
implement the new :meth:`~django.core.management.BaseCommand.add_arguments`
|
||||
method as described in :doc:`/howto/custom-management-commands`.
|
||||
|
||||
Custom test management command arguments through test runner
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
The method to add custom arguments to the `test` management command through the
|
||||
test runner has changed. Previously, you could provide an `option_list` class
|
||||
variable on the test runner to add more arguments (à la :py:mod:`optparse`).
|
||||
Now to implement the same behavior, you have to create an
|
||||
``add_arguments(cls, parser)`` class method on the test runner and call
|
||||
``parser.add_argument`` to add any custom arguments, as parser is now an
|
||||
:py:class:`argparse.ArgumentParser` instance.
|
||||
|
||||
Miscellaneous
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
|
|
|
@ -333,9 +333,15 @@ execute and tear down the test suite.
|
|||
runner, ensure it accepts ``**kwargs``.
|
||||
|
||||
Your test runner may also define additional command-line options.
|
||||
If you add an ``option_list`` attribute to a subclassed test runner,
|
||||
those options will be added to the list of command-line options that
|
||||
the :djadmin:`test` command can use.
|
||||
Create or override an ``add_arguments(cls, parser)`` class method and add
|
||||
custom arguments by calling ``parser.add_argument()`` inside the method, so
|
||||
that the :djadmin:`test` command will be able to use those arguments.
|
||||
|
||||
.. versionchanged:: 1.8
|
||||
|
||||
Previously, you had to provide an ``option_list`` attribute to a
|
||||
subclassed test runner to add options to the list of command-line
|
||||
options that the :djadmin:`test` command could use.
|
||||
|
||||
Attributes
|
||||
~~~~~~~~~~
|
||||
|
@ -372,6 +378,12 @@ Attributes
|
|||
management command's ``OptionParser`` for parsing arguments. See the
|
||||
documentation for Python's ``optparse`` module for more details.
|
||||
|
||||
.. deprecated:: 1.8
|
||||
|
||||
You should now override the :meth:`~DiscoverRunner.add_arguments` class
|
||||
method to add custom arguments accepted by the :djadmin:`test`
|
||||
management command.
|
||||
|
||||
Methods
|
||||
~~~~~~~
|
||||
|
||||
|
@ -389,6 +401,15 @@ Methods
|
|||
|
||||
This method should return the number of tests that failed.
|
||||
|
||||
.. classmethod:: DiscoverRunner.add_arguments(parser)
|
||||
|
||||
.. versionadded:: 1.8
|
||||
|
||||
Override this class method to add custom arguments accepted by the
|
||||
:djadmin:`test` management command. See
|
||||
:py:meth:`argparse.ArgumentParser.add_argument()` for details about adding
|
||||
arguments to a parser.
|
||||
|
||||
.. method:: DiscoverRunner.setup_test_environment(**kwargs)
|
||||
|
||||
Sets up the test environment by calling
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue