44import requests
55from simple_logger .logger import get_logger
66
7- from tests .model_serving .model_server .maas_billing .maas_subscription .utils import chat_payload_for_url
7+ from tests .model_serving .model_server .maas_billing .maas_subscription .utils import (
8+ chat_payload_for_url ,
9+ poll_expected_status ,
10+ )
811from tests .model_serving .model_server .maas_billing .utils import build_maas_headers
912from utilities .plugins .constant import RestHeader
1013
2427 "maas_subscription_tinyllama_premium" ,
2528)
2629class TestMaaSAuthPolicyEnforcementTinyLlama :
27- @pytest .mark .sanity
30+ @pytest .mark .smoke
2831 @pytest .mark .parametrize ("ocp_token_for_actor" , [{"type" : "free" }], indirect = True )
2932 def test_authorized_user_gets_200 (
3033 self ,
3134 request_session_http : requests .Session ,
3235 model_url_tinyllama_free : str ,
33- ocp_token_for_actor : str ,
36+ maas_headers_for_actor_api_key : dict [ str , str ] ,
3437 ) -> None :
35- headers = build_maas_headers (token = ocp_token_for_actor )
3638 payload = chat_payload_for_url (model_url = model_url_tinyllama_free )
3739
38- resp = request_session_http .post (
39- url = model_url_tinyllama_free ,
40- headers = headers ,
41- json = payload ,
42- timeout = 60 ,
40+ resp = poll_expected_status (
41+ request_session_http = request_session_http ,
42+ model_url = model_url_tinyllama_free ,
43+ headers = maas_headers_for_actor_api_key ,
44+ payload = payload ,
45+ expected_statuses = {200 },
4346 )
47+
4448 LOGGER .info (f"test_authorized_user_gets_200 -> POST { model_url_tinyllama_free } returned { resp .status_code } " )
4549 assert resp .status_code == 200 , f"Expected 200, got { resp .status_code } : { resp .text [:200 ]} "
4650
47- @pytest .mark .sanity
51+ @pytest .mark .smoke
4852 def test_no_auth_header_gets_401 (
4953 self ,
5054 request_session_http : requests .Session ,
5155 model_url_tinyllama_free : str ,
5256 ) -> None :
5357 payload = chat_payload_for_url (model_url = model_url_tinyllama_free )
5458
55- resp = request_session_http .post (
56- url = model_url_tinyllama_free ,
59+ resp = poll_expected_status (
60+ request_session_http = request_session_http ,
61+ model_url = model_url_tinyllama_free ,
5762 headers = RestHeader .HEADERS ,
58- json = payload ,
59- timeout = 60 ,
63+ payload = payload ,
64+ expected_statuses = { 401 } ,
6065 )
6166 LOGGER .info (f"test_no_auth_header_gets_401 -> POST { model_url_tinyllama_free } returned { resp .status_code } " )
6267 assert resp .status_code == 401 , f"Expected 401, got { resp .status_code } : { resp .text [:200 ]} "
6368
64- @pytest .mark .sanity
69+ @pytest .mark .smoke
6570 def test_invalid_token_gets_401 (
6671 self ,
6772 request_session_http : requests .Session ,
@@ -76,10 +81,11 @@ def test_invalid_token_gets_401(
7681 json = payload ,
7782 timeout = 60 ,
7883 )
84+
7985 LOGGER .info (f"test_invalid_token_gets_401 -> POST { model_url_tinyllama_free } returned { resp .status_code } " )
80- assert resp .status_code == 401 , f"Expected 401, got { resp .status_code } : { resp .text [:200 ]} "
86+ assert resp .status_code in ( 401 , 403 ), f"Expected 401 or 403 , got { resp .status_code } : { ( resp .text or '' ) [:200 ]} "
8187
82- @pytest .mark .sanity
88+ @pytest .mark .smoke
8389 def test_wrong_group_sa_denied_on_premium_model (
8490 self ,
8591 request_session_http : requests .Session ,
@@ -88,11 +94,12 @@ def test_wrong_group_sa_denied_on_premium_model(
8894 ) -> None :
8995 payload = chat_payload_for_url (model_url = model_url_tinyllama_premium )
9096
91- resp = request_session_http .post (
92- url = model_url_tinyllama_premium ,
97+ resp = poll_expected_status (
98+ request_session_http = request_session_http ,
99+ model_url = model_url_tinyllama_premium ,
93100 headers = maas_headers_for_wrong_group_sa ,
94- json = payload ,
95- timeout = 60 ,
101+ payload = payload ,
102+ expected_statuses = { 403 } ,
96103 )
97104 LOGGER .info (
98105 "test_wrong_group_sa_denied_on_premium_model -> "
0 commit comments