libvirt-test-api: pass proxy_obj to generator, and support dict type of optional_params src/generator.py: call xml_file_to_str() src/proxy.py: get the optional_params of a testcase --- libvirt-test-api | 3 ++- src/generator.py | 7 ++++++- src/proxy.py | 17 +++++++++++++++++ 3 files changed, 25 insertions(+), 2 deletions(-) diff --git a/libvirt-test-api b/libvirt-test-api index 373e5c6..a7c9138 100644 --- a/libvirt-test-api +++ b/libvirt-test-api @@ -147,6 +147,7 @@ class Main(object): logfile = os.path.join('log/%s' % testrunid, logname) procs.append(generator.FuncGen(cases_func_ref_dict, cases_checkfunc_ref_dict, + proxy_obj, activity, logfile, testrunid, @@ -244,7 +245,7 @@ class Main(object): string += " " * 8 + p.upper() + "\n" for p in optional_params: string += " " * 4 + "[" + p + "]\n" - string += " " * 8 + p.upper() + "\n" + string += " " * 8 + optional_params[p] + "\n" if proxy_obj.has_clean_function(key): string += "clean\n" diff --git a/src/generator.py b/src/generator.py index e3bc344..5d7bc96 100644 --- a/src/generator.py +++ b/src/generator.py @@ -25,6 +25,7 @@ import os import traceback from src import mapper +from src.testcasexml import xml_file_to_str from utils import log from utils import format from utils import env_parser @@ -41,12 +42,14 @@ class FuncGen(object): """ To generate a callable testcase""" def __init__(self, cases_func_ref_dict, cases_checkfunc_ref_dict, + proxy_obj, activity, logfile, testrunid, testid, log_xml_parser, lockfile, loglevel): self.cases_func_ref_dict = cases_func_ref_dict self.cases_checkfunc_ref_dict = cases_checkfunc_ref_dict + self.proxy_obj = proxy_obj self.logfile = logfile self.testrunid = testrunid self.testid = testid @@ -131,7 +134,7 @@ class FuncGen(object): case_start_time = time.strftime("%Y-%m-%d %H:%M:%S") - ret = 0 + ret = 1 try: try: if mod_case_func == 'sleep': @@ -140,6 +143,8 @@ class FuncGen(object): time.sleep(int(sleepsecs)) ret = 0 else: + xml_file_to_str(self.proxy_obj, mod_case, case_params) + ret = self.cases_func_ref_dict[mod_case_func](case_params) # In the case where testcase return -1 on error if ret < 0: ret = 1 diff --git a/src/proxy.py b/src/proxy.py index 623fa43..fe50fff 100644 --- a/src/proxy.py +++ b/src/proxy.py @@ -130,6 +130,23 @@ class Proxy(object): ("required_params or optional_params not found in %s" % modcase) return case_params + def get_testcase_params(self, modcase): + """ Return a pair of required_params and optional_params + for a testcase + """ + if not modcase: + return None + + casemod_ref = self.testcase_ref_dict[modcase] + var_func_names = dir(casemod_ref) + + if 'required_params' not in var_func_names \ + or 'optional_params' not in var_func_names: + raise exception.TestCaseError\ + ("required_params or optional_params not found in %s" % modcase) + + return [casemod_ref.required_params, casemod_ref.optional_params] + def has_clean_function(self, testcase_name): """ Return true if the testcase have clean function """ -- 1.7.7.5 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list