1515from semantic_kernel .functions import kernel_function
1616from tests .integration .agents .agent_test_base import AgentTestBase
1717
18+ openai_api_key_skip = pytest .mark .skip (reason = "Temporarily disabled due to invalid OpenAI API key (HTTP 401)." )
19+
1820
1921class WeatherPlugin :
2022 """A sample Mock weather plugin."""
@@ -99,7 +101,12 @@ async def responses_agent(self, request):
99101
100102 # region Simple 'Hello' messages tests
101103
102- @pytest .mark .parametrize ("responses_agent" , ["azure" , "openai" ], indirect = True , ids = ["azure" , "openai" ])
104+ @pytest .mark .parametrize (
105+ "responses_agent" ,
106+ ["azure" , pytest .param ("openai" , marks = openai_api_key_skip )],
107+ indirect = True ,
108+ ids = ["azure" , "openai" ],
109+ )
103110 async def test_get_response (self , responses_agent : OpenAIResponsesAgent , agent_test_base : AgentTestBase ):
104111 """Test get response of the agent."""
105112 response = await agent_test_base .get_response_with_retry (responses_agent , messages = "Hello" )
@@ -108,7 +115,12 @@ async def test_get_response(self, responses_agent: OpenAIResponsesAgent, agent_t
108115 assert response .message .content is not None
109116 assert "thread_id" in response .message .metadata
110117
111- @pytest .mark .parametrize ("responses_agent" , ["azure" , "openai" ], indirect = True , ids = ["azure" , "openai" ])
118+ @pytest .mark .parametrize (
119+ "responses_agent" ,
120+ ["azure" , pytest .param ("openai" , marks = openai_api_key_skip )],
121+ indirect = True ,
122+ ids = ["azure" , "openai" ],
123+ )
112124 async def test_get_response_with_thread (
113125 self , responses_agent : OpenAIResponsesAgent , agent_test_base : AgentTestBase
114126 ):
@@ -127,15 +139,25 @@ async def test_get_response_with_thread(
127139
128140 await thread .delete () if thread else None
129141
130- @pytest .mark .parametrize ("responses_agent" , ["azure" , "openai" ], indirect = True , ids = ["azure" , "openai" ])
142+ @pytest .mark .parametrize (
143+ "responses_agent" ,
144+ ["azure" , pytest .param ("openai" , marks = openai_api_key_skip )],
145+ indirect = True ,
146+ ids = ["azure" , "openai" ],
147+ )
131148 async def test_invoke (self , responses_agent : OpenAIResponsesAgent , agent_test_base : AgentTestBase ):
132149 """Test invoke of the agent."""
133150 async for response in responses_agent .invoke (messages = "Hello" ):
134151 assert isinstance (response .message , ChatMessageContent )
135152 assert response .message .role == AuthorRole .ASSISTANT
136153 assert response .message .content is not None
137154
138- @pytest .mark .parametrize ("responses_agent" , ["azure" , "openai" ], indirect = True , ids = ["azure" , "openai" ])
155+ @pytest .mark .parametrize (
156+ "responses_agent" ,
157+ ["azure" , pytest .param ("openai" , marks = openai_api_key_skip )],
158+ indirect = True ,
159+ ids = ["azure" , "openai" ],
160+ )
139161 async def test_invoke_with_thread (self , responses_agent : OpenAIResponsesAgent , agent_test_base : AgentTestBase ):
140162 """Test invoke of the agent with a thread."""
141163 thread = None
@@ -154,7 +176,12 @@ async def test_invoke_with_thread(self, responses_agent: OpenAIResponsesAgent, a
154176
155177 await thread .delete () if thread else None
156178
157- @pytest .mark .parametrize ("responses_agent" , ["azure" , "openai" ], indirect = True , ids = ["azure" , "openai" ])
179+ @pytest .mark .parametrize (
180+ "responses_agent" ,
181+ ["azure" , pytest .param ("openai" , marks = openai_api_key_skip )],
182+ indirect = True ,
183+ ids = ["azure" , "openai" ],
184+ )
158185 async def test_invoke_stream (self , responses_agent : OpenAIResponsesAgent , agent_test_base : AgentTestBase ):
159186 """Test invoke stream of the agent."""
160187 responses = await agent_test_base .get_invoke_stream_with_retry (responses_agent , messages = "Hello" )
@@ -164,7 +191,12 @@ async def test_invoke_stream(self, responses_agent: OpenAIResponsesAgent, agent_
164191 assert response .message .role == AuthorRole .ASSISTANT
165192 assert response .message .content is not None
166193
167- @pytest .mark .parametrize ("responses_agent" , ["azure" , "openai" ], indirect = True , ids = ["azure" , "openai" ])
194+ @pytest .mark .parametrize (
195+ "responses_agent" ,
196+ ["azure" , pytest .param ("openai" , marks = openai_api_key_skip )],
197+ indirect = True ,
198+ ids = ["azure" , "openai" ],
199+ )
168200 async def test_invoke_stream_with_thread (
169201 self , responses_agent : OpenAIResponsesAgent , agent_test_base : AgentTestBase
170202 ):
@@ -193,7 +225,7 @@ async def test_invoke_stream_with_thread(
193225 "responses_agent" ,
194226 [
195227 # Azure OpenAI Responses API doesn't yet support the web search tool
196- ( "openai" , {"enable_web_search" : True }),
228+ pytest . param (( "openai" , {"enable_web_search" : True }), marks = openai_api_key_skip ),
197229 ],
198230 indirect = ["responses_agent" ],
199231 ids = ["openai-web-search-get-response" ],
@@ -215,7 +247,7 @@ async def test_web_search_get_response(self, responses_agent: OpenAIResponsesAge
215247 "responses_agent" ,
216248 [
217249 ("azure" , {"enable_file_search" : True }),
218- ( "openai" , {"enable_file_search" : True }),
250+ pytest . param (( "openai" , {"enable_file_search" : True }), marks = openai_api_key_skip ),
219251 ],
220252 indirect = ["responses_agent" ],
221253 ids = ["azure-file-search-get-response" , "openai-file-search-get-response" ],
@@ -234,7 +266,7 @@ async def test_file_search_get_response(
234266 "responses_agent" ,
235267 [
236268 ("azure" , {"enable_file_search" : True }),
237- ( "openai" , {"enable_file_search" : True }),
269+ pytest . param (( "openai" , {"enable_file_search" : True }), marks = openai_api_key_skip ),
238270 ],
239271 indirect = ["responses_agent" ],
240272 ids = ["azure-file-search-invoke" , "openai-file-search-invoke" ],
@@ -253,7 +285,7 @@ async def test_file_search_invoke(self, responses_agent: OpenAIResponsesAgent, a
253285 "responses_agent" ,
254286 [
255287 ("azure" , {"enable_file_search" : True }),
256- ( "openai" , {"enable_file_search" : True }),
288+ pytest . param (( "openai" , {"enable_file_search" : True }), marks = openai_api_key_skip ),
257289 ],
258290 indirect = ["responses_agent" ],
259291 ids = ["azure-file-search-invoke-stream" , "openai-file-search-invoke-stream" ],
@@ -278,7 +310,7 @@ async def test_file_search_invoke_stream(
278310 "responses_agent" ,
279311 [
280312 ("azure" , {"enable_kernel_function" : True }),
281- ( "openai" , {"enable_kernel_function" : True }),
313+ pytest . param (( "openai" , {"enable_kernel_function" : True }), marks = openai_api_key_skip ),
282314 ],
283315 indirect = ["responses_agent" ],
284316 ids = ["azure-function-calling-get-response" , "openai-function-calling-get-response" ],
@@ -300,7 +332,7 @@ async def test_function_calling_get_response(
300332 "responses_agent" ,
301333 [
302334 ("azure" , {"enable_kernel_function" : True }),
303- ( "openai" , {"enable_kernel_function" : True }),
335+ pytest . param (( "openai" , {"enable_kernel_function" : True }), marks = openai_api_key_skip ),
304336 ],
305337 indirect = ["responses_agent" ],
306338 ids = ["azure-function-calling-invoke" , "openai-function-calling-invoke" ],
@@ -322,7 +354,7 @@ async def test_function_calling_invoke(self, responses_agent: OpenAIResponsesAge
322354 "responses_agent" ,
323355 [
324356 ("azure" , {"enable_kernel_function" : True }),
325- ( "openai" , {"enable_kernel_function" : True }),
357+ pytest . param (( "openai" , {"enable_kernel_function" : True }), marks = openai_api_key_skip ),
326358 ],
327359 indirect = ["responses_agent" ],
328360 ids = ["azure-function-calling-invoke-stream" , "openai-function-calling-invoke-stream" ],
@@ -349,7 +381,7 @@ async def test_function_calling_stream(self, responses_agent: OpenAIResponsesAge
349381 "responses_agent" ,
350382 [
351383 ("azure" , {"enable_structured_outputs" : True }),
352- ( "openai" , {"enable_structured_outputs" : True }),
384+ pytest . param (( "openai" , {"enable_structured_outputs" : True }), marks = openai_api_key_skip ),
353385 ],
354386 indirect = ["responses_agent" ],
355387 ids = ["azure-structured-outputs-get-response" , "openai-structured-outputs-get-response" ],
@@ -371,7 +403,7 @@ async def test_structured_outputs_get_response(
371403 "responses_agent" ,
372404 [
373405 ("azure" , {"enable_structured_outputs" : True }),
374- ( "openai" , {"enable_structured_outputs" : True }),
406+ pytest . param (( "openai" , {"enable_structured_outputs" : True }), marks = openai_api_key_skip ),
375407 ],
376408 indirect = ["responses_agent" ],
377409 ids = ["azure-structured-outputs-invoke" , "openai-structured-outputs-invoke" ],
@@ -395,7 +427,7 @@ async def test_structured_outputs_invoke(
395427 "responses_agent" ,
396428 [
397429 ("azure" , {"enable_structured_outputs" : True }),
398- ( "openai" , {"enable_structured_outputs" : True }),
430+ pytest . param (( "openai" , {"enable_structured_outputs" : True }), marks = openai_api_key_skip ),
399431 ],
400432 indirect = ["responses_agent" ],
401433 ids = ["azure-structured-outputs-invoke-stream" , "openai-structured-outputs-invoke-stream" ],
0 commit comments