3 import testcase as base
4 import functest.utils.functest_utils as ft_utils
5 import functest.utils.functest_logger as ft_logger
6 from functest.utils.constants import CONST
9 class Feature(base.TestCase):
11 def __init__(self, **kwargs):
12 super(Feature, self).__init__(**kwargs)
13 self.cmd = kwargs.get('cmd', '')
14 repo = kwargs.get('repo', '')
15 self.repo = CONST.__getattribute__(repo)
16 self.result_file = self.get_result_file()
17 self.logger = ft_logger.Logger(self.project_name).getLogger()
19 def run(self, **kwargs):
21 self.start_time = time.time()
23 self.stop_time = time.time()
25 self.parse_results(ret)
27 self.logger.info("Test result is stored in '%s'" % self.result_file)
28 return base.TestCase.EX_OK
32 Executer method that can be overwritten
33 By default it executes a shell command.
35 return ft_utils.execute_command(self.cmd, output_file=self.result_file)
37 def prepare(self, **kwargs):
40 def post(self, **kwargs):
43 def parse_results(self, ret):
44 exit_code = base.TestCase.EX_OK
46 self.logger.info("{} OK".format(self.project_name))
47 self.criteria = 'PASS'
49 self.logger.info("{} FAILED".format(self.project_name))
50 exit_code = base.TestCase.EX_RUN_ERROR
51 self.criteria = "FAIL"
55 def get_result_file(self):
56 return "{}/{}.log".format(CONST.dir_results, self.project_name)
58 def log_results(self):
59 ft_utils.logger_test_results(self.project_name,