[libvirt] [test-API PATCH] Added screenshot test

Martin Kletzander mkletzan at redhat.com
Wed Apr 4 10:30:33 UTC 2012


On 04/04/2012 07:13 AM, Guannan Ren wrote:
> 
> 
>       Hi
> 
>          Currently, the testcase parser supports to cleanup testing
> environment
>          after each testcase finished. we only need to add a flag
> command 'clean'
>          after each testcase in testcase config, for example:
> 
>                       ...
>                       domain:screenshot
>                           guestname
>                               rhel6
>                           filename
>                               /tmp/filescreen
>                           screen
>                               0
>                       clean
> 
>                       domain: start
>                            guestname
>                       ...
> 
> 
>          the 'clean' flag will make the framework invoke the function
> named screenshot_clean
>          in screenshot.py.  That means each testcase needs two mandatory
> functions, one is the
>          main function, the other is main function name with '_clean'
> appended.
>          So I send a patch for this testcase as an example.  According
> to the above testcase config
>          the '/tmp/filescreen.ppm' file will be removed after running.
>          There are some other flags, I need to update the documentation
> sooner:)
> 
> ---
>  repos/domain/screenshot.py |    5 +++++
>  1 files changed, 5 insertions(+), 0 deletions(-)
> 
> diff --git a/repos/domain/screenshot.py b/repos/domain/screenshot.py
> index 9986cab..eeda2b5 100644
> --- a/repos/domain/screenshot.py
> +++ b/repos/domain/screenshot.py
> @@ -55,3 +55,8 @@ def screenshot(params):
>              conn.close()
> 
>      return ret
> +
> +def screenshot_clean(params):
> +    """clean testing environment"""
> +    filename = params['filename']
> +    os.system('rm -f %s.*' % filename)

The extension can be different every time, so we have to check that. I'd
prefer something like this:

diff --git a/repos/domain/screenshot.py b/repos/domain/screenshot.py
index 9986cab..c620085 100644
--- a/repos/domain/screenshot.py
+++ b/repos/domain/screenshot.py
@@ -39,8 +39,8 @@ def screenshot(params):
         st = conn.newStream(0)
         mime = dom.screenshot(st, params['screen'], 0)

-        ext = mimetypes.guess_extension(mime) or '.ppm'
-        filename = params['filename'] + ext
+        params['ext'] = mimetypes.guess_extension(mime) or '.ppm'
+        filename = params['filename'] + params['ext']
         f = file(filename, 'w')

         logger.debug('Saving screenshot into %s' % filename)
@@ -55,3 +55,8 @@ def screenshot(params):
             conn.close()

     return ret
+
+def screenshot_clean(params):
+    """clean testing environment"""
+    filename = params['filename'] + params['ext']
+    os.remove(filename)




More information about the libvir-list mailing list