import logging from traceback import print_stack from ..core import InitDriver from ..utils import Logger class TestStatus(InitDriver): log = Logger(logging.DEBUG) def __init__(self, driver): """ Inits CheckPoint class """ super(TestStatus, self).__init__(driver) self.resultList = [] def __set_result(self, result, result_message): try: if result is not None: if result: self.resultList.append("PASS") self.log.info("### VERIFICATION SUCCESSFUL :: " + result_message) else: self.resultList.append("FAIL") self.log.error("### VERIFICATION FAILED :: " + result_message) self.take_screenshot(result_message) else: self.resultList.append("FAIL") self.log.error("### VERIFICATION FAILED :: " + result_message) self.take_screenshot(result_message) except Exception: self.resultList.append("FAIL") self.log.error("### Exception Occurred !!!") self.take_screenshot(result_message) print_stack() def mark(self, result, result_message): """ Mark the result of the verification point in a test case """ self.__set_result(result, result_message) # TODO: Function name should be lowercase def markFinal(self, result, result_message): """ Mark the final result of the verification point in a test case This needs to be called at least once in a test case This should be final test status of the test case """ self.__set_result(result, result_message) if "FAIL" in self.resultList: self.resultList.clear() assert False, result_message else: self.resultList.clear() assert True