Skip to content

Commit

Permalink
Update ReportPortal Extension
Browse files Browse the repository at this point in the history
- converting the overloaded static methods to functions so package build check passes
- fixed appending the description on the highest level
  • Loading branch information
4N0body5 committed Mar 11, 2024
1 parent 9e086b3 commit 885f5db
Showing 1 changed file with 39 additions and 35 deletions.
74 changes: 39 additions & 35 deletions tmt/steps/report/reportportal.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,33 +12,33 @@
from tmt.utils import field, yaml_to_dict


def _flag_env_to_default(option: str, default: bool) -> bool:
env_var = 'TMT_PLUGIN_REPORT_REPORTPORTAL_' + option.upper()
if env_var not in os.environ:
return default
return bool(os.getenv(env_var) == '1')


@overload
def _str_env_to_default(option: str, default: None) -> Optional[str]:
pass


@overload
def _str_env_to_default(option: str, default: str) -> str:
pass


def _str_env_to_default(option: str, default: Optional[str]) -> Optional[str]:
env_var = 'TMT_PLUGIN_REPORT_REPORTPORTAL_' + option.upper()
if env_var not in os.environ or os.getenv(env_var) is None:
return default
return str(os.getenv(env_var))


@dataclasses.dataclass
class ReportReportPortalData(tmt.steps.report.ReportStepData):

@staticmethod
def _flag_env_to_default(option: str, default: bool) -> bool:
env_var = 'TMT_PLUGIN_REPORT_REPORTPORTAL_' + option.upper()
if env_var not in os.environ:
return default
return bool(os.getenv(env_var) == '1')

@overload
@staticmethod
def _str_env_to_default(option: str, default: None) -> Optional[str]:
pass

@overload
@staticmethod
def _str_env_to_default(option: str, default: str) -> str:
pass

@staticmethod
def _str_env_to_default(option: str, default: Optional[str]) -> Optional[str]:
env_var = 'TMT_PLUGIN_REPORT_REPORTPORTAL_' + option.upper()
if env_var not in os.environ or os.getenv(env_var) is None:
return default
return str(os.getenv(env_var))

url: Optional[str] = field(
option="--url",
metavar="URL",
Expand Down Expand Up @@ -155,11 +155,6 @@ def _str_env_to_default(option: str, default: Optional[str]) -> Optional[str]:
default_factory=dict
)

# todo:
# check description
# add files
# create tests


@tmt.steps.provides_method("reportportal")
class ReportReportPortal(tmt.steps.report.ReportPlugin[ReportReportPortalData]):
Expand Down Expand Up @@ -305,6 +300,14 @@ def get_rp_api(self, session: requests.Session, data_path: str) -> requests.Resp
self.handle_response(response)
return response

def append_description(self, curr_description: str) -> str:
if self.data.launch_description:
if curr_description:
curr_description += "<br>" + self.data.launch_description
else:
curr_description = self.data.launch_description
return curr_description

def go(self) -> None:
"""
Report test results to the endpoint
Expand Down Expand Up @@ -376,11 +379,12 @@ def go(self) -> None:

if suite_per_plan:
launch_description = self.data.launch_description
suite_description = self.step.plan.summary
suite_description = self.step.plan.summary or ""
if (self.data.upload_to_launch and suite_per_plan):
suite_description = self.append_description(suite_description)
else:
launch_description = self.step.plan.summary or ""
if self.data.launch_description:
launch_description += " " + self.data.launch_description
launch_description = self.append_description(launch_description)

# Communication with RP instance
with tmt.utils.retry_session() as session:
Expand Down Expand Up @@ -475,9 +479,9 @@ def go(self) -> None:
if create_test:

test_description = test.summary or ""
if (self.data.upload_to_launch or self.data.upload_to_suite) \
and self.data.launch_description:
test_description += " " + self.data.launch_description
if ((self.data.upload_to_launch and launch_per_plan)
or self.data.upload_to_suite):
test_description = self.append_description(test_description)

# Create a test item
self.info("test", test.name, color="cyan")
Expand Down

0 comments on commit 885f5db

Please sign in to comment.