PYTHONWARNINGS=once py.test tests -s
I'm fairly sure that making that point explicitly would save an awful lot of folks a more painful upgrade, by making it more clear how to see upcoming issues without getting bitten by them and having to debug without the help of an associated warning.
Aside: I think the `.urls = ...` -> `@override_settings(ROOT_URLCONF=...)` change to test cases is missing from those notes?
SimpleTestCase.urls
is removed."I expected to have seen a deprecation warning when running the tests under 1.9, although wasn't exactly sure if and when those warnings would be displayed.
(The behavior still isn't ideal then as each instance of warning is output once every time for each occurrence, rather than once and once only)
The upshot of all this is that I believe many of our users are likely to be hitting problems with upgrades because they're not seeing deprecation warnings, and then get hit by a behavioral change that they weren't expecting to have to deal with, and end up having to debug the cause of.
For instance, a user is running under 1.9 and wants to upgrade to 1.10. Could we have a reliable and documented mechanism by which they'd first run the tests under 1.9, and have any Deprecation warnings treated as errors?
If they're running 1.8, could we document how to run the tests so that any PendingDeprecation warnings are treated as errors?
Could we collate instances of these warnings, rather than displaying them in an overly verbose fashion?
An example of the sort of thing we could do might be to have an environment variable `DJANGO_UPGRADE`, that if set to a version number, forces the relevant class of deprecation / pending deprecation warnings to be written to a log file or similar. I don't think that interface is quite right, but suggesting it as an example of how we might make our user's lives easier.