diff --git a/scripts/service.py b/scripts/service.py index 7f9e148cb..026eff4d2 100644 --- a/scripts/service.py +++ b/scripts/service.py @@ -401,6 +401,7 @@ def get_service_def() -> str: # [DO NOT MODIFY] Auto-generated by `hera.scripts.service.py` from urllib.parse import urljoin import requests +import os from hera.{module}.models import {imports} from hera.shared import global_config from hera.exceptions import exception_from_server_response @@ -434,7 +435,7 @@ def add_get_workflow_link(service_def: str) -> str: + """ def get_workflow_link(self, name: str) -> str: \"\"\"Returns the workflow link for the given workflow name.\"\"\" - return f\"{self.host}/workflows/{self.namespace}/{name}?tab=workflow\" + return os.path.join(self.host, f"workflows/{self.namespace}/{name}?tab=workflow") """ ) @@ -446,7 +447,7 @@ def add_get_cron_workflow_link(service_def: str) -> str: + """ def get_cron_workflow_link(self, name: str) -> str: \"\"\"Returns the link for the given cron workflow name.\"\"\" - return f\"{self.host}/cron-workflows/{self.namespace}/{name}\" + return os.path.join(self.host, f"cron-workflows/{self.namespace}/{name}") """ ) diff --git a/src/hera/workflows/service.py b/src/hera/workflows/service.py index 4056ef23e..fa50fcb01 100644 --- a/src/hera/workflows/service.py +++ b/src/hera/workflows/service.py @@ -1,5 +1,6 @@ """Interact with the REST service.""" # [DO NOT MODIFY] Auto-generated by `hera.scripts.service.py` +import os from typing import Optional, cast from urllib.parse import urljoin @@ -1303,11 +1304,11 @@ def get_input_artifact(self, name: str, node_id: str, artifact_name: str, namesp def get_workflow_link(self, name: str) -> str: """Returns the workflow link for the given workflow name.""" - return f"{self.host}/workflows/{self.namespace}/{name}?tab=workflow" + return os.path.join(self.host, f"workflows/{self.namespace}/{name}?tab=workflow") def get_cron_workflow_link(self, name: str) -> str: """Returns the link for the given cron workflow name.""" - return f"{self.host}/cron-workflows/{self.namespace}/{name}" + return os.path.join(self.host, f"cron-workflows/{self.namespace}/{name}") __all__ = ["WorkflowsService"] diff --git a/tests/test_unit/test_cron_workflow.py b/tests/test_unit/test_cron_workflow.py index 060d56595..fd671577d 100644 --- a/tests/test_unit/test_cron_workflow.py +++ b/tests/test_unit/test_cron_workflow.py @@ -84,3 +84,10 @@ def test_returns_expected_workflow_link(): workflows_service=WorkflowsService(host="hera.test", namespace="my-namespace"), ) assert w.get_workflow_link() == "hera.test/cron-workflows/my-namespace/test" + + w = CronWorkflow( + name="test", + schedule="* * * * *", + workflows_service=WorkflowsService(host="https://localhost:8443/argo/", namespace="my-namespace"), + ) + assert w.get_workflow_link() == "https://localhost:8443/argo/cron-workflows/my-namespace/test" diff --git a/tests/test_unit/test_workflow.py b/tests/test_unit/test_workflow.py index bf1a85eae..1f0abf7c4 100644 --- a/tests/test_unit/test_workflow.py +++ b/tests/test_unit/test_workflow.py @@ -116,3 +116,8 @@ def test_returns_expected_workflow_link(): w = Workflow(name="test", workflows_service=WorkflowsService(host="hera.test", namespace="my-namespace")) assert w.get_workflow_link() == "hera.test/workflows/my-namespace/test?tab=workflow" + + w = Workflow( + name="test", workflows_service=WorkflowsService(host="https://localhost:8443/argo/", namespace="my-namespace") + ) + assert w.get_workflow_link() == "https://localhost:8443/argo/workflows/my-namespace/test?tab=workflow"