On 04/04/2012 06:30 PM, Martin Kletzander wrote:
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'
This modification on params couldn't be passed in
screenshot_clean()
The params to screenshot_clean() is the same as the
screenshot() which
is from testcase config file.
+ 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)