sick_scan_xd_simu_report.py
Go to the documentation of this file.
1 import json
2 import os
3 from enum import IntEnum
4 
5 def filter_logfile(logfile, keywords):
6  filtered_lines = []
7  with open(logfile, "r") as file_stream:
8  lines = file_stream.readlines()
9  for line in lines:
10  for keyword in keywords:
11  if line.find(keyword) >= 0:
12  filtered_lines.append(line)
13  break
14  return filtered_lines
15 
16 class SickScanXdStatus(IntEnum):
17  SUCCESS = 0,
18  ERROR = 1,
19  CONFIG_ERROR = 2,
20  TEST_ERROR = 3
21 
22 class SickScanXdMsgStatus(IntEnum):
23  ERROR = 1,
24  INFO = 2,
25  DEBUG = 3
26 
28  """
29  Generate test reports for sick_scan_xd simulations
30  """
31 
32  def __init__(self):
33  """
34  Initializing constructor
35  """
36  self.messages = []
37  self.exit_status = SickScanXdStatus.SUCCESS
38 
39  def set_exit_status(self, exit_status):
40  self.exit_status = exit_status
41 
42  def get_exit_status(self):
43  return self.exit_status
44 
45  def append_message(self, msg_status, message):
46  self.messages.append((msg_status, message))
47 
48  def append_file_links(self, msg_status, msg, filepaths):
49  message = msg
50  for filepath in filepaths:
51  message = message + f" [{filepath}]({filepath})"
52  self.append_message(msg_status, message)
53 
54  def print_messages(self, msg_status = [SickScanXdMsgStatus.ERROR, SickScanXdMsgStatus.INFO]):
55  for message in self.messages:
56  if message[0] in msg_status:
57  print(message[1])
58  if self.exit_status == SickScanXdStatus.SUCCESS: # success
59  print(f"sick_scan_xd_simu exit status: {int(self.exit_status)}, success\n")
60  else: # error
61  print(f"## ERROR sick_scan_xd_simu exit status: {int(self.exit_status)}, FAILED\n")
62 
63  def save_md_file(self, log_folder, report_filename, msg_status = [SickScanXdMsgStatus.ERROR, SickScanXdMsgStatus.INFO]):
64  with open(f"{log_folder}/{report_filename}", "w") as file_stream:
65  if self.exit_status == SickScanXdStatus.SUCCESS: # success
66  file_stream.write(f"# sick_scan_xd test report: TEST PASSED\n\n")
67  else: # error
68  file_stream.write(f"# sick_scan_xd test report: TEST FAILED\n\n")
69  for message in self.messages:
70  if message[0] in msg_status:
71  file_stream.write(f"{message[1]}\n\n")
72  if self.exit_status == SickScanXdStatus.SUCCESS: # success
73  file_stream.write(f"\n**sick_scan_xd_simu exit status: {int(self.exit_status)}, TEST PASSED**\n")
74  else: # error
75  file_stream.write(f"\n**## ERROR sick_scan_xd_simu exit status: {int(self.exit_status)}, TEST FAILED**\n")
76 
sick_scan_xd_simu_report.SickScanXdSimuReport.append_message
def append_message(self, msg_status, message)
Definition: sick_scan_xd_simu_report.py:45
sick_scan_xd_simu_report.SickScanXdSimuReport.__init__
def __init__(self)
Definition: sick_scan_xd_simu_report.py:32
roswrap::console::print
ROSCONSOLE_DECL void print(FilterBase *filter, void *logger, Level level, const char *file, int line, const char *function, const char *fmt,...) ROSCONSOLE_PRINTF_ATTRIBUTE(7
Don't call this directly. Use the ROS_LOG() macro instead.
sick_scan_xd_simu_report.SickScanXdSimuReport.messages
messages
Definition: sick_scan_xd_simu_report.py:36
sick_scan_xd_simu_report.SickScanXdSimuReport.save_md_file
def save_md_file(self, log_folder, report_filename, msg_status=[SickScanXdMsgStatus.ERROR, SickScanXdMsgStatus.INFO])
Definition: sick_scan_xd_simu_report.py:63
sick_scan_xd_simu_report.SickScanXdSimuReport
Definition: sick_scan_xd_simu_report.py:27
sick_scan_xd_simu_report.SickScanXdMsgStatus
Definition: sick_scan_xd_simu_report.py:22
sick_scan_xd_simu_report.SickScanXdStatus
Definition: sick_scan_xd_simu_report.py:16
sick_scan_xd_simu_report.SickScanXdSimuReport.get_exit_status
def get_exit_status(self)
Definition: sick_scan_xd_simu_report.py:42
roswrap::names::append
ROSCPP_DECL std::string append(const std::string &left, const std::string &right)
Append one name to another.
sick_scan_xd_simu_report.SickScanXdSimuReport.append_file_links
def append_file_links(self, msg_status, msg, filepaths)
Definition: sick_scan_xd_simu_report.py:48
sick_scan_xd_simu_report.SickScanXdSimuReport.exit_status
exit_status
Definition: sick_scan_xd_simu_report.py:37
sick_scan_xd_simu_report.SickScanXdSimuReport.print_messages
def print_messages(self, msg_status=[SickScanXdMsgStatus.ERROR, SickScanXdMsgStatus.INFO])
Definition: sick_scan_xd_simu_report.py:54
sick_scan_xd_simu_report.filter_logfile
def filter_logfile(logfile, keywords)
Definition: sick_scan_xd_simu_report.py:5
sick_scan_xd_simu_report.SickScanXdSimuReport.set_exit_status
def set_exit_status(self, exit_status)
Definition: sick_scan_xd_simu_report.py:39


sick_scan_xd
Author(s): Michael Lehning , Jochen Sprickerhof , Martin Günther
autogenerated on Fri Oct 25 2024 02:47:11