Message 85562 - Python tracker (original) (raw)
I'm in favour of running clean ups afterwards on the basis that it makes things possible that would otherwise not be possible.
If your cleanup relies on something which has been set up during setUp and will be dropped during tearDown (a database connection, a temp dir, an ssh session, whatever), then the cleanup must be run before the teardown.
But this is a function of whichever way we do it - and so not an argument for one way or the other. Conversely if you write a tearDown that relies on resources existing that will later be removed by a clean up then clean ups must be run afterwards.
The point is that sequence 2 can already be emulated using careful "try...finally" in tearDown, while sequence 1 cannot. That is, sequence 1 needs the addCleanup, while for sequence 2 it is a mere additional convenience.
Which is an argument in favour of running clean ups afterwards.