Skip to content

Commit 44f83de

Browse files
committed
address review comment
Signed-off-by: Swati Mukund Bagal <sbagal@redhat.com>
1 parent ce1aba5 commit 44f83de

File tree

3 files changed

+74
-62
lines changed

3 files changed

+74
-62
lines changed

tests/model_serving/maas_billing/maas_subscription/conftest.py

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -203,6 +203,64 @@ def maas_headers_for_actor_api_key(maas_api_key_for_actor: str) -> dict[str, str
203203
return build_maas_headers(token=maas_api_key_for_actor)
204204

205205

206+
@pytest.fixture(scope="class")
207+
def api_key_bound_to_free_subscription(
208+
request_session_http: requests.Session,
209+
base_url: str,
210+
ocp_token_for_actor: str,
211+
maas_subscription_tinyllama_free: MaaSSubscription,
212+
maas_subscription_controller_enabled_latest: None,
213+
maas_gateway_api: None,
214+
maas_api_gateway_reachable: None,
215+
) -> Generator[str, Any, Any]:
216+
"""
217+
API key bound to the free subscription at mint time. Revoked on teardown.
218+
"""
219+
_, body = create_api_key(
220+
base_url=base_url,
221+
ocp_user_token=ocp_token_for_actor,
222+
request_session_http=request_session_http,
223+
api_key_name=f"e2e-auth-enforce-{generate_random_name()}",
224+
subscription=maas_subscription_tinyllama_free.name,
225+
)
226+
yield body["key"]
227+
revoke_api_key(
228+
request_session_http=request_session_http,
229+
base_url=base_url,
230+
key_id=body["id"],
231+
ocp_user_token=ocp_token_for_actor,
232+
)
233+
234+
235+
@pytest.fixture(scope="class")
236+
def api_key_bound_to_premium_subscription(
237+
request_session_http: requests.Session,
238+
base_url: str,
239+
ocp_token_for_actor: str,
240+
maas_subscription_tinyllama_premium: MaaSSubscription,
241+
maas_subscription_controller_enabled_latest: None,
242+
maas_gateway_api: None,
243+
maas_api_gateway_reachable: None,
244+
) -> Generator[str, Any, Any]:
245+
"""
246+
API key bound to the premium subscription at mint time. Revoked on teardown.
247+
"""
248+
_, body = create_api_key(
249+
base_url=base_url,
250+
ocp_user_token=ocp_token_for_actor,
251+
request_session_http=request_session_http,
252+
api_key_name=f"e2e-sub-enforce-{generate_random_name()}",
253+
subscription=maas_subscription_tinyllama_premium.name,
254+
)
255+
yield body["key"]
256+
revoke_api_key(
257+
request_session_http=request_session_http,
258+
base_url=base_url,
259+
key_id=body["id"],
260+
ocp_user_token=ocp_token_for_actor,
261+
)
262+
263+
206264
@pytest.fixture(scope="class")
207265
def maas_wrong_group_service_account_token(
208266
maas_api_server_url: str,

tests/model_serving/maas_billing/maas_subscription/test_maas_auth_enforcement.py

Lines changed: 8 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,9 @@
66

77
from tests.model_serving.maas_billing.maas_subscription.utils import (
88
chat_payload_for_url,
9-
create_api_key,
109
poll_expected_status,
11-
revoke_api_key,
1210
)
1311
from tests.model_serving.maas_billing.utils import build_maas_headers
14-
from utilities.general import generate_random_name
1512
from utilities.plugins.constant import RestHeader
1613

1714
LOGGER = structlog.get_logger(name=__name__)
@@ -35,41 +32,21 @@ class TestMaaSAuthPolicyEnforcementTinyLlama:
3532
def test_authorized_user_gets_200(
3633
self,
3734
request_session_http: requests.Session,
38-
base_url: str,
39-
ocp_token_for_actor: str,
4035
model_url_tinyllama_free: str,
41-
maas_subscription_tinyllama_free,
36+
api_key_bound_to_free_subscription: str,
4237
) -> None:
4338
"""
4439
Verify a free user with a subscription-bound API key can access the free model.
4540
"""
46-
_, body = create_api_key(
47-
base_url=base_url,
48-
ocp_user_token=ocp_token_for_actor,
41+
resp = poll_expected_status(
4942
request_session_http=request_session_http,
50-
api_key_name=f"e2e-auth-enforce-{generate_random_name()}",
51-
subscription=maas_subscription_tinyllama_free.name,
43+
model_url=model_url_tinyllama_free,
44+
headers=build_maas_headers(token=api_key_bound_to_free_subscription),
45+
payload=chat_payload_for_url(model_url=model_url_tinyllama_free),
46+
expected_statuses={200},
5247
)
53-
api_key = body["key"]
54-
key_id = body["id"]
55-
56-
try:
57-
resp = poll_expected_status(
58-
request_session_http=request_session_http,
59-
model_url=model_url_tinyllama_free,
60-
headers=build_maas_headers(token=api_key),
61-
payload=chat_payload_for_url(model_url=model_url_tinyllama_free),
62-
expected_statuses={200},
63-
)
64-
LOGGER.info(f"test_authorized_user_gets_200 -> POST {model_url_tinyllama_free} returned {resp.status_code}")
65-
assert resp.status_code == 200, f"Expected 200, got {resp.status_code}: {resp.text[:200]}"
66-
finally:
67-
revoke_api_key(
68-
request_session_http=request_session_http,
69-
base_url=base_url,
70-
key_id=key_id,
71-
ocp_user_token=ocp_token_for_actor,
72-
)
48+
LOGGER.info(f"test_authorized_user_gets_200 -> POST {model_url_tinyllama_free} returned {resp.status_code}")
49+
assert resp.status_code == 200, f"Expected 200, got {resp.status_code}: {resp.text[:200]}"
7350

7451
@pytest.mark.smoke
7552
def test_no_auth_header_gets_401(

tests/model_serving/maas_billing/maas_subscription/test_maas_sub_enforcement.py

Lines changed: 8 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,8 @@
66

77
from tests.model_serving.maas_billing.maas_subscription.utils import (
88
chat_payload_for_url,
9-
create_api_key,
10-
revoke_api_key,
119
)
1210
from tests.model_serving.maas_billing.utils import build_maas_headers
13-
from utilities.general import generate_random_name
1411

1512
LOGGER = structlog.get_logger(name=__name__)
1613

@@ -36,40 +33,20 @@ class TestSubscriptionEnforcementTinyLlama:
3633
def test_subscribed_user_gets_200(
3734
self,
3835
request_session_http: requests.Session,
39-
base_url: str,
40-
ocp_token_for_actor: str,
4136
model_url_tinyllama_premium: str,
42-
maas_subscription_tinyllama_premium,
37+
api_key_bound_to_premium_subscription: str,
4338
) -> None:
4439
"""
4540
Verify a premium user with a subscription-bound API key can access the premium model.
4641
"""
47-
_, body = create_api_key(
48-
base_url=base_url,
49-
ocp_user_token=ocp_token_for_actor,
50-
request_session_http=request_session_http,
51-
api_key_name=f"e2e-sub-enforce-{generate_random_name()}",
52-
subscription=maas_subscription_tinyllama_premium.name,
42+
resp = request_session_http.post(
43+
url=model_url_tinyllama_premium,
44+
headers=build_maas_headers(token=api_key_bound_to_premium_subscription),
45+
json=chat_payload_for_url(model_url=model_url_tinyllama_premium),
46+
timeout=60,
5347
)
54-
api_key = body["key"]
55-
key_id = body["id"]
56-
57-
try:
58-
resp = request_session_http.post(
59-
url=model_url_tinyllama_premium,
60-
headers=build_maas_headers(token=api_key),
61-
json=chat_payload_for_url(model_url=model_url_tinyllama_premium),
62-
timeout=60,
63-
)
64-
LOGGER.info(f"test_subscribed_user_gets_200 -> {resp.status_code}")
65-
assert resp.status_code == 200, f"Expected 200, got {resp.status_code}: {resp.text[:200]}"
66-
finally:
67-
revoke_api_key(
68-
request_session_http=request_session_http,
69-
base_url=base_url,
70-
key_id=key_id,
71-
ocp_user_token=ocp_token_for_actor,
72-
)
48+
LOGGER.info(f"test_subscribed_user_gets_200 -> {resp.status_code}")
49+
assert resp.status_code == 200, f"Expected 200, got {resp.status_code}: {resp.text[:200]}"
7350

7451
@pytest.mark.parametrize("ocp_token_for_actor", [{"type": "premium"}], indirect=True)
7552
def test_explicit_subscription_header_works(

0 commit comments

Comments
 (0)