Import TestCasesBase from functest dir
[functest.git] / core / TestCasesBase.py
1 #!/usr/bin/env python
2
3 import os
4
5 import functest.utils.functest_logger as ft_logger
6 import functest.utils.functest_utils as ft_utils
7
8
9 class TestCasesBase(object):
10
11     EX_OK = os.EX_OK
12     EX_RUN_ERROR = os.EX_SOFTWARE
13     EX_PUSH_TO_DB_ERROR = os.EX_SOFTWARE - 1
14
15     logger = ft_logger.Logger(__name__).getLogger()
16
17     project = "functest"
18
19     def __init__(self):
20         self.details = {}
21         self.case_name = ""
22         self.criteria = ""
23         self.start_time = ""
24         self.stop_time = ""
25
26     def run(self, **kwargs):
27         self.logger.error("Run must be implemented")
28         return TestCasesBase.EX_RUN_ERROR
29
30     def push_to_db(self):
31         try:
32             assert self.case_name
33             assert self.criteria
34             assert self.start_time
35             assert self.stop_time
36             if ft_utils.push_results_to_db(
37                     TestCasesBase.project, self.case_name, self.start_time,
38                     self.stop_time, self.criteria, self.details):
39                 self.logger.info("The results were successfully pushed to DB")
40                 return TestCasesBase.EX_OK
41             else:
42                 self.logger.error("The results cannot be pushed to DB")
43                 return TestCasesBase.EX_PUSH_TO_DB_ERROR
44         except Exception:
45             self.logger.exception("The results cannot be pushed to DB")
46             return TestCasesBase.EX_PUSH_TO_DB_ERROR