Skip to content

Commit b83611e

Browse files
committed
Isolate reasoning streaming fixtures
Give the Python, Go, and .NET streaming reasoning tests dedicated proxy contexts so cached model catalogs cannot hide gpt-5.4. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 9b80f6cb-b851-4598-8294-f4431c6f3143
1 parent b75acfe commit b83611e

3 files changed

Lines changed: 44 additions & 31 deletions

File tree

dotnet/test/E2E/StreamingFidelityE2ETests.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,10 @@ public async Task Should_Emit_Streaming_Deltas_With_Reasoning_Effort_Configured(
150150
{
151151
// Verifies that setting ReasoningEffort alongside Streaming=true does not break
152152
// the streaming pipeline — deltas still arrive and complete successfully.
153-
var session = await CreateSessionAsync(new SessionConfig
153+
await using var isolatedCtx = await E2ETestContext.CreateAsync();
154+
await isolatedCtx.ConfigureForTestAsync("streaming_fidelity", nameof(Should_Emit_Streaming_Deltas_With_Reasoning_Effort_Configured));
155+
var isolatedClient = isolatedCtx.CreateClient();
156+
await using var session = await isolatedCtx.CreateSessionAsync(isolatedClient, new SessionConfig
154157
{
155158
Model = "gpt-5.4",
156159
Streaming = true,
@@ -178,8 +181,6 @@ public async Task Should_Emit_Streaming_Deltas_With_Reasoning_Effort_Configured(
178181
var messages = await session.GetEventsAsync();
179182
var startEvent = Assert.Single(messages.OfType<SessionStartEvent>());
180183
Assert.Equal("high", startEvent.Data.ReasoningEffort);
181-
182-
await session.DisposeAsync();
183184
}
184185

185186
[Fact]

go/internal/e2e/streaming_fidelity_e2e_test.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -285,11 +285,14 @@ func TestStreamingFidelityE2E(t *testing.T) {
285285
})
286286

287287
t.Run("should emit streaming deltas with reasoning effort configured", func(t *testing.T) {
288-
ctx.ConfigureForTest(t)
288+
reasoningCtx := testharness.NewTestContext(t)
289+
reasoningCtx.ConfigureForTest(t)
290+
reasoningClient := reasoningCtx.NewClient()
291+
t.Cleanup(func() { reasoningClient.ForceStop() })
289292

290293
// Verifies that setting ReasoningEffort alongside Streaming=true does not break
291294
// the streaming pipeline — deltas still arrive and complete successfully.
292-
session, err := client.CreateSession(t.Context(), &copilot.SessionConfig{
295+
session, err := reasoningClient.CreateSession(t.Context(), &copilot.SessionConfig{
293296
OnPermissionRequest: copilot.PermissionHandler.ApproveAll,
294297
Model: "gpt-5.4",
295298
Streaming: copilot.Bool(true),

python/e2e/test_streaming_fidelity_e2e.py

Lines changed: 35 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -155,35 +155,44 @@ async def test_should_not_produce_deltas_after_session_resume_with_streaming_dis
155155
finally:
156156
await new_client.force_stop()
157157

158-
async def test_should_emit_streaming_deltas_with_reasoning_effort_configured(
159-
self, ctx: E2ETestContext
160-
):
158+
async def test_should_emit_streaming_deltas_with_reasoning_effort_configured(self):
161159
"""Streaming + reasoning_effort produces delta events and session.start shows effort."""
162160
from copilot.session_events import SessionStartData
163161

164-
session = await ctx.client.create_session(
165-
on_permission_request=PermissionHandler.approve_all,
166-
model="gpt-5.4",
167-
streaming=True,
168-
reasoning_effort="high",
169-
)
170-
171-
events = []
172-
session.on(lambda event: events.append(event))
173-
162+
isolated_ctx = E2ETestContext()
163+
await isolated_ctx.setup()
174164
try:
175-
await session.send_and_wait("What is 15 * 17?", timeout=60.0)
176-
177-
delta_events = [e for e in events if e.type.value == "assistant.message_delta"]
178-
assert len(delta_events) >= 1, "Expected delta events with streaming=True"
179-
180-
assistant_events = [e for e in events if e.type.value == "assistant.message"]
181-
assert len(assistant_events) >= 1, "Expected final assistant.message"
165+
await isolated_ctx.configure_for_test(
166+
"streaming_fidelity",
167+
"should_emit_streaming_deltas_with_reasoning_effort_configured",
168+
)
169+
session = await isolated_ctx.client.create_session(
170+
on_permission_request=PermissionHandler.approve_all,
171+
model="gpt-5.4",
172+
streaming=True,
173+
reasoning_effort="high",
174+
)
182175

183-
# Check session.start event (from get_events) has reasoning_effort
184-
all_msgs = await session.get_events()
185-
start_event = next((e for e in all_msgs if isinstance(e.data, SessionStartData)), None)
186-
assert start_event is not None, "Expected session.start event"
187-
assert start_event.data.reasoning_effort == "high"
176+
events = []
177+
session.on(lambda event: events.append(event))
178+
179+
try:
180+
await session.send_and_wait("What is 15 * 17?", timeout=60.0)
181+
182+
delta_events = [e for e in events if e.type.value == "assistant.message_delta"]
183+
assert len(delta_events) >= 1, "Expected delta events with streaming=True"
184+
185+
assistant_events = [e for e in events if e.type.value == "assistant.message"]
186+
assert len(assistant_events) >= 1, "Expected final assistant.message"
187+
188+
# Check session.start event (from get_events) has reasoning_effort
189+
all_msgs = await session.get_events()
190+
start_event = next(
191+
(e for e in all_msgs if isinstance(e.data, SessionStartData)), None
192+
)
193+
assert start_event is not None, "Expected session.start event"
194+
assert start_event.data.reasoning_effort == "high"
195+
finally:
196+
await session.disconnect()
188197
finally:
189-
await session.disconnect()
198+
await isolated_ctx.teardown()

0 commit comments

Comments
 (0)