Skip to content

Commit 27aa57f

Browse files
committed
WIP: timeout tests
1 parent d9293fa commit 27aa57f

File tree

3 files changed

+37
-3
lines changed

3 files changed

+37
-3
lines changed

sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/http/HttpClientHelper.java

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,14 @@ public HttpResponse execute(HttpRequest request, RequestOptions requestOptions)
7575
Objects.requireNonNull(requestOptions, "requestOptions");
7676

7777
com.azure.core.http.HttpRequest azureRequest = buildAzureRequest(request);
78-
com.azure.core.http.HttpResponse azureResponse = this.httpPipeline.sendSync(azureRequest, Context.NONE);
78+
79+
Context requestContext = Context.NONE;
80+
Timeout timeout = requestOptions.getTimeout();
81+
if (timeout != null && !timeout.read().isZero() && !timeout.read().isNegative()) {
82+
requestContext = requestContext.addData("azure-response-timeout", timeout.request());
83+
}
84+
85+
com.azure.core.http.HttpResponse azureResponse = this.httpPipeline.sendSync(azureRequest, requestContext);
7986
return new AzureHttpResponseAdapter(azureResponse);
8087
}
8188

@@ -98,8 +105,8 @@ public CompletableFuture<HttpResponse> executeAsync(HttpRequest request, Request
98105

99106
Context requestContext = new Context("azure-eagerly-read-response", true);
100107
Timeout timeout = requestOptions.getTimeout();
101-
if (timeout != null && !timeout.connect().isZero() && !timeout.connect().isNegative()) {
102-
requestContext = requestContext.addData("azure-response-timeout", timeout.connect());
108+
if (timeout != null && !timeout.read().isZero() && !timeout.read().isNegative()) {
109+
requestContext = requestContext.addData("azure-response-timeout", timeout.read());
103110
}
104111

105112
return this.httpPipeline.send(azureRequest, requestContext)

sdk/ai/azure-ai-agents/src/test/java/com/azure/ai/agents/ConversationsAsyncTests.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
import com.azure.core.util.logging.ClientLogger;
88
import com.azure.core.util.logging.LogLevel;
99
import com.openai.core.JsonValue;
10+
import com.openai.core.RequestOptions;
11+
import com.openai.core.Timeout;
1012
import com.openai.models.conversations.Conversation;
1113
import com.openai.models.conversations.ConversationDeletedResource;
1214
import com.openai.models.conversations.ConversationUpdateParams;
@@ -18,6 +20,7 @@
1820
import org.junit.jupiter.params.provider.MethodSource;
1921
import org.junit.platform.commons.util.StringUtils;
2022

23+
import java.time.Duration;
2124
import java.util.concurrent.ExecutionException;
2225

2326
import static com.azure.ai.agents.TestUtils.DISPLAY_NAME_WITH_ARGUMENTS;
@@ -133,4 +136,14 @@ public void basicItemCRUDOperations(HttpClient httpClient, AgentsServiceVersion
133136
assertEquals(conversationId, conversationWithDeletedItem.id());
134137

135138
}
139+
140+
@ParameterizedTest(name = DISPLAY_NAME_WITH_ARGUMENTS)
141+
@MethodSource("com.azure.ai.agents.TestUtils#getTestParameters")
142+
public void timeoutResponse(HttpClient httpClient, AgentsServiceVersion serviceVersion) throws ExecutionException, InterruptedException {
143+
ConversationsAsyncClient client = getConversationsAsyncClient(httpClient, serviceVersion);
144+
RequestOptions requestOptions = RequestOptions.builder().timeout(Timeout.builder().read(Duration.ofMillis(10)).build()).build();
145+
146+
// creation - conversation
147+
assertThrows(Exception.class, () -> client.getConversationServiceAsync().create(requestOptions).get());
148+
}
136149
}

sdk/ai/azure-ai-agents/src/test/java/com/azure/ai/agents/ConversationsTests.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55

66
import com.azure.core.http.HttpClient;
77
import com.openai.core.JsonValue;
8+
import com.openai.core.RequestOptions;
9+
import com.openai.core.Timeout;
810
import com.openai.models.conversations.*;
911
import com.openai.models.conversations.items.*;
1012
import com.openai.models.responses.EasyInputMessage;
@@ -13,6 +15,8 @@
1315
import org.junit.jupiter.params.provider.MethodSource;
1416
import org.junit.platform.commons.util.StringUtils;
1517

18+
import java.time.Duration;
19+
1620
import static com.azure.ai.agents.TestUtils.DISPLAY_NAME_WITH_ARGUMENTS;
1721
import static org.junit.jupiter.api.Assertions.*;
1822

@@ -115,4 +119,14 @@ public void basicItemCRUDOperations(HttpClient httpClient, AgentsServiceVersion
115119
assertNotNull(conversationWithDeletedItem);
116120
assertEquals(conversationId, conversationWithDeletedItem.id());
117121
}
122+
123+
@ParameterizedTest(name = DISPLAY_NAME_WITH_ARGUMENTS)
124+
@MethodSource("com.azure.ai.agents.TestUtils#getTestParameters")
125+
public void timeoutResponse(HttpClient httpClient, AgentsServiceVersion serviceVersion) {
126+
ConversationsClient client = getConversationsSyncClient(httpClient, serviceVersion);
127+
128+
RequestOptions requestOptions = RequestOptions.builder().timeout(Timeout.builder().read(Duration.ofMillis(10)).build()).build();
129+
// creation - conversation
130+
assertThrows(Exception.class, () -> client.getConversationService().create(requestOptions));
131+
}
118132
}

0 commit comments

Comments
 (0)