diff --git a/.castiron.stats.yml b/.castiron.stats.yml index d04f294a7..bf272f5fc 100644 --- a/.castiron.stats.yml +++ b/.castiron.stats.yml @@ -1,8 +1,8 @@ schema_version: 1 -generation_id: b935ba17-9980-45bd-b8c7-1939d1b03aba -openapi_spec_hash: e81fa0fd2133715dabef9f00a42557a9 -openapi_transformed_spec_hash: bea7a30d23deed3fc8f1c6413a38d354 -config_hash: dda57991526f80e9f99d8f9621460eaa -codegen_sha: 9306aff2af8ad922f591ebbc1d29362cf9271bc8 +generation_id: 9ef5fd34-09a3-42b5-b0dd-0caaa6d5e976 +openapi_spec_hash: 049c3c7cd03d2c6dc132ac9a5e35cb96 +openapi_transformed_spec_hash: 29c60a4e6f3a651f4bc17d307a364f8a +config_hash: 18a21de301345621ed0715ffe99465fc +codegen_sha: 13f2c3dd11749ceb0a026c794af1a764f74d2819 codegen_hash: bda6b5fe61d5a094103b7cbc38597c82109f4c14bb23d4501d6c3e1569f75878 -public_codegen_sha: 43d374297ff620990fa45fdd39a32079c3905e30 +public_codegen_sha: 1cd5b8d81b1c6afc29c814ea3fd28abd7aed7017 diff --git a/api_reference/openapi.transformed.yml b/api_reference/openapi.transformed.yml index ed9a47e02..fee909fba 100644 --- a/api_reference/openapi.transformed.yml +++ b/api_reference/openapi.transformed.yml @@ -3573,6 +3573,9 @@ paths: application/json: schema: $ref: '#/components/schemas/CreateCompletionResponse' + text/event-stream: + schema: + $ref: '#/components/schemas/CreateCompletionResponse' '400': description: Invalid completion request or incompatible request parameters. content: @@ -21277,6 +21280,9 @@ paths: application/json: schema: $ref: '#/components/schemas/Response' + text/event-stream: + schema: + $ref: '#/components/schemas/ResponseStreamEvent' '404': description: The response was not found. content: @@ -21770,6 +21776,9 @@ paths: application/json: schema: $ref: '#/components/schemas/RunObject' + text/event-stream: + schema: + $ref: '#/components/schemas/AssistantStreamEvent' '429': $ref: '#/components/responses/TooManyRequests' x-oaiMeta: @@ -23054,6 +23063,9 @@ paths: application/json: schema: $ref: '#/components/schemas/RunObject' + text/event-stream: + schema: + $ref: '#/components/schemas/AssistantStreamEvent' '429': $ref: '#/components/responses/TooManyRequests' x-oaiMeta: @@ -23994,6 +24006,9 @@ paths: application/json: schema: $ref: '#/components/schemas/RunObject' + text/event-stream: + schema: + $ref: '#/components/schemas/AssistantStreamEvent' '429': $ref: '#/components/responses/TooManyRequests' x-oaiMeta: @@ -35876,6 +35891,9 @@ paths: application/json: schema: $ref: '#/components/schemas/BetaResponse' + text/event-stream: + schema: + $ref: '#/components/schemas/BetaResponseStreamEvent' '404': description: The response was not found. content: diff --git a/openai-java-core/src/test/kotlin/com/openai/services/async/CompletionServiceAsyncTest.kt b/openai-java-core/src/test/kotlin/com/openai/services/async/CompletionServiceAsyncTest.kt index f9b6810f8..e628cfd16 100644 --- a/openai-java-core/src/test/kotlin/com/openai/services/async/CompletionServiceAsyncTest.kt +++ b/openai-java-core/src/test/kotlin/com/openai/services/async/CompletionServiceAsyncTest.kt @@ -7,7 +7,6 @@ import com.openai.client.okhttp.OpenAIOkHttpClientAsync import com.openai.core.JsonValue import com.openai.models.chat.completions.ChatCompletionStreamOptions import com.openai.models.completions.CompletionCreateParams -import org.junit.jupiter.api.Disabled import org.junit.jupiter.api.Test import org.junit.jupiter.api.extension.ExtendWith @@ -60,7 +59,6 @@ internal class CompletionServiceAsyncTest { completion.validate() } - @Disabled("Prism does not support SSE streaming mock responses") @Test fun createStreaming() { val client = @@ -103,10 +101,15 @@ internal class CompletionServiceAsyncTest { .build() ) + val received = java.util.concurrent.atomic.AtomicInteger() val onCompleteFuture = completionStreamResponse - .subscribe { completion -> completion.validate() } + .subscribe { event -> + event.validate() + received.incrementAndGet() + } .onCompleteFuture() onCompleteFuture.get() + check(received.get() > 0) { "Expected at least one streaming event" } } } diff --git a/openai-java-core/src/test/kotlin/com/openai/services/async/ImageServiceAsyncTest.kt b/openai-java-core/src/test/kotlin/com/openai/services/async/ImageServiceAsyncTest.kt index 2f97f71ca..a99d25465 100644 --- a/openai-java-core/src/test/kotlin/com/openai/services/async/ImageServiceAsyncTest.kt +++ b/openai-java-core/src/test/kotlin/com/openai/services/async/ImageServiceAsyncTest.kt @@ -8,7 +8,6 @@ import com.openai.models.images.ImageCreateVariationParams import com.openai.models.images.ImageEditParams import com.openai.models.images.ImageGenerateParams import com.openai.models.images.ImageModel -import org.junit.jupiter.api.Disabled import org.junit.jupiter.api.Test import org.junit.jupiter.api.extension.ExtendWith @@ -75,7 +74,6 @@ internal class ImageServiceAsyncTest { imagesResponse.validate() } - @Disabled("Prism does not support SSE streaming mock responses") @Test fun editStreaming() { val client = @@ -106,11 +104,16 @@ internal class ImageServiceAsyncTest { .build() ) + val received = java.util.concurrent.atomic.AtomicInteger() val onCompleteFuture = imagesResponseStreamResponse - .subscribe { imagesResponse -> imagesResponse.validate() } + .subscribe { event -> + event.validate() + received.incrementAndGet() + } .onCompleteFuture() onCompleteFuture.get() + check(received.get() > 0) { "Expected at least one streaming event" } } @Test @@ -146,7 +149,6 @@ internal class ImageServiceAsyncTest { imagesResponse.validate() } - @Disabled("Prism does not support SSE streaming mock responses") @Test fun generateStreaming() { val client = @@ -176,10 +178,15 @@ internal class ImageServiceAsyncTest { .build() ) + val received = java.util.concurrent.atomic.AtomicInteger() val onCompleteFuture = imagesResponseStreamResponse - .subscribe { imagesResponse -> imagesResponse.validate() } + .subscribe { event -> + event.validate() + received.incrementAndGet() + } .onCompleteFuture() onCompleteFuture.get() + check(received.get() > 0) { "Expected at least one streaming event" } } } diff --git a/openai-java-core/src/test/kotlin/com/openai/services/async/ResponseServiceAsyncTest.kt b/openai-java-core/src/test/kotlin/com/openai/services/async/ResponseServiceAsyncTest.kt index 3a238c31c..99796fa5d 100644 --- a/openai-java-core/src/test/kotlin/com/openai/services/async/ResponseServiceAsyncTest.kt +++ b/openai-java-core/src/test/kotlin/com/openai/services/async/ResponseServiceAsyncTest.kt @@ -17,7 +17,6 @@ import com.openai.models.responses.ResponsePrompt import com.openai.models.responses.ResponseRetrieveParams import com.openai.models.responses.ResponseTextConfig import com.openai.models.responses.ToolChoiceOptions -import org.junit.jupiter.api.Disabled import org.junit.jupiter.api.Test import org.junit.jupiter.api.extension.ExtendWith @@ -165,7 +164,6 @@ internal class ResponseServiceAsyncTest { response.validate() } - @Disabled("Prism does not support SSE streaming mock responses") @Test fun createStreaming() { val client = @@ -303,9 +301,16 @@ internal class ResponseServiceAsyncTest { .build() ) + val received = java.util.concurrent.atomic.AtomicInteger() val onCompleteFuture = - responseStreamResponse.subscribe { response -> response.validate() }.onCompleteFuture() + responseStreamResponse + .subscribe { event -> + event.validate() + received.incrementAndGet() + } + .onCompleteFuture() onCompleteFuture.get() + check(received.get() > 0) { "Expected at least one streaming event" } } @Test @@ -332,7 +337,6 @@ internal class ResponseServiceAsyncTest { response.validate() } - @Disabled("Prism does not support SSE streaming mock responses") @Test fun retrieveStreaming() { val client = @@ -353,9 +357,16 @@ internal class ResponseServiceAsyncTest { .build() ) + val received = java.util.concurrent.atomic.AtomicInteger() val onCompleteFuture = - responseStreamResponse.subscribe { response -> response.validate() }.onCompleteFuture() + responseStreamResponse + .subscribe { event -> + event.validate() + received.incrementAndGet() + } + .onCompleteFuture() onCompleteFuture.get() + check(received.get() > 0) { "Expected at least one streaming event" } } @Test diff --git a/openai-java-core/src/test/kotlin/com/openai/services/async/audio/TranscriptionServiceAsyncTest.kt b/openai-java-core/src/test/kotlin/com/openai/services/async/audio/TranscriptionServiceAsyncTest.kt index 6c52d9f15..74cca4904 100644 --- a/openai-java-core/src/test/kotlin/com/openai/services/async/audio/TranscriptionServiceAsyncTest.kt +++ b/openai-java-core/src/test/kotlin/com/openai/services/async/audio/TranscriptionServiceAsyncTest.kt @@ -8,7 +8,6 @@ import com.openai.models.audio.AudioModel import com.openai.models.audio.AudioResponseFormat import com.openai.models.audio.transcriptions.TranscriptionCreateParams import com.openai.models.audio.transcriptions.TranscriptionInclude -import org.junit.jupiter.api.Disabled import org.junit.jupiter.api.Test import org.junit.jupiter.api.extension.ExtendWith @@ -48,7 +47,6 @@ internal class TranscriptionServiceAsyncTest { transcription.validate() } - @Disabled("Prism does not support SSE streaming mock responses") @Test fun createStreaming() { val client = @@ -78,10 +76,15 @@ internal class TranscriptionServiceAsyncTest { .build() ) + val received = java.util.concurrent.atomic.AtomicInteger() val onCompleteFuture = transcriptionStreamResponse - .subscribe { transcription -> transcription.validate() } + .subscribe { event -> + event.validate() + received.incrementAndGet() + } .onCompleteFuture() onCompleteFuture.get() + check(received.get() > 0) { "Expected at least one streaming event" } } } diff --git a/openai-java-core/src/test/kotlin/com/openai/services/async/beta/ResponseServiceAsyncTest.kt b/openai-java-core/src/test/kotlin/com/openai/services/async/beta/ResponseServiceAsyncTest.kt index b3f18d8ca..17bd04ec8 100644 --- a/openai-java-core/src/test/kotlin/com/openai/services/async/beta/ResponseServiceAsyncTest.kt +++ b/openai-java-core/src/test/kotlin/com/openai/services/async/beta/ResponseServiceAsyncTest.kt @@ -313,8 +313,16 @@ internal class ResponseServiceAsyncTest { .build() ) - val onCompleteFuture = betaResponseStreamResponse.subscribe {}.onCompleteFuture() + val received = java.util.concurrent.atomic.AtomicInteger() + val onCompleteFuture = + betaResponseStreamResponse + .subscribe { event -> + event.validate() + received.incrementAndGet() + } + .onCompleteFuture() onCompleteFuture.get() + check(received.get() > 0) { "Expected at least one streaming event" } } @Test @@ -363,11 +371,16 @@ internal class ResponseServiceAsyncTest { .build() ) + val received = java.util.concurrent.atomic.AtomicInteger() val onCompleteFuture = betaResponseStreamResponse - .subscribe { betaResponse -> betaResponse.validate() } + .subscribe { event -> + event.validate() + received.incrementAndGet() + } .onCompleteFuture() onCompleteFuture.get() + check(received.get() > 0) { "Expected at least one streaming event" } } @Test diff --git a/openai-java-core/src/test/kotlin/com/openai/services/async/beta/ThreadServiceAsyncTest.kt b/openai-java-core/src/test/kotlin/com/openai/services/async/beta/ThreadServiceAsyncTest.kt index 548c1250e..57c9ea24d 100644 --- a/openai-java-core/src/test/kotlin/com/openai/services/async/beta/ThreadServiceAsyncTest.kt +++ b/openai-java-core/src/test/kotlin/com/openai/services/async/beta/ThreadServiceAsyncTest.kt @@ -11,7 +11,6 @@ import com.openai.models.beta.threads.AssistantToolChoiceOption import com.openai.models.beta.threads.ThreadCreateAndRunParams import com.openai.models.beta.threads.ThreadCreateParams import com.openai.models.beta.threads.ThreadUpdateParams -import org.junit.jupiter.api.Disabled import org.junit.jupiter.api.Test import org.junit.jupiter.api.extension.ExtendWith @@ -285,7 +284,6 @@ internal class ThreadServiceAsyncTest { run.validate() } - @Disabled("Prism does not support SSE streaming mock responses") @Test fun createAndRunStreaming() { val client = @@ -403,8 +401,15 @@ internal class ThreadServiceAsyncTest { .build() ) + val received = java.util.concurrent.atomic.AtomicInteger() val onCompleteFuture = - runStreamResponse.subscribe { run -> run.validate() }.onCompleteFuture() + runStreamResponse + .subscribe { event -> + event.validate() + received.incrementAndGet() + } + .onCompleteFuture() onCompleteFuture.get() + check(received.get() > 0) { "Expected at least one streaming event" } } } diff --git a/openai-java-core/src/test/kotlin/com/openai/services/async/beta/agents/SessionServiceAsyncTest.kt b/openai-java-core/src/test/kotlin/com/openai/services/async/beta/agents/SessionServiceAsyncTest.kt index 6261136aa..1a8dabd9e 100644 --- a/openai-java-core/src/test/kotlin/com/openai/services/async/beta/agents/SessionServiceAsyncTest.kt +++ b/openai-java-core/src/test/kotlin/com/openai/services/async/beta/agents/SessionServiceAsyncTest.kt @@ -167,14 +167,17 @@ internal class SessionServiceAsyncTest { .build() ) + val received = java.util.concurrent.atomic.AtomicInteger() val onCompleteFuture = agentSessionStreamResponse - .subscribe { agentSession -> - agentSession.validate() - deltas.add(agentSession.asTurnOutputTextDelta().delta()) + .subscribe { event -> + event.validate() + deltas.add(event.asTurnOutputTextDelta().delta()) + received.incrementAndGet() } .onCompleteFuture() onCompleteFuture.get() + check(received.get() > 0) { "Expected at least one streaming event" } assertThat(deltas).containsExactly("hello") } diff --git a/openai-java-core/src/test/kotlin/com/openai/services/async/beta/agents/sessions/EventServiceAsyncTest.kt b/openai-java-core/src/test/kotlin/com/openai/services/async/beta/agents/sessions/EventServiceAsyncTest.kt index ac63958f8..eb589b468 100644 --- a/openai-java-core/src/test/kotlin/com/openai/services/async/beta/agents/sessions/EventServiceAsyncTest.kt +++ b/openai-java-core/src/test/kotlin/com/openai/services/async/beta/agents/sessions/EventServiceAsyncTest.kt @@ -79,14 +79,17 @@ internal class EventServiceAsyncTest { val agentSessionEventStreamResponse = eventServiceAsync.streamStreaming("session_id") + val received = java.util.concurrent.atomic.AtomicInteger() val onCompleteFuture = agentSessionEventStreamResponse - .subscribe { agentSessionEvent -> - agentSessionEvent.validate() - deltas.add(agentSessionEvent.asTurnOutputTextDelta().delta()) + .subscribe { event -> + event.validate() + deltas.add(event.asTurnOutputTextDelta().delta()) + received.incrementAndGet() } .onCompleteFuture() onCompleteFuture.get() + check(received.get() > 0) { "Expected at least one streaming event" } assertThat(deltas).containsExactly("hello") } } diff --git a/openai-java-core/src/test/kotlin/com/openai/services/async/beta/threads/RunServiceAsyncTest.kt b/openai-java-core/src/test/kotlin/com/openai/services/async/beta/threads/RunServiceAsyncTest.kt index b1dcb9369..fd6585d83 100644 --- a/openai-java-core/src/test/kotlin/com/openai/services/async/beta/threads/RunServiceAsyncTest.kt +++ b/openai-java-core/src/test/kotlin/com/openai/services/async/beta/threads/RunServiceAsyncTest.kt @@ -26,7 +26,6 @@ import com.openai.models.beta.threads.runs.RunUpdateParams import com.openai.models.beta.threads.runs.steps.RunStepInclude import java.util.concurrent.atomic.AtomicInteger import org.assertj.core.api.Assertions.assertThat -import org.junit.jupiter.api.Disabled import org.junit.jupiter.api.Test import org.junit.jupiter.api.extension.ExtendWith import org.junit.jupiter.api.parallel.ResourceLock @@ -99,7 +98,6 @@ internal class RunServiceAsyncTest { run.validate() } - @Disabled("Prism does not support SSE streaming mock responses") @Test fun createStreaming() { val client = @@ -159,9 +157,16 @@ internal class RunServiceAsyncTest { .build() ) + val received = java.util.concurrent.atomic.AtomicInteger() val onCompleteFuture = - runStreamResponse.subscribe { run -> run.validate() }.onCompleteFuture() + runStreamResponse + .subscribe { event -> + event.validate() + received.incrementAndGet() + } + .onCompleteFuture() onCompleteFuture.get() + check(received.get() > 0) { "Expected at least one streaming event" } } @Test @@ -352,7 +357,6 @@ internal class RunServiceAsyncTest { run.validate() } - @Disabled("Prism does not support SSE streaming mock responses") @Test fun submitToolOutputsStreaming() { val client = @@ -377,8 +381,15 @@ internal class RunServiceAsyncTest { .build() ) + val received = java.util.concurrent.atomic.AtomicInteger() val onCompleteFuture = - runStreamResponse.subscribe { run -> run.validate() }.onCompleteFuture() + runStreamResponse + .subscribe { event -> + event.validate() + received.incrementAndGet() + } + .onCompleteFuture() onCompleteFuture.get() + check(received.get() > 0) { "Expected at least one streaming event" } } } diff --git a/openai-java-core/src/test/kotlin/com/openai/services/async/chat/ChatCompletionServiceAsyncTest.kt b/openai-java-core/src/test/kotlin/com/openai/services/async/chat/ChatCompletionServiceAsyncTest.kt index 13b89d205..976c932b5 100644 --- a/openai-java-core/src/test/kotlin/com/openai/services/async/chat/ChatCompletionServiceAsyncTest.kt +++ b/openai-java-core/src/test/kotlin/com/openai/services/async/chat/ChatCompletionServiceAsyncTest.kt @@ -28,7 +28,6 @@ import com.openai.models.chat.completions.ChatCompletionToolChoiceOption import com.openai.models.chat.completions.ChatCompletionUpdateParams import java.util.concurrent.atomic.AtomicInteger import org.assertj.core.api.Assertions.assertThat -import org.junit.jupiter.api.Disabled import org.junit.jupiter.api.Test import org.junit.jupiter.api.extension.ExtendWith import org.junit.jupiter.api.parallel.ResourceLock @@ -190,7 +189,6 @@ internal class ChatCompletionServiceAsyncTest { chatCompletion.validate() } - @Disabled("Prism does not support SSE streaming mock responses") @Test fun createStreaming() { val client = @@ -339,11 +337,16 @@ internal class ChatCompletionServiceAsyncTest { .build() ) + val received = java.util.concurrent.atomic.AtomicInteger() val onCompleteFuture = chatCompletionStreamResponse - .subscribe { chatCompletion -> chatCompletion.validate() } + .subscribe { event -> + event.validate() + received.incrementAndGet() + } .onCompleteFuture() onCompleteFuture.get() + check(received.get() > 0) { "Expected at least one streaming event" } } @Test diff --git a/openai-java-core/src/test/kotlin/com/openai/services/blocking/CompletionServiceTest.kt b/openai-java-core/src/test/kotlin/com/openai/services/blocking/CompletionServiceTest.kt index 3989e02b0..d9b0bb593 100644 --- a/openai-java-core/src/test/kotlin/com/openai/services/blocking/CompletionServiceTest.kt +++ b/openai-java-core/src/test/kotlin/com/openai/services/blocking/CompletionServiceTest.kt @@ -7,7 +7,6 @@ import com.openai.client.okhttp.OpenAIOkHttpClient import com.openai.core.JsonValue import com.openai.models.chat.completions.ChatCompletionStreamOptions import com.openai.models.completions.CompletionCreateParams -import org.junit.jupiter.api.Disabled import org.junit.jupiter.api.Test import org.junit.jupiter.api.extension.ExtendWith @@ -59,7 +58,6 @@ internal class CompletionServiceTest { completion.validate() } - @Disabled("Prism does not support SSE streaming mock responses") @Test fun createStreaming() { val client = @@ -102,8 +100,13 @@ internal class CompletionServiceTest { .build() ) + var received = 0 completionStreamResponse.use { - completionStreamResponse.stream().forEach { completion -> completion.validate() } + completionStreamResponse.stream().forEach { event -> + event.validate() + received++ + } } + check(received > 0) { "Expected at least one streaming event" } } } diff --git a/openai-java-core/src/test/kotlin/com/openai/services/blocking/ImageServiceTest.kt b/openai-java-core/src/test/kotlin/com/openai/services/blocking/ImageServiceTest.kt index 71caa9739..481964058 100644 --- a/openai-java-core/src/test/kotlin/com/openai/services/blocking/ImageServiceTest.kt +++ b/openai-java-core/src/test/kotlin/com/openai/services/blocking/ImageServiceTest.kt @@ -8,7 +8,6 @@ import com.openai.models.images.ImageCreateVariationParams import com.openai.models.images.ImageEditParams import com.openai.models.images.ImageGenerateParams import com.openai.models.images.ImageModel -import org.junit.jupiter.api.Disabled import org.junit.jupiter.api.Test import org.junit.jupiter.api.extension.ExtendWith @@ -73,7 +72,6 @@ internal class ImageServiceTest { imagesResponse.validate() } - @Disabled("Prism does not support SSE streaming mock responses") @Test fun editStreaming() { val client = @@ -104,11 +102,14 @@ internal class ImageServiceTest { .build() ) + var received = 0 imagesResponseStreamResponse.use { - imagesResponseStreamResponse.stream().forEach { imagesResponse -> - imagesResponse.validate() + imagesResponseStreamResponse.stream().forEach { event -> + event.validate() + received++ } } + check(received > 0) { "Expected at least one streaming event" } } @Test @@ -143,7 +144,6 @@ internal class ImageServiceTest { imagesResponse.validate() } - @Disabled("Prism does not support SSE streaming mock responses") @Test fun generateStreaming() { val client = @@ -173,10 +173,13 @@ internal class ImageServiceTest { .build() ) + var received = 0 imagesResponseStreamResponse.use { - imagesResponseStreamResponse.stream().forEach { imagesResponse -> - imagesResponse.validate() + imagesResponseStreamResponse.stream().forEach { event -> + event.validate() + received++ } } + check(received > 0) { "Expected at least one streaming event" } } } diff --git a/openai-java-core/src/test/kotlin/com/openai/services/blocking/ResponseServiceTest.kt b/openai-java-core/src/test/kotlin/com/openai/services/blocking/ResponseServiceTest.kt index d7a593e33..273f0fde0 100644 --- a/openai-java-core/src/test/kotlin/com/openai/services/blocking/ResponseServiceTest.kt +++ b/openai-java-core/src/test/kotlin/com/openai/services/blocking/ResponseServiceTest.kt @@ -17,7 +17,6 @@ import com.openai.models.responses.ResponsePrompt import com.openai.models.responses.ResponseRetrieveParams import com.openai.models.responses.ResponseTextConfig import com.openai.models.responses.ToolChoiceOptions -import org.junit.jupiter.api.Disabled import org.junit.jupiter.api.Test import org.junit.jupiter.api.extension.ExtendWith @@ -164,7 +163,6 @@ internal class ResponseServiceTest { response.validate() } - @Disabled("Prism does not support SSE streaming mock responses") @Test fun createStreaming() { val client = @@ -302,9 +300,14 @@ internal class ResponseServiceTest { .build() ) + var received = 0 responseStreamResponse.use { - responseStreamResponse.stream().forEach { response -> response.validate() } + responseStreamResponse.stream().forEach { event -> + event.validate() + received++ + } } + check(received > 0) { "Expected at least one streaming event" } } @Test @@ -330,7 +333,6 @@ internal class ResponseServiceTest { response.validate() } - @Disabled("Prism does not support SSE streaming mock responses") @Test fun retrieveStreaming() { val client = @@ -351,9 +353,14 @@ internal class ResponseServiceTest { .build() ) + var received = 0 responseStreamResponse.use { - responseStreamResponse.stream().forEach { response -> response.validate() } + responseStreamResponse.stream().forEach { event -> + event.validate() + received++ + } } + check(received > 0) { "Expected at least one streaming event" } } @Test diff --git a/openai-java-core/src/test/kotlin/com/openai/services/blocking/audio/TranscriptionServiceTest.kt b/openai-java-core/src/test/kotlin/com/openai/services/blocking/audio/TranscriptionServiceTest.kt index 7ac7c5e7d..55c34329e 100644 --- a/openai-java-core/src/test/kotlin/com/openai/services/blocking/audio/TranscriptionServiceTest.kt +++ b/openai-java-core/src/test/kotlin/com/openai/services/blocking/audio/TranscriptionServiceTest.kt @@ -8,7 +8,6 @@ import com.openai.models.audio.AudioModel import com.openai.models.audio.AudioResponseFormat import com.openai.models.audio.transcriptions.TranscriptionCreateParams import com.openai.models.audio.transcriptions.TranscriptionInclude -import org.junit.jupiter.api.Disabled import org.junit.jupiter.api.Test import org.junit.jupiter.api.extension.ExtendWith @@ -47,7 +46,6 @@ internal class TranscriptionServiceTest { transcription.validate() } - @Disabled("Prism does not support SSE streaming mock responses") @Test fun createStreaming() { val client = @@ -77,10 +75,13 @@ internal class TranscriptionServiceTest { .build() ) + var received = 0 transcriptionStreamResponse.use { - transcriptionStreamResponse.stream().forEach { transcription -> - transcription.validate() + transcriptionStreamResponse.stream().forEach { event -> + event.validate() + received++ } } + check(received > 0) { "Expected at least one streaming event" } } } diff --git a/openai-java-core/src/test/kotlin/com/openai/services/blocking/beta/ResponseServiceTest.kt b/openai-java-core/src/test/kotlin/com/openai/services/blocking/beta/ResponseServiceTest.kt index 8a043afcc..627032f31 100644 --- a/openai-java-core/src/test/kotlin/com/openai/services/blocking/beta/ResponseServiceTest.kt +++ b/openai-java-core/src/test/kotlin/com/openai/services/blocking/beta/ResponseServiceTest.kt @@ -312,7 +312,14 @@ internal class ResponseServiceTest { .build() ) - betaResponseStreamResponse.use { check(betaResponseStreamResponse.stream().count() > 0) } + var received = 0 + betaResponseStreamResponse.use { + betaResponseStreamResponse.stream().forEach { event -> + event.validate() + received++ + } + } + check(received > 0) { "Expected at least one streaming event" } } @Test @@ -360,9 +367,14 @@ internal class ResponseServiceTest { .build() ) + var received = 0 betaResponseStreamResponse.use { - betaResponseStreamResponse.stream().forEach { betaResponse -> betaResponse.validate() } + betaResponseStreamResponse.stream().forEach { event -> + event.validate() + received++ + } } + check(received > 0) { "Expected at least one streaming event" } } @Test diff --git a/openai-java-core/src/test/kotlin/com/openai/services/blocking/beta/ThreadServiceTest.kt b/openai-java-core/src/test/kotlin/com/openai/services/blocking/beta/ThreadServiceTest.kt index 3e714a632..c0029375a 100644 --- a/openai-java-core/src/test/kotlin/com/openai/services/blocking/beta/ThreadServiceTest.kt +++ b/openai-java-core/src/test/kotlin/com/openai/services/blocking/beta/ThreadServiceTest.kt @@ -11,7 +11,6 @@ import com.openai.models.beta.threads.AssistantToolChoiceOption import com.openai.models.beta.threads.ThreadCreateAndRunParams import com.openai.models.beta.threads.ThreadCreateParams import com.openai.models.beta.threads.ThreadUpdateParams -import org.junit.jupiter.api.Disabled import org.junit.jupiter.api.Test import org.junit.jupiter.api.extension.ExtendWith @@ -280,7 +279,6 @@ internal class ThreadServiceTest { run.validate() } - @Disabled("Prism does not support SSE streaming mock responses") @Test fun createAndRunStreaming() { val client = @@ -398,6 +396,13 @@ internal class ThreadServiceTest { .build() ) - runStreamResponse.use { runStreamResponse.stream().forEach { run -> run.validate() } } + var received = 0 + runStreamResponse.use { + runStreamResponse.stream().forEach { event -> + event.validate() + received++ + } + } + check(received > 0) { "Expected at least one streaming event" } } } diff --git a/openai-java-core/src/test/kotlin/com/openai/services/blocking/beta/agents/SessionServiceTest.kt b/openai-java-core/src/test/kotlin/com/openai/services/blocking/beta/agents/SessionServiceTest.kt index c01c02e84..14b9468d6 100644 --- a/openai-java-core/src/test/kotlin/com/openai/services/blocking/beta/agents/SessionServiceTest.kt +++ b/openai-java-core/src/test/kotlin/com/openai/services/blocking/beta/agents/SessionServiceTest.kt @@ -164,12 +164,15 @@ internal class SessionServiceTest { .build() ) + var received = 0 agentSessionStreamResponse.use { - agentSessionStreamResponse.stream().forEach { agentSession -> - agentSession.validate() - deltas.add(agentSession.asTurnOutputTextDelta().delta()) + agentSessionStreamResponse.stream().forEach { event -> + event.validate() + deltas.add(event.asTurnOutputTextDelta().delta()) + received++ } } + check(received > 0) { "Expected at least one streaming event" } assertThat(deltas).containsExactly("hello") } diff --git a/openai-java-core/src/test/kotlin/com/openai/services/blocking/beta/agents/sessions/EventServiceTest.kt b/openai-java-core/src/test/kotlin/com/openai/services/blocking/beta/agents/sessions/EventServiceTest.kt index 9e4e5e1c1..ff878c766 100644 --- a/openai-java-core/src/test/kotlin/com/openai/services/blocking/beta/agents/sessions/EventServiceTest.kt +++ b/openai-java-core/src/test/kotlin/com/openai/services/blocking/beta/agents/sessions/EventServiceTest.kt @@ -75,12 +75,15 @@ internal class EventServiceTest { val agentSessionEventStreamResponse = eventService.streamStreaming("session_id") + var received = 0 agentSessionEventStreamResponse.use { - agentSessionEventStreamResponse.stream().forEach { agentSessionEvent -> - agentSessionEvent.validate() - deltas.add(agentSessionEvent.asTurnOutputTextDelta().delta()) + agentSessionEventStreamResponse.stream().forEach { event -> + event.validate() + deltas.add(event.asTurnOutputTextDelta().delta()) + received++ } } + check(received > 0) { "Expected at least one streaming event" } assertThat(deltas).containsExactly("hello") } } diff --git a/openai-java-core/src/test/kotlin/com/openai/services/blocking/beta/threads/RunServiceTest.kt b/openai-java-core/src/test/kotlin/com/openai/services/blocking/beta/threads/RunServiceTest.kt index a94537fc7..8b5a4ed46 100644 --- a/openai-java-core/src/test/kotlin/com/openai/services/blocking/beta/threads/RunServiceTest.kt +++ b/openai-java-core/src/test/kotlin/com/openai/services/blocking/beta/threads/RunServiceTest.kt @@ -25,7 +25,6 @@ import com.openai.models.beta.threads.runs.RunSubmitToolOutputsParams import com.openai.models.beta.threads.runs.RunUpdateParams import com.openai.models.beta.threads.runs.steps.RunStepInclude import org.assertj.core.api.Assertions.assertThat -import org.junit.jupiter.api.Disabled import org.junit.jupiter.api.Test import org.junit.jupiter.api.extension.ExtendWith import org.junit.jupiter.api.parallel.ResourceLock @@ -97,7 +96,6 @@ internal class RunServiceTest { run.validate() } - @Disabled("Prism does not support SSE streaming mock responses") @Test fun createStreaming() { val client = @@ -157,7 +155,14 @@ internal class RunServiceTest { .build() ) - runStreamResponse.use { runStreamResponse.stream().forEach { run -> run.validate() } } + var received = 0 + runStreamResponse.use { + runStreamResponse.stream().forEach { event -> + event.validate() + received++ + } + } + check(received > 0) { "Expected at least one streaming event" } } @Test @@ -339,7 +344,6 @@ internal class RunServiceTest { run.validate() } - @Disabled("Prism does not support SSE streaming mock responses") @Test fun submitToolOutputsStreaming() { val client = @@ -364,6 +368,13 @@ internal class RunServiceTest { .build() ) - runStreamResponse.use { runStreamResponse.stream().forEach { run -> run.validate() } } + var received = 0 + runStreamResponse.use { + runStreamResponse.stream().forEach { event -> + event.validate() + received++ + } + } + check(received > 0) { "Expected at least one streaming event" } } } diff --git a/openai-java-core/src/test/kotlin/com/openai/services/blocking/chat/ChatCompletionServiceTest.kt b/openai-java-core/src/test/kotlin/com/openai/services/blocking/chat/ChatCompletionServiceTest.kt index a17c57501..e6d601a34 100644 --- a/openai-java-core/src/test/kotlin/com/openai/services/blocking/chat/ChatCompletionServiceTest.kt +++ b/openai-java-core/src/test/kotlin/com/openai/services/blocking/chat/ChatCompletionServiceTest.kt @@ -27,7 +27,6 @@ import com.openai.models.chat.completions.ChatCompletionStreamOptions import com.openai.models.chat.completions.ChatCompletionToolChoiceOption import com.openai.models.chat.completions.ChatCompletionUpdateParams import org.assertj.core.api.Assertions.assertThat -import org.junit.jupiter.api.Disabled import org.junit.jupiter.api.Test import org.junit.jupiter.api.extension.ExtendWith import org.junit.jupiter.api.parallel.ResourceLock @@ -188,7 +187,6 @@ internal class ChatCompletionServiceTest { chatCompletion.validate() } - @Disabled("Prism does not support SSE streaming mock responses") @Test fun createStreaming() { val client = @@ -337,11 +335,14 @@ internal class ChatCompletionServiceTest { .build() ) + var received = 0 chatCompletionStreamResponse.use { - chatCompletionStreamResponse.stream().forEach { chatCompletion -> - chatCompletion.validate() + chatCompletionStreamResponse.stream().forEach { event -> + event.validate() + received++ } } + check(received > 0) { "Expected at least one streaming event" } } @Test