tests: Embed test framework within OCL repository
Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
#
|
||||
# Copyright(c) 2019-2021 Intel Corporation
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
#
|
||||
|
||||
from log.base_log import BaseLogResult, BaseLog
|
||||
from log.group.html_group_log import HtmlGroupLog
|
||||
from datetime import datetime
|
||||
|
||||
|
||||
class HtmlChapterGroupLog(HtmlGroupLog):
|
||||
SET_RESULT = {
|
||||
BaseLogResult.PASSED: BaseLog.info,
|
||||
BaseLogResult.WORKAROUND: BaseLog.workaround,
|
||||
BaseLogResult.WARNING: BaseLog.warning,
|
||||
BaseLogResult.SKIPPED: BaseLog.skip,
|
||||
BaseLogResult.FAILED: BaseLog.error,
|
||||
BaseLogResult.BLOCKED: BaseLog.blocked,
|
||||
BaseLogResult.EXCEPTION: BaseLog.exception,
|
||||
BaseLogResult.CRITICAL: BaseLog.critical}
|
||||
|
||||
def __init__(self, html_base, cfg, begin_msg=None, id='ch0'):
|
||||
super().__init__(HtmlChapterGroupLog._factory, html_base, cfg, begin_msg, id)
|
||||
|
||||
@staticmethod
|
||||
def _factory(html_base, cfg, begin_msg, id):
|
||||
return HtmlChapterGroupLog(html_base, cfg, begin_msg, id)
|
||||
|
||||
def end_dir_group(self, ref_group):
|
||||
group = super().end_group()
|
||||
ref_container_id = ref_group._container.get('id')
|
||||
group._header.set('ondblclick', f"chapterClick('{ref_container_id}')")
|
||||
|
||||
def set_result(self, result):
|
||||
if self._successor is not None:
|
||||
self._successor.set_result(result)
|
||||
HtmlChapterGroupLog.SET_RESULT[result](self, "set result")
|
||||
|
||||
def end(self):
|
||||
result = super().end()
|
||||
exe_time = (datetime.now() - self._start_time).seconds
|
||||
self._cfg.group_chapter_end(exe_time, self._header, self._container, result)
|
||||
return result
|
139
test/functional/test-framework/log/group/html_group_log.py
Normal file
139
test/functional/test-framework/log/group/html_group_log.py
Normal file
@@ -0,0 +1,139 @@
|
||||
#
|
||||
# Copyright(c) 2019-2021 Intel Corporation
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
#
|
||||
|
||||
from datetime import datetime
|
||||
from log.base_log import BaseLog, BaseLogResult
|
||||
|
||||
|
||||
class HtmlGroupLog(BaseLog):
|
||||
def __init__(self, constructor, html_base_element, cfg, begin_message, id_):
|
||||
super().__init__(begin_message)
|
||||
self._successor = None
|
||||
self.__factory = constructor
|
||||
self.__log_main_store = html_base_element
|
||||
self._id = id_
|
||||
self._container = None
|
||||
self._header = None
|
||||
self.__msg_idx = 0
|
||||
self._start_time = datetime.now()
|
||||
self._cfg = cfg
|
||||
self._header_msg_type = type(begin_message)
|
||||
|
||||
def begin(self, message):
|
||||
policy = self._cfg.get_policy(type(message))
|
||||
self._header, self._container = policy.group_begin(self._id, message, self.__log_main_store)
|
||||
super().begin(message)
|
||||
|
||||
def get_step_id(self):
|
||||
if self._successor is not None:
|
||||
return self._successor.get_step_id()
|
||||
else:
|
||||
return f'step.{self._id}.{self.__msg_idx}'
|
||||
|
||||
def __add_test_step(self, message, result=BaseLogResult.PASSED):
|
||||
policy = self._cfg.get_policy(type(message))
|
||||
policy.standard(self.get_step_id(), message, result, self._container)
|
||||
self.__msg_idx += 1
|
||||
|
||||
def get_main_log_store(self):
|
||||
return self.__log_main_store
|
||||
|
||||
def start_group(self, message):
|
||||
self._header_msg_type = type(message)
|
||||
if self._successor is not None:
|
||||
result = self._successor.start_group(message)
|
||||
else:
|
||||
new_id = f"{self._id}.{self.__msg_idx}"
|
||||
self.__msg_idx += 1
|
||||
self._successor = self.__factory(self._container, self._cfg, message, new_id)
|
||||
self._successor.begin(message)
|
||||
result = self._successor
|
||||
return result
|
||||
|
||||
def end_group(self):
|
||||
if self._successor is not None:
|
||||
if self._successor._successor is None:
|
||||
self._successor.end()
|
||||
result = self._successor
|
||||
self._successor = None
|
||||
else:
|
||||
result = self._successor.end_group()
|
||||
else:
|
||||
self.end()
|
||||
result = self
|
||||
return result
|
||||
|
||||
def debug(self, message):
|
||||
if self._successor is not None:
|
||||
self._successor.debug(message)
|
||||
else:
|
||||
self.__add_test_step(message, BaseLogResult.DEBUG)
|
||||
return super().debug(message)
|
||||
|
||||
def info(self, message):
|
||||
if self._successor is not None:
|
||||
self._successor.info(message)
|
||||
else:
|
||||
self.__add_test_step(message)
|
||||
super().info(message)
|
||||
|
||||
def workaround(self, message):
|
||||
if self._successor is not None:
|
||||
self._successor.workaround(message)
|
||||
else:
|
||||
self.__add_test_step(message, BaseLogResult.WORKAROUND)
|
||||
super().workaround(message)
|
||||
|
||||
def warning(self, message):
|
||||
if self._successor is not None:
|
||||
self._successor.warning(message)
|
||||
else:
|
||||
self.__add_test_step(message, BaseLogResult.WARNING)
|
||||
super().warning(message)
|
||||
|
||||
def skip(self, message):
|
||||
if self._successor is not None:
|
||||
self._successor.skip(message)
|
||||
else:
|
||||
self.__add_test_step(message, BaseLogResult.SKIPPED)
|
||||
super().skip(message)
|
||||
|
||||
def error(self, message):
|
||||
if self._successor is not None:
|
||||
self._successor.error(message)
|
||||
else:
|
||||
self.__add_test_step(message, BaseLogResult.FAILED)
|
||||
super().error(message)
|
||||
|
||||
def blocked(self, message):
|
||||
if self._successor is not None:
|
||||
self._successor.blocked(message)
|
||||
else:
|
||||
self.__add_test_step(message, BaseLogResult.BLOCKED)
|
||||
super().blocked(message)
|
||||
|
||||
def critical(self, message):
|
||||
if self._successor is not None:
|
||||
self._successor.critical(message)
|
||||
else:
|
||||
self.__add_test_step(message, BaseLogResult.CRITICAL)
|
||||
super().critical(message)
|
||||
|
||||
def exception(self, message):
|
||||
if self._successor is not None:
|
||||
self._successor.exception(message)
|
||||
else:
|
||||
self.__add_test_step(message, BaseLogResult.EXCEPTION)
|
||||
super().exception(message)
|
||||
|
||||
def end(self):
|
||||
return super().end()
|
||||
|
||||
def get_current_group(self):
|
||||
if self._successor is not None:
|
||||
result = self._successor.get_current_group()
|
||||
else:
|
||||
result = self
|
||||
return result
|
@@ -0,0 +1,20 @@
|
||||
#
|
||||
# Copyright(c) 2019-2021 Intel Corporation
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
#
|
||||
|
||||
from log.group.html_group_log import HtmlGroupLog
|
||||
|
||||
|
||||
class HtmlIterationGroupLog(HtmlGroupLog):
|
||||
def __init__(self, html_base, cfg, begin_msg, id='itg0'):
|
||||
super().__init__(HtmlIterationGroupLog._factory, html_base, cfg, begin_msg, id)
|
||||
|
||||
@staticmethod
|
||||
def _factory(html_base, cfg, begin_msg, id):
|
||||
return HtmlIterationGroupLog(html_base, cfg, begin_msg, id)
|
||||
|
||||
def end(self):
|
||||
result = super().end()
|
||||
self._cfg.group_end(self._id, self._header, self._container, result)
|
||||
return result
|
Reference in New Issue
Block a user