github.com/anthropics/anthropic-sdk-go@v1.70.1/betafile_test.go (about)

     1  // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
     2  
     3  package anthropic_test
     4  
     5  import (
     6  	"bytes"
     7  	"context"
     8  	"errors"
     9  	"io"
    10  	"net/http"
    11  	"net/http/httptest"
    12  	"os"
    13  	"testing"
    14  
    15  	"github.com/anthropics/anthropic-sdk-go"
    16  	"github.com/anthropics/anthropic-sdk-go/internal/testutil"
    17  	"github.com/anthropics/anthropic-sdk-go/option"
    18  )
    19  
    20  func TestBetaFileListWithOptionalParams(t *testing.T) {
    21  	baseURL := "http://localhost:4010"
    22  	if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok {
    23  		baseURL = envURL
    24  	}
    25  	if !testutil.CheckTestServer(t, baseURL) {
    26  		return
    27  	}
    28  	client := anthropic.NewClient(
    29  		option.WithBaseURL(baseURL),
    30  		option.WithAPIKey("my-anthropic-api-key"),
    31  	)
    32  	_, err := client.Beta.Files.List(context.TODO(), anthropic.BetaFileListParams{
    33  		IDs:         []string{"string"},
    34  		Limit:       anthropic.Int(1),
    35  		Page:        anthropic.String("page"),
    36  		ScopeID:     anthropic.String("scope_id"),
    37  		Betas:       []anthropic.AnthropicBeta{anthropic.AnthropicBetaMessageBatches2024_09_24},
    38  		WorkspaceID: anthropic.String("wrkspc_011CZkZaBF1tNoB5wlCeusgy"),
    39  	})
    40  	if err != nil {
    41  		var apierr *anthropic.Error
    42  		if errors.As(err, &apierr) {
    43  			t.Log(string(apierr.DumpRequest(true)))
    44  		}
    45  		t.Fatalf("err should be nil: %s", err.Error())
    46  	}
    47  }
    48  
    49  func TestBetaFileDeleteWithOptionalParams(t *testing.T) {
    50  	baseURL := "http://localhost:4010"
    51  	if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok {
    52  		baseURL = envURL
    53  	}
    54  	if !testutil.CheckTestServer(t, baseURL) {
    55  		return
    56  	}
    57  	client := anthropic.NewClient(
    58  		option.WithBaseURL(baseURL),
    59  		option.WithAPIKey("my-anthropic-api-key"),
    60  	)
    61  	_, err := client.Beta.Files.Delete(
    62  		context.TODO(),
    63  		"file_id",
    64  		anthropic.BetaFileDeleteParams{
    65  			Betas:       []anthropic.AnthropicBeta{anthropic.AnthropicBetaMessageBatches2024_09_24},
    66  			WorkspaceID: anthropic.String("wrkspc_011CZkZaBF1tNoB5wlCeusgy"),
    67  		},
    68  	)
    69  	if err != nil {
    70  		var apierr *anthropic.Error
    71  		if errors.As(err, &apierr) {
    72  			t.Log(string(apierr.DumpRequest(true)))
    73  		}
    74  		t.Fatalf("err should be nil: %s", err.Error())
    75  	}
    76  }
    77  
    78  func TestBetaFileDownloadWithOptionalParams(t *testing.T) {
    79  	server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
    80  		w.WriteHeader(200)
    81  		w.Write([]byte("abc"))
    82  	}))
    83  	defer server.Close()
    84  	baseURL := server.URL
    85  	client := anthropic.NewClient(
    86  		option.WithBaseURL(baseURL),
    87  		option.WithAPIKey("my-anthropic-api-key"),
    88  	)
    89  	resp, err := client.Beta.Files.Download(
    90  		context.TODO(),
    91  		"file_id",
    92  		anthropic.BetaFileDownloadParams{
    93  			Betas:       []anthropic.AnthropicBeta{anthropic.AnthropicBetaMessageBatches2024_09_24},
    94  			WorkspaceID: anthropic.String("wrkspc_011CZkZaBF1tNoB5wlCeusgy"),
    95  		},
    96  	)
    97  	if err != nil {
    98  		var apierr *anthropic.Error
    99  		if errors.As(err, &apierr) {
   100  			t.Log(string(apierr.DumpRequest(true)))
   101  		}
   102  		t.Fatalf("err should be nil: %s", err.Error())
   103  	}
   104  	defer resp.Body.Close()
   105  
   106  	b, err := io.ReadAll(resp.Body)
   107  	if err != nil {
   108  		var apierr *anthropic.Error
   109  		if errors.As(err, &apierr) {
   110  			t.Log(string(apierr.DumpRequest(true)))
   111  		}
   112  		t.Fatalf("err should be nil: %s", err.Error())
   113  	}
   114  	if !bytes.Equal(b, []byte("abc")) {
   115  		t.Fatalf("return value not %s: %s", "abc", b)
   116  	}
   117  }
   118  
   119  func TestBetaFileGetMetadataWithOptionalParams(t *testing.T) {
   120  	baseURL := "http://localhost:4010"
   121  	if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok {
   122  		baseURL = envURL
   123  	}
   124  	if !testutil.CheckTestServer(t, baseURL) {
   125  		return
   126  	}
   127  	client := anthropic.NewClient(
   128  		option.WithBaseURL(baseURL),
   129  		option.WithAPIKey("my-anthropic-api-key"),
   130  	)
   131  	_, err := client.Beta.Files.GetMetadata(
   132  		context.TODO(),
   133  		"file_id",
   134  		anthropic.BetaFileGetMetadataParams{
   135  			Betas:       []anthropic.AnthropicBeta{anthropic.AnthropicBetaMessageBatches2024_09_24},
   136  			WorkspaceID: anthropic.String("wrkspc_011CZkZaBF1tNoB5wlCeusgy"),
   137  		},
   138  	)
   139  	if err != nil {
   140  		var apierr *anthropic.Error
   141  		if errors.As(err, &apierr) {
   142  			t.Log(string(apierr.DumpRequest(true)))
   143  		}
   144  		t.Fatalf("err should be nil: %s", err.Error())
   145  	}
   146  }
   147  
   148  func TestBetaFileUploadWithOptionalParams(t *testing.T) {
   149  	baseURL := "http://localhost:4010"
   150  	if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok {
   151  		baseURL = envURL
   152  	}
   153  	if !testutil.CheckTestServer(t, baseURL) {
   154  		return
   155  	}
   156  	client := anthropic.NewClient(
   157  		option.WithBaseURL(baseURL),
   158  		option.WithAPIKey("my-anthropic-api-key"),
   159  	)
   160  	_, err := client.Beta.Files.Upload(context.TODO(), anthropic.BetaFileUploadParams{
   161  		File:             io.Reader(bytes.NewBuffer([]byte("Example data"))),
   162  		ExpiresInSeconds: anthropic.Int(3600),
   163  		Betas:            []anthropic.AnthropicBeta{anthropic.AnthropicBetaMessageBatches2024_09_24},
   164  		WorkspaceID:      anthropic.String("wrkspc_011CZkZaBF1tNoB5wlCeusgy"),
   165  	})
   166  	if err != nil {
   167  		var apierr *anthropic.Error
   168  		if errors.As(err, &apierr) {
   169  			t.Log(string(apierr.DumpRequest(true)))
   170  		}
   171  		t.Fatalf("err should be nil: %s", err.Error())
   172  	}
   173  }