// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. package openai_test import ( "bytes" "context" "errors" "io" "net/http" "net/http/httptest" "os" "testing" "github.com/openai/openai-go/v3" "github.com/openai/openai-go/v3/internal/testutil" "github.com/openai/openai-go/v3/option" ) func TestFileNewWithOptionalParams(t *testing.T) { baseURL := "http://localhost:4010" if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { baseURL = envURL } if !testutil.CheckTestServer(t, baseURL) { return } client := openai.NewClient( option.WithBaseURL(baseURL), option.WithAPIKey("My API Key"), ) _, err := client.Files.New(context.TODO(), openai.FileNewParams{ File: io.Reader(bytes.NewBuffer([]byte("Example data"))), Purpose: openai.FilePurposeAssistants, ExpiresAfter: openai.FileNewParamsExpiresAfter{ Seconds: 3600, }, }) if err != nil { var apierr *openai.Error if errors.As(err, &apierr) { t.Log(string(apierr.DumpRequest(true))) } t.Fatalf("err should be nil: %s", err.Error()) } } func TestFileGet(t *testing.T) { baseURL := "http://localhost:4010" if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { baseURL = envURL } if !testutil.CheckTestServer(t, baseURL) { return } client := openai.NewClient( option.WithBaseURL(baseURL), option.WithAPIKey("My API Key"), ) _, err := client.Files.Get(context.TODO(), "file_id") if err != nil { var apierr *openai.Error if errors.As(err, &apierr) { t.Log(string(apierr.DumpRequest(true))) } t.Fatalf("err should be nil: %s", err.Error()) } } func TestFileListWithOptionalParams(t *testing.T) { baseURL := "http://localhost:4010" if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { baseURL = envURL } if !testutil.CheckTestServer(t, baseURL) { return } client := openai.NewClient( option.WithBaseURL(baseURL), option.WithAPIKey("My API Key"), ) _, err := client.Files.List(context.TODO(), openai.FileListParams{ After: openai.String("after"), Limit: openai.Int(0), Order: openai.FileListParamsOrderAsc, Purpose: openai.String("purpose"), }) if err != nil { var apierr *openai.Error if errors.As(err, &apierr) { t.Log(string(apierr.DumpRequest(true))) } t.Fatalf("err should be nil: %s", err.Error()) } } func TestFileDelete(t *testing.T) { baseURL := "http://localhost:4010" if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { baseURL = envURL } if !testutil.CheckTestServer(t, baseURL) { return } client := openai.NewClient( option.WithBaseURL(baseURL), option.WithAPIKey("My API Key"), ) _, err := client.Files.Delete(context.TODO(), "file_id") if err != nil { var apierr *openai.Error if errors.As(err, &apierr) { t.Log(string(apierr.DumpRequest(true))) } t.Fatalf("err should be nil: %s", err.Error()) } } func TestFileContent(t *testing.T) { server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { w.WriteHeader(200) w.Write([]byte("abc")) })) defer server.Close() baseURL := server.URL client := openai.NewClient( option.WithBaseURL(baseURL), option.WithAPIKey("My API Key"), ) resp, err := client.Files.Content(context.TODO(), "file_id") if err != nil { var apierr *openai.Error if errors.As(err, &apierr) { t.Log(string(apierr.DumpRequest(true))) } t.Fatalf("err should be nil: %s", err.Error()) } defer resp.Body.Close() b, err := io.ReadAll(resp.Body) if err != nil { var apierr *openai.Error if errors.As(err, &apierr) { t.Log(string(apierr.DumpRequest(true))) } t.Fatalf("err should be nil: %s", err.Error()) } if !bytes.Equal(b, []byte("abc")) { t.Fatalf("return value not %s: %s", "abc", b) } }