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

Reply via email to