PlatSim_Genova/TestEnvironment/env/leo_grifo_core.py
2026-01-30 16:38:33 +01:00

65 lines
2.1 KiB
Python

import logging
# Uncomment for debug purpose.
# Use 'all' or specific 'io', 'dsp', 'msgproc', 'secmod', 'mibbuild', 'mibview', 'mibinstrum', 'acl', 'proxy', 'app'
# debug.setLogger(debug.Debug('all'))
#
# Main Class used for recording results
#
class RecordTestStep:
class StepData:
def __init__(self, _desc, _result, _error, _expected):
self.step = dict()
self.step['desc'] = _desc
self.step['result'] = _result
self.step['error'] = _error
self.step['expected'] = _expected
def get(self):
return self.step
class SessionData:
def __init__(self, _desc, _pass, _error, _first, _last):
self.test = dict()
self.test['name'] = _desc
self.test['pass'] = _pass
self.test['fail'] = _error
self.idx_first = _first
self.idx_last = _last
def get(self):
return self.test
def __init__(self):
self.__step_data = []
self.__test_session = []
self.prev_idx = 0
def add_step(self, desc, result, error, expected):
self.__step_data.append(self.StepData(desc, result, error, expected).get())
def get_db_session(self):
return self.__test_session
def get_db(self):
return self.__step_data
def close_session(self, name: str):
db_step = self.__step_data[self.prev_idx:]
te = lambda x: 1 if x['result'] and x['error'] is None and x['expected'] is None else 0
va = lambda x, y: 1 if x['result'] == y else 0
text = sum(te(i) for i in db_step)
ok = sum(va(i, True) for i in db_step) - text
nok = sum(va(i, False) for i in db_step)
idx = len(self.__step_data)
self.__test_session.append(self.SessionData(name, ok, nok, self.prev_idx, idx))
self.prev_idx = idx
if (ok + nok) > 0:
logging.warning('Session: {}\r\nTotal Step {}: Success {} ({:.02f}%), Failed {} ({:.02f}%),'
.format(name, ok + nok, ok, 100 * ok / (ok + nok), nok, 100 * nok / (ok + nok)))
theRecorder = RecordTestStep()