Skip to content

Commit f63a80e

Browse files
authored
Merge branch 'main' into enhance-vector-store-dataset
2 parents 809a9c5 + 84eb111 commit f63a80e

File tree

2 files changed

+62
-4
lines changed

2 files changed

+62
-4
lines changed

tests/model_explainability/evalhub/test_evalhub_health.py

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,22 @@
11
import pytest
22
from ocp_resources.route import Route
33

4-
from tests.model_explainability.evalhub.utils import validate_evalhub_health
4+
from tests.model_explainability.evalhub.utils import validate_evalhub_health, validate_evalhub_providers
55

66

77
@pytest.mark.parametrize(
88
"model_namespace",
99
[
1010
pytest.param(
11-
{"name": "test-evalhub-health"},
11+
{"name": "test-evalhub-health-providers"},
1212
),
1313
],
1414
indirect=True,
1515
)
1616
@pytest.mark.smoke
1717
@pytest.mark.model_explainability
18-
class TestEvalHubHealth:
19-
"""Tests for basic EvalHub service health and availability."""
18+
class TestEvalHub:
19+
"""Tests for basic EvalHub service health and providers."""
2020

2121
def test_evalhub_health_endpoint(
2222
self,
@@ -30,3 +30,19 @@ def test_evalhub_health_endpoint(
3030
token=current_client_token,
3131
ca_bundle_file=evalhub_ca_bundle_file,
3232
)
33+
34+
def test_evalhub_providers_list(
35+
self,
36+
current_client_token: str,
37+
evalhub_ca_bundle_file: str,
38+
evalhub_route: Route,
39+
model_namespace,
40+
) -> None:
41+
"""Test that the evaluations providers endpoint returns a non-empty list."""
42+
43+
validate_evalhub_providers(
44+
host=evalhub_route.host,
45+
token=current_client_token,
46+
ca_bundle_file=evalhub_ca_bundle_file,
47+
tenant=model_namespace.name,
48+
)

tests/model_explainability/evalhub/utils.py

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,31 @@
33
from tests.model_explainability.evalhub.constants import (
44
EVALHUB_HEALTH_PATH,
55
EVALHUB_HEALTH_STATUS_HEALTHY,
6+
EVALHUB_PROVIDERS_PATH,
67
)
78
from utilities.guardrails import get_auth_headers
89
from utilities.opendatahub_logger import get_logger
910

1011
LOGGER = get_logger(name=__name__)
1112

13+
TENANT_HEADER: str = "X-Tenant"
14+
15+
16+
def _build_headers(token: str, tenant: str | None = None) -> dict[str, str]:
17+
"""Build request headers with auth and optional tenant.
18+
19+
Args:
20+
token: Bearer token for authentication.
21+
tenant: Namespace for the X-Tenant header. Omitted if None.
22+
23+
Returns:
24+
Headers dict.
25+
"""
26+
headers = get_auth_headers(token=token)
27+
if tenant is not None:
28+
headers[TENANT_HEADER] = tenant
29+
return headers
30+
1231

1332
def validate_evalhub_health(
1433
host: str,
@@ -45,3 +64,26 @@ def validate_evalhub_health(
4564
f"Expected status '{EVALHUB_HEALTH_STATUS_HEALTHY}', got '{data['status']}'"
4665
)
4766
assert "timestamp" in data, "Health response missing 'timestamp' field"
67+
68+
69+
def validate_evalhub_providers(
70+
host: str,
71+
token: str,
72+
ca_bundle_file: str,
73+
tenant: str | None = None,
74+
) -> dict:
75+
"""Smoke test for the EvalHub providers endpoint."""
76+
url = f"https://{host}{EVALHUB_PROVIDERS_PATH}"
77+
78+
response = requests.get(
79+
url=url,
80+
headers=_build_headers(token=token, tenant=tenant),
81+
verify=ca_bundle_file,
82+
timeout=10,
83+
)
84+
response.raise_for_status()
85+
86+
data = response.json()
87+
assert data.get("items"), f"Smoke test failed: Providers list is empty for tenant {tenant}"
88+
89+
return data

0 commit comments

Comments
 (0)