* move request_builder into internal pkg (#304) * add some test for internal.RequestBuilder * add a test for openai.GetEngine
This commit is contained in:
committed by
GitHub
parent
62eb4beed2
commit
61ba5f3369
149
client_test.go
149
client_test.go
@@ -2,13 +2,24 @@ package openai //nolint:testpackage // testing private field
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"context"
|
||||
"errors"
|
||||
"fmt"
|
||||
"io"
|
||||
"net/http"
|
||||
"testing"
|
||||
|
||||
"github.com/sashabaranov/go-openai/internal/test"
|
||||
)
|
||||
|
||||
var errTestRequestBuilderFailed = errors.New("test request builder failed")
|
||||
|
||||
type failingRequestBuilder struct{}
|
||||
|
||||
func (*failingRequestBuilder) Build(_ context.Context, _, _ string, _ any) (*http.Request, error) {
|
||||
return nil, errTestRequestBuilderFailed
|
||||
}
|
||||
|
||||
func TestClient(t *testing.T) {
|
||||
const mockToken = "mock token"
|
||||
client := NewClient(mockToken)
|
||||
@@ -145,3 +156,141 @@ func TestHandleErrorResp(t *testing.T) {
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestClientReturnsRequestBuilderErrors(t *testing.T) {
|
||||
var err error
|
||||
ts := test.NewTestServer().OpenAITestServer()
|
||||
ts.Start()
|
||||
defer ts.Close()
|
||||
|
||||
config := DefaultConfig(test.GetTestToken())
|
||||
config.BaseURL = ts.URL + "/v1"
|
||||
client := NewClientWithConfig(config)
|
||||
client.requestBuilder = &failingRequestBuilder{}
|
||||
|
||||
ctx := context.Background()
|
||||
|
||||
_, err = client.CreateCompletion(ctx, CompletionRequest{Prompt: "testing"})
|
||||
if !errors.Is(err, errTestRequestBuilderFailed) {
|
||||
t.Fatalf("Did not return error when request builder failed: %v", err)
|
||||
}
|
||||
|
||||
_, err = client.CreateChatCompletion(ctx, ChatCompletionRequest{Model: GPT3Dot5Turbo})
|
||||
if !errors.Is(err, errTestRequestBuilderFailed) {
|
||||
t.Fatalf("Did not return error when request builder failed: %v", err)
|
||||
}
|
||||
|
||||
_, err = client.CreateChatCompletionStream(ctx, ChatCompletionRequest{Model: GPT3Dot5Turbo})
|
||||
if !errors.Is(err, errTestRequestBuilderFailed) {
|
||||
t.Fatalf("Did not return error when request builder failed: %v", err)
|
||||
}
|
||||
|
||||
_, err = client.CreateFineTune(ctx, FineTuneRequest{})
|
||||
if !errors.Is(err, errTestRequestBuilderFailed) {
|
||||
t.Fatalf("Did not return error when request builder failed: %v", err)
|
||||
}
|
||||
|
||||
_, err = client.ListFineTunes(ctx)
|
||||
if !errors.Is(err, errTestRequestBuilderFailed) {
|
||||
t.Fatalf("Did not return error when request builder failed: %v", err)
|
||||
}
|
||||
|
||||
_, err = client.CancelFineTune(ctx, "")
|
||||
if !errors.Is(err, errTestRequestBuilderFailed) {
|
||||
t.Fatalf("Did not return error when request builder failed: %v", err)
|
||||
}
|
||||
|
||||
_, err = client.GetFineTune(ctx, "")
|
||||
if !errors.Is(err, errTestRequestBuilderFailed) {
|
||||
t.Fatalf("Did not return error when request builder failed: %v", err)
|
||||
}
|
||||
|
||||
_, err = client.DeleteFineTune(ctx, "")
|
||||
if !errors.Is(err, errTestRequestBuilderFailed) {
|
||||
t.Fatalf("Did not return error when request builder failed: %v", err)
|
||||
}
|
||||
|
||||
_, err = client.ListFineTuneEvents(ctx, "")
|
||||
if !errors.Is(err, errTestRequestBuilderFailed) {
|
||||
t.Fatalf("Did not return error when request builder failed: %v", err)
|
||||
}
|
||||
|
||||
_, err = client.Moderations(ctx, ModerationRequest{})
|
||||
if !errors.Is(err, errTestRequestBuilderFailed) {
|
||||
t.Fatalf("Did not return error when request builder failed: %v", err)
|
||||
}
|
||||
|
||||
_, err = client.Edits(ctx, EditsRequest{})
|
||||
if !errors.Is(err, errTestRequestBuilderFailed) {
|
||||
t.Fatalf("Did not return error when request builder failed: %v", err)
|
||||
}
|
||||
|
||||
_, err = client.CreateEmbeddings(ctx, EmbeddingRequest{})
|
||||
if !errors.Is(err, errTestRequestBuilderFailed) {
|
||||
t.Fatalf("Did not return error when request builder failed: %v", err)
|
||||
}
|
||||
|
||||
_, err = client.CreateImage(ctx, ImageRequest{})
|
||||
if !errors.Is(err, errTestRequestBuilderFailed) {
|
||||
t.Fatalf("Did not return error when request builder failed: %v", err)
|
||||
}
|
||||
|
||||
err = client.DeleteFile(ctx, "")
|
||||
if !errors.Is(err, errTestRequestBuilderFailed) {
|
||||
t.Fatalf("Did not return error when request builder failed: %v", err)
|
||||
}
|
||||
|
||||
_, err = client.GetFile(ctx, "")
|
||||
if !errors.Is(err, errTestRequestBuilderFailed) {
|
||||
t.Fatalf("Did not return error when request builder failed: %v", err)
|
||||
}
|
||||
|
||||
_, err = client.ListFiles(ctx)
|
||||
if !errors.Is(err, errTestRequestBuilderFailed) {
|
||||
t.Fatalf("Did not return error when request builder failed: %v", err)
|
||||
}
|
||||
|
||||
_, err = client.ListEngines(ctx)
|
||||
if !errors.Is(err, errTestRequestBuilderFailed) {
|
||||
t.Fatalf("Did not return error when request builder failed: %v", err)
|
||||
}
|
||||
|
||||
_, err = client.GetEngine(ctx, "")
|
||||
if !errors.Is(err, errTestRequestBuilderFailed) {
|
||||
t.Fatalf("Did not return error when request builder failed: %v", err)
|
||||
}
|
||||
|
||||
_, err = client.ListModels(ctx)
|
||||
if !errors.Is(err, errTestRequestBuilderFailed) {
|
||||
t.Fatalf("Did not return error when request builder failed: %v", err)
|
||||
}
|
||||
|
||||
_, err = client.CreateCompletionStream(ctx, CompletionRequest{Prompt: ""})
|
||||
if !errors.Is(err, errTestRequestBuilderFailed) {
|
||||
t.Fatalf("Did not return error when request builder failed: %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestClientReturnsRequestBuilderErrorsAddtion(t *testing.T) {
|
||||
var err error
|
||||
ts := test.NewTestServer().OpenAITestServer()
|
||||
ts.Start()
|
||||
defer ts.Close()
|
||||
|
||||
config := DefaultConfig(test.GetTestToken())
|
||||
config.BaseURL = ts.URL + "/v1"
|
||||
client := NewClientWithConfig(config)
|
||||
client.requestBuilder = &failingRequestBuilder{}
|
||||
|
||||
ctx := context.Background()
|
||||
|
||||
_, err = client.CreateCompletion(ctx, CompletionRequest{Prompt: 1})
|
||||
if !errors.Is(err, ErrCompletionRequestPromptTypeNotSupported) {
|
||||
t.Fatalf("Did not return error when request builder failed: %v", err)
|
||||
}
|
||||
|
||||
_, err = client.CreateCompletionStream(ctx, CompletionRequest{Prompt: 1})
|
||||
if !errors.Is(err, ErrCompletionRequestPromptTypeNotSupported) {
|
||||
t.Fatalf("Did not return error when request builder failed: %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user