def test_parse_cluster_info( address_param: Tuple[str, str, str], create_cluster_if_needed: bool, cookies: Optional[Dict[str, str]], metadata: Optional[Dict[str, str]], headers: Optional[Dict[str, str]], ): """ Test ray.dashboard.modules.job.sdk.parse_cluster_info for different format of addresses. """ mock_get_job_submission_client_cluster = Mock( return_value="Ray ClusterInfo") mock_module = Mock() mock_module.get_job_submission_client_cluster_info = Mock( return_value="Other module ClusterInfo") mock_import_module = Mock(return_value=mock_module) address, module_string, inner_address = address_param with patch.multiple( "ray.dashboard.modules.job.sdk", get_job_submission_client_cluster_info= mock_get_job_submission_client_cluster, ), patch.multiple("importlib", import_module=mock_import_module): if module_string == "ray": assert (parse_cluster_info( address, create_cluster_if_needed=create_cluster_if_needed, cookies=cookies, metadata=metadata, headers=headers, ) == "Ray ClusterInfo") mock_get_job_submission_client_cluster.assert_called_once_with( inner_address, create_cluster_if_needed=create_cluster_if_needed, cookies=cookies, metadata=metadata, headers=headers, ) elif module_string == "other_module": assert (parse_cluster_info( address, create_cluster_if_needed=create_cluster_if_needed, cookies=cookies, metadata=metadata, headers=headers, ) == "Other module ClusterInfo") mock_import_module.assert_called_once_with(module_string) mock_module.get_job_submission_client_cluster_info.assert_called_once_with( inner_address, create_cluster_if_needed=create_cluster_if_needed, cookies=cookies, metadata=metadata, headers=headers, )
def test_parse_cluster_info(address: str): if address.startswith("ray"): assert parse_cluster_info(address, False) == ClusterInfo( address="http" + address[address.index("://"):], cookies=None, metadata=None) elif address.startswith("http") or address.startswith("https"): assert parse_cluster_info(address, False) == ClusterInfo( address=address, cookies=None, metadata=None) else: with pytest.raises(RuntimeError): parse_cluster_info(address, False)
def test_parse_cluster_info(scheme: str, host: str, port: Optional[int]): address = f"{scheme}://{host}" if port is not None: address += f":{port}" final_port = port if port is not None else DEFAULT_DASHBOARD_PORT if scheme in {"http", "ray"}: assert parse_cluster_info(address, False) == ClusterInfo( address=f"http://{host}:{final_port}", cookies=None, metadata=None, headers=None, ) elif scheme == "https": assert parse_cluster_info(address, False) == ClusterInfo( address=f"https://{host}:{final_port}", cookies=None, metadata=None, headers=None, ) else: with pytest.raises(RuntimeError): parse_cluster_info(address, False)