Opened 7 years ago
Last modified 8 months ago
#28452 new New feature
Consider adding a test command argument --locals to show traceback locals
Reported by: | David Sanders | Owned by: | nobody |
---|---|---|---|
Component: | Testing framework | Version: | dev |
Severity: | Normal | Keywords: | |
Cc: | Ülgen Sarıkavak | Triage Stage: | Someday/Maybe |
Has patch: | no | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description (last modified by )
I'd like to suggest adding an argument to the test command, --locals
, that simply passes tb_locals=True
to unittest.TextTestRunner()
.
Currently it looks as though support for adding custom test runner kwargs was improved in 1.11 with ticket #26981 whereby one can provide a custom test runner and override get_test_runner_kwargs()
however I think it would be nice to be able to examine locals without having to setup a custom test runner.
Please note that the tb_locals
argument was introduced in Python 3.5, so this would need to be taken into consideration.
Change History (6)
comment:1 by , 7 years ago
Description: | modified (diff) |
---|---|
Version: | 1.11 → master |
comment:2 by , 7 years ago
comment:3 by , 7 years ago
There might be some risk of heading down the path of reimplementing many features of pytest. How do we decide which of those features to add to Django?
comment:4 by , 7 years ago
Triage Stage: | Unreviewed → Someday/Maybe |
---|
It would probably be best to reach a consensus on the DevelopersMailingList before proceeding.
comment:5 by , 4 years ago
Well it might generate quite lot of output
A valid concern, but normally more output is better for debugging. Most functions have a handful of locals. Pytest shows locals by default as well, so there's a precedent.
it potentially can output secrets that you don't want to leak out.
I don't think this is much of a concern, normally those with the ability to see test results already have the ability to see or run the test code, and thus find the secrets. Additionally, many test assertions already can output secrets.
There might be some risk of heading down the path of reimplementing many features of pytest.
I agree, we don't want Django's test framework to reinvent the wheel. But this feature is only providing the ability to use something already within unittest.
I'd be in favour of passing tb_locals=True
always, instead of adding a flag to make it optional. Using a flag would make the feature hard to discover feature and "yet another thing to think about." Users can override the test runner themselves as shown to undo this change if they want.
comment:6 by , 8 months ago
Cc: | added |
---|
Comment from jtiai on #django: