3 import testcase_base as base
4 import functest.utils.functest_utils as ft_utils
5 import functest.utils.functest_logger as ft_logger
8 class FeatureBase(base.TestcaseBase):
9 def __init__(self, project='functest', case='', repo='', cmd=''):
10 super(FeatureBase, self).__init__()
11 self.project_name = project
14 self.repo = self.get_conf('general.directories.{}'.format(repo))
15 self.result_file = self.get_result_file()
16 self.logger = ft_logger.Logger(project).getLogger()
18 def run(self, **kwargs):
20 self.start_time = time.time()
21 ret = ft_utils.execute_command(self.cmd, output_file=self.result_file)
22 self.stop_time = time.time()
24 self.parse_results(ret)
26 return base.TestcaseBase.EX_OK
28 def prepare(self, **kwargs):
31 def post(self, **kwargs):
34 def parse_results(self, ret):
35 exit_code = base.TestcaseBase.EX_OK
37 self.logger.info("{} OK".format(self.project_name))
38 self.criteria = 'PASS'
40 self.logger.info("{} FAILED".format(self.project_name))
41 exit_code = base.TestcaseBase.EX_RUN_ERROR
42 self.criteria = "FAIL"
46 def get_result_file(self):
47 dir = self.get_conf('general.directories.dir_results')
48 return "{}/{}.log".format(dir, self.project_name)
50 def log_results(self):
51 ft_utils.logger_test_results(self.project_name,
57 def get_conf(parameter):
58 return ft_utils.get_functest_config(parameter)