[libvirt] [test-API PATCH 1/3] cleanup:make clean function optional
Guannan Ren
gren at redhat.com
Mon Apr 16 08:38:31 UTC 2012
On 04/16/2012 02:34 PM, Osier Yang wrote:
> s/cleanup:make/cleanup: Make/
>
> On 2012年04月16日 14:11, Guannan Ren wrote:
>> The patch make the writing of clean function optional
>> If a testcase makes testing environment dirty after running, it
>
> If a case dirties the testing environment,
>
>> must write a CASENAME_clean function to restore back the
>
> Could the $CASENAME_ be omitted? IIRC, the scripts under repos
> are imported by framework when executing. And thus we can invoke
> the cleanup functions by $script_name.cleanup.
If we add clean flag after testcase in config file like this, the
framework
will invoke the testa_clean() after running the testa() in testa.py
Note: we only add the clean for testcase which has _clean
function in it.
...
test:testa
options
value1
clean
...
>
>
>> testing environment, otherwise, the clean function could be omitted
>> ---
>> env_clear.py | 9 ++++-----
>> proxy.py | 7 ++++---
>> 2 files changed, 8 insertions(+), 8 deletions(-)
>>
>> diff --git a/env_clear.py b/env_clear.py
>> index 3efc9be..2e5bcf5 100644
>> --- a/env_clear.py
>> +++ b/env_clear.py
>> @@ -30,7 +30,7 @@ class EnvClear(object):
>> self.loglevel = loglevel
>>
>> mapper_obj = mapper.Mapper(activity)
>> - clean_pkg_casename_func =
>> mapper_obj.clean_package_casename_func_map()
>> + clean_pkg_casename_func =
>> mapper_obj.module_casename_cleanfunc_map()
>>
>> self.cases_ref_names = []
>> for case in clean_pkg_casename_func:
>> @@ -47,7 +47,7 @@ class EnvClear(object):
>> return retflag
>>
>> def env_clear(self):
>> - """ Run each clearing function with the corresponding
>> arguments """
>> + """ Run each clean function with the corresponding arguments
>> """
>>
>> envlog = log.EnvLog(self.logfile, self.loglevel)
>> logger = envlog.env_log()
>> @@ -60,8 +60,7 @@ class EnvClear(object):
>> case_params = self.cases_params_list[i]
>>
>> case_params['logger'] = logger
>> - self.cases_clearfunc_ref_dict[case_ref_name](case_params)
>> -
>> - del envlog
>> + if self.cases_clearfunc_ref_dict.has_key(case_ref_name):
>
> To be consistent, "clear" should be "clean".
>
>> +
>> self.cases_clearfunc_ref_dict[case_ref_name](case_params)
>>
>> return 0
>> diff --git a/proxy.py b/proxy.py
>> index 3c4cd63..fdbffd9 100644
>> --- a/proxy.py
>> +++ b/proxy.py
>> @@ -85,12 +85,13 @@ class Proxy(object):
>> var_func_names = dir(casemod_ref)
>>
>> key = module + ':' + casename + ':' + func
>> +
>> + # the clean function is optional, we get its reference
>> + # only if it exists in testcases
>
> s/testcases/test cases/, or "cases" is enough, we should have
> a consistent term across the project, but not different from
> here and there.
>
>> if func in var_func_names:
>> func_ref = getattr(casemod_ref, func)
>> func_dict[key] = func_ref
>> - else:
>> - raise exception.TestCaseError("clean function not
>> found in %s" % \
>> - (func, testcase_name))
>> +
>> return func_dict
>>
>> def get_params_variables(self):
>
Thanks for the review.
I will push it after these problems fixed.
Guannan Ren
More information about the libvir-list
mailing list