Move test-framework to its own repository

Signed-off-by: Robert Baldyga <baldyga.r@gmail.com>
This commit is contained in:
Robert Baldyga
2023-05-01 18:55:34 +02:00
commit 40f08a369a
89 changed files with 9914 additions and 0 deletions

0
log/group/__init__.py Normal file
View File

View File

@@ -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
log/group/html_group_log.py Normal file
View 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

View File

@@ -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