Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor/internal testing #194

Merged
merged 10 commits into from
Mar 24, 2023
Next Next commit
added NoError check
  • Loading branch information
rexposadas committed Mar 21, 2023
commit d3f442ebedfad57a53552d1c4cf6328453341462
40 changes: 11 additions & 29 deletions api_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package openai_test

import (
. "github.com/sashabaranov/go-openai"
"github.com/sashabaranov/go-openai/internal/test/checks"

"context"
"errors"
Expand All @@ -20,25 +21,17 @@ func TestAPI(t *testing.T) {
c := NewClient(apiToken)
ctx := context.Background()
_, err = c.ListEngines(ctx)
if err != nil {
t.Fatalf("ListEngines error: %v", err)
}
checks.NoError(t, err, "ListEngines error")

_, err = c.GetEngine(ctx, "davinci")
if err != nil {
t.Fatalf("GetEngine error: %v", err)
}
checks.NoError(t, err, "GetEngine error")

fileRes, err := c.ListFiles(ctx)
if err != nil {
t.Fatalf("ListFiles error: %v", err)
}
checks.NoError(t, err, "ListFiles error")

if len(fileRes.Files) > 0 {
_, err = c.GetFile(ctx, fileRes.Files[0].ID)
if err != nil {
t.Fatalf("GetFile error: %v", err)
}
checks.NoError(t, err, "GetFile error")
} // else skip

embeddingReq := EmbeddingRequest{
Expand All @@ -49,9 +42,7 @@ func TestAPI(t *testing.T) {
Model: AdaSearchQuery,
}
_, err = c.CreateEmbeddings(ctx, embeddingReq)
if err != nil {
t.Fatalf("Embedding error: %v", err)
}
checks.NoError(t, err, "Embedding error")

_, err = c.CreateChatCompletion(
ctx,
Expand All @@ -66,9 +57,7 @@ func TestAPI(t *testing.T) {
},
)

if err != nil {
t.Errorf("CreateChatCompletion (without name) returned error: %v", err)
}
checks.NoError(t, err, "CreateChatCompletion (without name) returned error")

_, err = c.CreateChatCompletion(
ctx,
Expand All @@ -83,20 +72,15 @@ func TestAPI(t *testing.T) {
},
},
)

if err != nil {
t.Errorf("CreateChatCompletion (with name) returned error: %v", err)
}
checks.NoError(t, err, "CreateChatCompletion (with name) returned error")

stream, err := c.CreateCompletionStream(ctx, CompletionRequest{
Prompt: "Ex falso quodlibet",
Model: GPT3Ada,
MaxTokens: 5,
Stream: true,
})
if err != nil {
t.Errorf("CreateCompletionStream returned error: %v", err)
}
checks.NoError(t, err, "CreateCompletionStream returned error")
defer stream.Close()

counter := 0
Expand Down Expand Up @@ -126,9 +110,7 @@ func TestAPIError(t *testing.T) {
c := NewClient(apiToken + "_invalid")
ctx := context.Background()
_, err = c.ListEngines(ctx)
if err == nil {
t.Fatal("ListEngines did not fail")
}
checks.NoError(t, err, "ListEngines did not fail")

var apiErr *APIError
if !errors.As(err, &apiErr) {
Expand All @@ -155,7 +137,7 @@ func TestRequestError(t *testing.T) {
ctx := context.Background()
_, err = c.ListEngines(ctx)
if err == nil {
t.Fatal("ListEngines request did not fail")
t.Fatal("ListEngines did not fail")
}

var reqErr *RequestError
Expand Down
18 changes: 6 additions & 12 deletions audio_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package openai_test
import (
"bytes"
"errors"
"github.com/sashabaranov/go-openai/internal/test/checks"
"io"
"mime"
"mime/multipart"
Expand Down Expand Up @@ -62,9 +63,7 @@ func TestAudio(t *testing.T) {
Model: "whisper-3",
}
_, err = tc.createFn(ctx, req)
if err != nil {
t.Fatalf("audio API error: %v", err)
}
checks.NoError(t, err, "audio API error")
})
}
}
Expand Down Expand Up @@ -115,19 +114,16 @@ func TestAudioWithOptionalArgs(t *testing.T) {
Language: "zh",
}
_, err = tc.createFn(ctx, req)
if err != nil {
t.Fatalf("audio API error: %v", err)
}
checks.NoError(t, err, "audio API error")
})
}
}

// createTestFile creates a fake file with "hello" as the content.
func createTestFile(t *testing.T, path string) {
file, err := os.Create(path)
if err != nil {
t.Fatalf("failed to create file %v", err)
}
checks.NoError(t, err, "failed to create file")

if _, err = file.WriteString("hello"); err != nil {
t.Fatalf("failed to write to file %v", err)
}
Expand All @@ -139,9 +135,7 @@ func createTestDirectory(t *testing.T) (path string, cleanup func()) {
t.Helper()

path, err := os.MkdirTemp(os.TempDir(), "")
if err != nil {
t.Fatal(err)
}
checks.NoError(t, err)

return path, func() { os.RemoveAll(path) }
}
Expand Down
13 changes: 4 additions & 9 deletions chat_stream_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package openai_test
import (
. "github.com/sashabaranov/go-openai"
"github.com/sashabaranov/go-openai/internal/test"
"github.com/sashabaranov/go-openai/internal/test/checks"

"context"
"encoding/json"
Expand Down Expand Up @@ -33,9 +34,7 @@ func TestCreateChatCompletionStream(t *testing.T) {
dataBytes = append(dataBytes, []byte("data: [DONE]\n\n")...)

_, err := w.Write(dataBytes)
if err != nil {
t.Errorf("Write error: %s", err)
}
checks.NoError(t, err, "Write error")
}))
defer server.Close()

Expand Down Expand Up @@ -63,9 +62,7 @@ func TestCreateChatCompletionStream(t *testing.T) {
}

stream, err := client.CreateChatCompletionStream(ctx, request)
if err != nil {
t.Errorf("CreateCompletionStream returned error: %v", err)
}
checks.NoError(t, err, "CreateCompletionStream returned error")
defer stream.Close()

expectedResponses := []ChatCompletionStreamResponse{
Expand Down Expand Up @@ -104,9 +101,7 @@ func TestCreateChatCompletionStream(t *testing.T) {
t.Logf("%d: %s", ix, string(b))

receivedResponse, streamErr := stream.Recv()
if streamErr != nil {
t.Errorf("stream.Recv() failed: %v", streamErr)
}
checks.NoError(t, streamErr, "stream.Recv() failed")
if !compareChatResponses(expectedResponse, receivedResponse) {
t.Errorf("Stream response %v is %v, expected %v", ix, receivedResponse, expectedResponse)
}
Expand Down
5 changes: 2 additions & 3 deletions chat_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package openai_test
import (
. "github.com/sashabaranov/go-openai"
"github.com/sashabaranov/go-openai/internal/test"
"github.com/sashabaranov/go-openai/internal/test/checks"

"context"
"encoding/json"
Expand Down Expand Up @@ -79,9 +80,7 @@ func TestChatCompletions(t *testing.T) {
},
}
_, err = client.CreateChatCompletion(ctx, req)
if err != nil {
t.Fatalf("CreateChatCompletion error: %v", err)
}
checks.NoError(t, err, "CreateChatCompletion error")
}

// handleChatCompletionEndpoint Handles the ChatGPT completion endpoint by the test server.
Expand Down
5 changes: 2 additions & 3 deletions completion_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package openai_test
import (
. "github.com/sashabaranov/go-openai"
"github.com/sashabaranov/go-openai/internal/test"
"github.com/sashabaranov/go-openai/internal/test/checks"

"context"
"encoding/json"
Expand Down Expand Up @@ -66,9 +67,7 @@ func TestCompletions(t *testing.T) {
}
req.Prompt = "Lorem ipsum"
_, err = client.CreateCompletion(ctx, req)
if err != nil {
t.Fatalf("CreateCompletion error: %v", err)
}
checks.NoError(t, err, "CreateCompletion error")
}

// handleCompletionEndpoint Handles the completion endpoint by the test server.
Expand Down
5 changes: 2 additions & 3 deletions edits_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package openai_test
import (
. "github.com/sashabaranov/go-openai"
"github.com/sashabaranov/go-openai/internal/test"
"github.com/sashabaranov/go-openai/internal/test/checks"

"context"
"encoding/json"
Expand Down Expand Up @@ -40,9 +41,7 @@ func TestEdits(t *testing.T) {
N: 3,
}
response, err := client.Edits(ctx, editReq)
if err != nil {
t.Fatalf("Edits error: %v", err)
}
checks.NoError(t, err, "Edits error")
if len(response.Choices) != editReq.N {
t.Fatalf("edits does not properly return the correct number of choices")
}
Expand Down
5 changes: 2 additions & 3 deletions embeddings_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package openai_test

import (
. "github.com/sashabaranov/go-openai"
"github.com/sashabaranov/go-openai/internal/test/checks"

"bytes"
"encoding/json"
Expand Down Expand Up @@ -38,9 +39,7 @@ func TestEmbedding(t *testing.T) {
// marshal embeddingReq to JSON and confirm that the model field equals
// the AdaSearchQuery type
marshaled, err := json.Marshal(embeddingReq)
if err != nil {
t.Fatalf("Could not marshal embedding request: %v", err)
}
checks.NoError(t, err, "Could not marshal embedding request")
if !bytes.Contains(marshaled, []byte(`"model":"`+model.String()+`"`)) {
t.Fatalf("Expected embedding request to contain model field")
}
Expand Down
5 changes: 2 additions & 3 deletions files_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package openai_test
import (
. "github.com/sashabaranov/go-openai"
"github.com/sashabaranov/go-openai/internal/test"
"github.com/sashabaranov/go-openai/internal/test/checks"

"context"
"encoding/json"
Expand Down Expand Up @@ -33,9 +34,7 @@ func TestFileUpload(t *testing.T) {
Purpose: "fine-tune",
}
_, err = client.CreateFile(ctx, req)
if err != nil {
t.Fatalf("CreateFile error: %v", err)
}
checks.NoError(t, err, "CreateFile erro")
}

// handleCreateFile Handles the images endpoint by the test server.
Expand Down
25 changes: 7 additions & 18 deletions fine_tunes_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package openai_test
import (
. "github.com/sashabaranov/go-openai"
"github.com/sashabaranov/go-openai/internal/test"
"github.com/sashabaranov/go-openai/internal/test/checks"

"context"
"encoding/json"
Expand Down Expand Up @@ -70,32 +71,20 @@ func TestFineTunes(t *testing.T) {
ctx := context.Background()

_, err = client.ListFineTunes(ctx)
if err != nil {
t.Fatalf("ListFineTunes error: %v", err)
}
checks.NoError(t, err, "ListFineTunes error")

_, err = client.CreateFineTune(ctx, FineTuneRequest{})
if err != nil {
t.Fatalf("CreateFineTune error: %v", err)
}
checks.NoError(t, err, "CreateFineTune error")

_, err = client.CancelFineTune(ctx, testFineTuneID)
if err != nil {
t.Fatalf("CancelFineTune error: %v", err)
}
checks.NoError(t, err, "CancelFineTune error")

_, err = client.GetFineTune(ctx, testFineTuneID)
if err != nil {
t.Fatalf("GetFineTune error: %v", err)
}
checks.NoError(t, err, "GetFineTune error")

_, err = client.DeleteFineTune(ctx, testFineTuneID)
if err != nil {
t.Fatalf("DeleteFineTune error: %v", err)
}
checks.NoError(t, err, "DeleteFineTune error")

_, err = client.ListFineTuneEvents(ctx, testFineTuneID)
if err != nil {
t.Fatalf("ListFineTuneEvents error: %v", err)
}
checks.NoError(t, err, "ListFineTuneEvents error")
}
17 changes: 5 additions & 12 deletions image_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package openai_test
import (
. "github.com/sashabaranov/go-openai"
"github.com/sashabaranov/go-openai/internal/test"
"github.com/sashabaranov/go-openai/internal/test/checks"

"context"
"encoding/json"
Expand Down Expand Up @@ -31,9 +32,7 @@ func TestImages(t *testing.T) {
req := ImageRequest{}
req.Prompt = "Lorem ipsum"
_, err = client.CreateImage(ctx, req)
if err != nil {
t.Fatalf("CreateImage error: %v", err)
}
checks.NoError(t, err, "CreateImage error")
}

// handleImageEndpoint Handles the images endpoint by the test server.
Expand Down Expand Up @@ -127,9 +126,7 @@ func TestImageEdit(t *testing.T) {
Size: CreateImageSize1024x1024,
}
_, err = client.CreateEditImage(ctx, req)
if err != nil {
t.Fatalf("CreateImage error: %v", err)
}
checks.NoError(t, err, "CreateImage error")
}

func TestImageEditWithoutMask(t *testing.T) {
Expand Down Expand Up @@ -164,9 +161,7 @@ func TestImageEditWithoutMask(t *testing.T) {
Size: CreateImageSize1024x1024,
}
_, err = client.CreateEditImage(ctx, req)
if err != nil {
t.Fatalf("CreateImage error: %v", err)
}
checks.NoError(t, err, "CreateImage error")
}

// handleEditImageEndpoint Handles the images endpoint by the test server.
Expand Down Expand Up @@ -231,9 +226,7 @@ func TestImageVariation(t *testing.T) {
Size: CreateImageSize1024x1024,
}
_, err = client.CreateVariImage(ctx, req)
if err != nil {
t.Fatalf("CreateImage error: %v", err)
}
checks.NoError(t, err, "CreateImage error")
}

// handleVariateImageEndpoint Handles the images endpoint by the test server.
Expand Down
Loading