Horizon's tests were recently broken by a change in the Ceilometer client that removed a deprecated exception. The exception was deprecated for a while already, but as it often is, nobody did the work of removing all references to it from Horizon before it was too late. Sure, in theory we should all be reading the release notes of all versions of all dependencies and acting upon things like this. In practice, if there is no warning generated in the unit tests, nobody is going to do anything about it.
So I sat down and started thinking about how to best generate a warning when someone is trying to catch a deprecated exception. I came up with this code: http://paste.openstack.org/show/114170/ It's not pretty -- it is based on the fact that the `except` statement has to do a subclass check on the exceptions it is catching. It requires a metaclass and a class decorator to work, and it uses a global variable. I'm sure it would be possible to do it in a little bit cleaner way. But at least it gives us the warning (sure, only if an exception is actually being thrown, but that's test coverage problem). I propose to do exception deprecating in this way in the future. -- Radomir Dopieralski _______________________________________________ OpenStack-dev mailing list OpenStack-dev@lists.openstack.org http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev