New submission from Ben Darnell:

In python 3.2, unittest.main by default modifies the warning configuration if 
no -W options were given on the command line.  This undoes the effect of -bb, 
turning BytesWarning back into a warning instead of an error.

If both -bb and -Werror::BytesWarning are given, then unittest does not tamper 
with the warning configuration and byte operations raise errors as expected 
(but note that -Werror doesn't work in the current version of virtualenv due to 
https://github.com/pypa/virtualenv/issues/194 ).  unittest.main should check 
for the -bb flag in addition to sys.warnoptions.

Additionally, if warning filters were modified programmatically before calling 
unittest.main, unittest will still modify the configuration and potentially 
override the user's settings.  This is a rarer case, but I've done it before to 
avoid the problem with -W in a virtualenv 
(https://github.com/facebook/tornado/blob/master/tornado/test/runtests.py).  It 
would be good for there to be some way to tell unittest.main not to touch the 
warnings at all.  main(warnings=False) currently works, but that's relying on 
an implementation detail (any non-None, non-truthy value works), so either this 
should be documented or an official way to do the same thing should be added.

The attached test file demonstrates the problem:  when run with -bb, an warning 
is logged, but the test passes.

----------
files: testbb.py
messages: 168013
nosy: Ben.Darnell
priority: normal
severity: normal
status: open
title: unittest.main negates -bb option and programmatic warning configuration
type: behavior
versions: Python 3.2
Added file: http://bugs.python.org/file26771/testbb.py

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue15626>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to