
Hi all, so I have been thinking about this a little more, and I do not think there is a truly nice solution to the python bug: http://bugs.python.org/issue4180 (does not create problems for new pythons). However, I have been so annoyed by trying to test FutureWarnings or DeprecationWarnings in the past that I want *some* improvement. You can do quite a lot by adding some new features, but there are also some limitations. I think that we must be able to: o Filter out warnings on the global test run level. o Find all not explicitly filtered warnings during development easily. o We should be able to test any (almost any?) warnings, even those that would be filtered globally. The next line of considerations for me is, whether we want: o To be able to *print* warnings during test runs? (in release mode) o Be able to not repeat filtering of globally filtered warnings when filtering additional warnings in an individual test? o Be able to count warnings, but ignore other warnings (not the global ones, though). o Filter warnings by module? (might be hard to impossible) And one further option: o Could we accept that testing warnings is *only* possible reliable in Python 3.4+? It would however even mean that we have to fully *skip* tests that would ensure specific warnings to be given. The first things can be achieved setting all warnings to errors on the global level and trying to make the local tests as specific specific as possible. I could go ahead with it. There will likely be some uglier points, but it should work. They do not require funnier new hacks. For all I can see, the second bunch of things requires new features such as in my current PR. So, I want to know whether we can/want to go ahead with this kind of idea [1]. For me personally, I cannot accept we do not provide the first points. The second bunch, I would like some of them (I do not know about printing warnings in release mode?), and skipping tests on Python 2, seems to me even worse then ugly hacks. Getting there is a bit uglier (requires a new context manager for all I see), an I tend to think it is worth the trouble, but I don't think it is vital. In other words, I don't care too much about those points, but I want to get somewhere because I have been bitten often enough by the annoying and in my opinion simply unacceptable (on python 2) use of "ignore" warnings filters in tests. The current state makes finding warnings given in our own tests almost impossible, in the best case they will have to be fixed much much later when the change actually occurs, in the worst case we never find our own real bugs. So where to go? :) - Sebastian [1] I need to fix the module filtering point, the module filtering does not work reliably currently, I think it can be fixed at least 99.5%, but it is not too pretty (not that the user should notice).
participants (1)
-
Sebastian Berg