diff --git a/src/test_workflow/dependency_installer_opensearch.py b/src/test_workflow/dependency_installer_opensearch.py index 2c7a8bf9e4..7b19d8e0aa 100644 --- a/src/test_workflow/dependency_installer_opensearch.py +++ b/src/test_workflow/dependency_installer_opensearch.py @@ -37,6 +37,6 @@ def install_build_dependencies(self, dependency_dict: dict, dest: str) -> None: """ os.makedirs(dest, exist_ok=True) for dependency, version in dependency_dict.items(): - path = f"{self.root_url}/builds/opensearch/plugins/{dependency}-{version}.zip" + path = os.path.join(self.root_url, f"builds/opensearch/plugins/{dependency}-{version}.zip") local_path = os.path.join(dest, f"{dependency}-{version}.zip") self.download_or_copy(path, local_path) diff --git a/tests/tests_test_workflow/test_dependency_installer_opensearch.py b/tests/tests_test_workflow/test_dependency_installer_opensearch.py index 9554686fb2..9713471036 100644 --- a/tests/tests_test_workflow/test_dependency_installer_opensearch.py +++ b/tests/tests_test_workflow/test_dependency_installer_opensearch.py @@ -138,3 +138,19 @@ def test_install_build_dependencies_remote(self, mock_request: Mock, mock_copyfi "https://ci.opensearch.org/x/y/builds/opensearch/plugins/opensearch-job-scheduler-1.1.0.0.zip", os.path.realpath(os.path.join(os.path.dirname(__file__), "opensearch-job-scheduler-1.1.0.0.zip")), ) + + @patch("os.makedirs") + @patch("shutil.copyfile") + @patch("urllib.request.urlretrieve") + def test_install_build_dependencies_remote_with_backslash_url(self, mock_request: Mock, mock_copyfile: Mock, mock_makedirs: Mock) -> None: + dependency_installer_url_with_backslash = DependencyInstallerOpenSearch( + "https://ci.opensearch.org/x/y/", BuildManifest.from_path(self.BUILD_MANIFEST), BundleManifest.from_path(self.DIST_MANIFEST_REMOTE) + ) + dependencies = dict({"opensearch-job-scheduler": "1.1.0.0"}) + dependency_installer_url_with_backslash.install_build_dependencies(dependencies, os.path.dirname(__file__)) + mock_makedirs.assert_called_with(os.path.dirname(__file__), exist_ok=True) + mock_copyfile.assert_not_called() + mock_request.assert_called_once_with( + "https://ci.opensearch.org/x/y/builds/opensearch/plugins/opensearch-job-scheduler-1.1.0.0.zip", + os.path.realpath(os.path.join(os.path.dirname(__file__), "opensearch-job-scheduler-1.1.0.0.zip")), + )