This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: Enable DeprecationWarnings by default when not explicit in unittest.main()
Type: enhancement Stage: resolved
Components: Library (Lib), Tests Versions: Python 3.9
process
Status: closed Resolution: not a bug
Dependencies: Superseder:
Assigned To: Nosy List: gregory.p.smith, ncoghlan, xtreak
Priority: normal Keywords:

Created on 2020-03-08 00:53 by gregory.p.smith, last changed 2022-04-11 14:59 by admin. This issue is now closed.

Messages (3)
msg363620 - (view) Author: Gregory P. Smith (gregory.p.smith) * (Python committer) Date: 2020-03-08 00:53
Recurring theme: The stdlib has the issue of DeprecationWarning being added to APIs we are changing or removing a few versions in the future yet we perceive that many people never actually bother to try checking their code for deprecation warnings.  Only raising issues with a documented, warned, planned in advance API change when it actually happens.

Could we reduce the chances of this by enabling DeprecationWarnings by default for processes started via unittest.main() and other common unittest entrypoints?  (other test frameworks like pytest should also consider this if they don't already; do we have any existing external implementations of this for inspiration?)

One issue with this is that some important warnings are at _parse_ time or _import_ time.  But we can deal with import time ones if we are able to have the unittest entrypoint re-exec the process with the same args but with warnings enabled.  (and _could_ surface parse time ones if we're willing to accept slower process startup by disabling use of pycs; i wouldn't go that far)

Related work: https://www.python.org/dev/peps/pep-0565/

has this idea already been discussed?  I don't remember and haven't searched backwards...
msg364281 - (view) Author: Nick Coghlan (ncoghlan) * (Python committer) Date: 2020-03-16 03:28
Issue 10535 says they should already be on by default in unittest.

I seem to recall checking that was still true when implementing the default warning filter changes in 3.7.
msg380563 - (view) Author: Gregory P. Smith (gregory.p.smith) * (Python committer) Date: 2020-11-08 23:29
my bad :)
History
Date User Action Args
2022-04-11 14:59:27adminsetgithub: 84073
2020-11-08 23:29:02gregory.p.smithsetstatus: open -> closed
resolution: not a bug
messages: + msg380563

stage: needs patch -> resolved
2020-03-16 13:38:34vstinnersetnosy: - vstinner
2020-03-16 03:28:28ncoghlansetmessages: + msg364281
2020-03-11 08:15:23xtreaksetnosy: + xtreak
2020-03-08 00:53:52gregory.p.smithcreate