On Thu, 08/24 08:21, Stefan Hajnoczi wrote:
> Tests should declare resources upfront in a with statement. Resources are
> automatically cleaned up whether the test passes or fails:
>
> with FilePath('test.img') as img_path,
> VM() as vm:
> ...test...
> # img_path is deleted and vm is shut down automatically
Looks good but still requires test writers to learn and remember to use FilePath
and with. These are still boilerplates. Here goes my personal oppinion, so may
not be plausible:
- For VM() maybe add an atexit in the launch() method also makes sure the VM is
eventually terminated.
This means vm.shutdown() is still needed in tearDown() if there are multiple
test methods and each of them expects a clean state, but that is probably
still less typing (and also indenting) than the with approach, and also easy
to remember (otherwise a test will fail).
- For scratch how about adding atexit in iotests.main to clean up everything in
the scratch directory? The rationale is similar to above.
Fam