Skip to content

Commit 1c38e0f

Browse files
committed
Handle transient Gemini availability test failures
1 parent e83f734 commit 1c38e0f

25 files changed

Lines changed: 74 additions & 48 deletions

src/tests/IntegrationTests/Examples/ChatClient.FiveRandomWords.Streaming.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,9 +48,9 @@ public async Task ChatClient_FiveRandomWords_Streaming()
4848

4949
string.Concat(deltas).Should().NotBeNullOrWhiteSpace();
5050
}
51-
catch (ApiException ex) when (ex.StatusCode is System.Net.HttpStatusCode.TooManyRequests)
51+
catch (ApiException ex) when (IsTransientAvailabilityIssue(ex))
5252
{
53-
Assert.Inconclusive("Rate limited: " + ex.Message[..Math.Min(ex.Message.Length, 200)]);
53+
AssertTransientAvailability(ex);
5454
}
5555
}
5656
}

src/tests/IntegrationTests/Examples/ChatClient.FiveRandomWords.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,9 @@ public async Task ChatClient_FiveRandomWords()
3434
response.Messages[0].Role.Should().Be(ChatRole.Assistant);
3535
response.Messages[0].Text.Should().NotBeNullOrWhiteSpace();
3636
}
37-
catch (ApiException ex) when (ex.StatusCode is System.Net.HttpStatusCode.TooManyRequests)
37+
catch (ApiException ex) when (IsTransientAvailabilityIssue(ex))
3838
{
39-
Assert.Inconclusive("Rate limited: " + ex.Message[..Math.Min(ex.Message.Length, 200)]);
39+
AssertTransientAvailability(ex);
4040
}
4141
}
4242
}

src/tests/IntegrationTests/Examples/ChatClient.ToolCalling.MultiTurn.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,9 +77,9 @@ public async Task ChatClient_ToolCalling_MultiTurn()
7777
finalResponse.Text.Should().NotBeNullOrWhiteSpace();
7878
finalResponse.Text.Should().Contain("72", "the response should include information from the tool result");
7979
}
80-
catch (ApiException ex) when (ex.StatusCode is System.Net.HttpStatusCode.TooManyRequests)
80+
catch (ApiException ex) when (IsTransientAvailabilityIssue(ex))
8181
{
82-
Assert.Inconclusive("Rate limited: " + ex.Message[..Math.Min(ex.Message.Length, 200)]);
82+
AssertTransientAvailability(ex);
8383
}
8484
}
8585
}

src/tests/IntegrationTests/Examples/ChatClient.ToolCalling.SingleTurn.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,9 @@ public async Task ChatClient_ToolCalling_SingleTurn()
4545
functionCall!.Name.Should().Be("get_weather");
4646
functionCall.Arguments.Should().NotBeNull();
4747
}
48-
catch (ApiException ex) when (ex.StatusCode is System.Net.HttpStatusCode.TooManyRequests)
48+
catch (ApiException ex) when (IsTransientAvailabilityIssue(ex))
4949
{
50-
Assert.Inconclusive("Rate limited: " + ex.Message[..Math.Min(ex.Message.Length, 200)]);
50+
AssertTransientAvailability(ex);
5151
}
5252
}
5353
}

src/tests/IntegrationTests/Examples/ChatClient.ToolCalling.Streaming.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,9 +53,9 @@ public async Task ChatClient_ToolCalling_Streaming()
5353
functionCalls[0].Name.Should().Be("get_weather");
5454
functionCalls[0].Arguments.Should().NotBeNull();
5555
}
56-
catch (ApiException ex) when (ex.StatusCode is System.Net.HttpStatusCode.TooManyRequests)
56+
catch (ApiException ex) when (IsTransientAvailabilityIssue(ex))
5757
{
58-
Assert.Inconclusive("Rate limited: " + ex.Message[..Math.Min(ex.Message.Length, 200)]);
58+
AssertTransientAvailability(ex);
5959
}
6060
}
6161
}

src/tests/IntegrationTests/Examples/CountTokens.MultipleMessages.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,9 @@ public async Task CountTokens_MultipleMessages()
3939

4040
response.TotalTokens.Should().BeGreaterThan(0);
4141
}
42-
catch (ApiException ex) when (ex.StatusCode is System.Net.HttpStatusCode.TooManyRequests)
42+
catch (ApiException ex) when (IsTransientAvailabilityIssue(ex))
4343
{
44-
Assert.Inconclusive("Rate limited: " + ex.Message[..Math.Min(ex.Message.Length, 200)]);
44+
AssertTransientAvailability(ex);
4545
}
4646
}
4747
}

src/tests/IntegrationTests/Examples/CountTokens.SimpleText.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,9 @@ public async Task CountTokens_SimpleText()
2828

2929
response.TotalTokens.Should().BeGreaterThan(0);
3030
}
31-
catch (ApiException ex) when (ex.StatusCode is System.Net.HttpStatusCode.TooManyRequests)
31+
catch (ApiException ex) when (IsTransientAvailabilityIssue(ex))
3232
{
33-
Assert.Inconclusive("Rate limited: " + ex.Message[..Math.Min(ex.Message.Length, 200)]);
33+
AssertTransientAvailability(ex);
3434
}
3535
}
3636
}

src/tests/IntegrationTests/Examples/EditImage.SimpleEdit.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,9 @@ public async Task EditImage_SimpleEdit()
3131
edited.HasImage.Should().BeTrue();
3232
edited.ImageData.Should().NotBeNullOrEmpty();
3333
}
34-
catch (ApiException ex) when (ex.StatusCode is System.Net.HttpStatusCode.TooManyRequests)
34+
catch (ApiException ex) when (IsTransientAvailabilityIssue(ex))
3535
{
36-
Assert.Inconclusive("Rate limited: " + ex.Message[..Math.Min(ex.Message.Length, 200)]);
36+
AssertTransientAvailability(ex);
3737
}
3838
}
3939
}

src/tests/IntegrationTests/Examples/EmbeddingGenerator.BatchInput.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,9 @@ public async Task EmbeddingGenerator_BatchInput()
3131
result[1].Vector.Length.Should().BeGreaterThan(0);
3232
result[0].Vector.Length.Should().Be(result[1].Vector.Length);
3333
}
34-
catch (ApiException ex) when (ex.StatusCode is System.Net.HttpStatusCode.TooManyRequests)
34+
catch (ApiException ex) when (IsTransientAvailabilityIssue(ex))
3535
{
36-
Assert.Inconclusive("Rate limited: " + ex.Message[..Math.Min(ex.Message.Length, 200)]);
36+
AssertTransientAvailability(ex);
3737
}
3838
}
3939
}

src/tests/IntegrationTests/Examples/EmbeddingGenerator.SingleInput.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,9 @@ public async Task EmbeddingGenerator_SingleInput()
2929
result.Should().ContainSingle();
3030
result[0].Vector.Length.Should().BeGreaterThan(0);
3131
}
32-
catch (ApiException ex) when (ex.StatusCode is System.Net.HttpStatusCode.TooManyRequests)
32+
catch (ApiException ex) when (IsTransientAvailabilityIssue(ex))
3333
{
34-
Assert.Inconclusive("Rate limited: " + ex.Message[..Math.Min(ex.Message.Length, 200)]);
34+
AssertTransientAvailability(ex);
3535
}
3636
}
3737
}

0 commit comments

Comments
 (0)