feat: Support Delete Message API (#799)

* feat: Add DeleteMessage function to API client

* fix: linter

nolint : Deprecated method
split function: cognitive complexity 21

* rename func name for unit-test
This commit is contained in:
Yamagami ken-ichi
2024-08-22 23:27:44 +09:00
committed by GitHub
parent d86425a5cf
commit 6d021190f0
4 changed files with 59 additions and 6 deletions

View File

@@ -8,20 +8,17 @@ import (
"testing"
"github.com/sashabaranov/go-openai"
"github.com/sashabaranov/go-openai/internal/test"
"github.com/sashabaranov/go-openai/internal/test/checks"
)
var emptyStr = ""
// TestMessages Tests the messages endpoint of the API using the mocked server.
func TestMessages(t *testing.T) {
func setupServerForTestMessage(t *testing.T, server *test.ServerTest) {
threadID := "thread_abc123"
messageID := "msg_abc123"
fileID := "file_abc123"
client, server, teardown := setupOpenAITestServer()
defer teardown()
server.RegisterHandler(
"/v1/threads/"+threadID+"/messages/"+messageID+"/files/"+fileID,
func(w http.ResponseWriter, r *http.Request) {
@@ -115,6 +112,13 @@ func TestMessages(t *testing.T) {
Metadata: nil,
})
fmt.Fprintln(w, string(resBytes))
case http.MethodDelete:
resBytes, _ := json.Marshal(openai.MessageDeletionStatus{
ID: messageID,
Object: "thread.message.deleted",
Deleted: true,
})
fmt.Fprintln(w, string(resBytes))
default:
t.Fatalf("unsupported messages http method: %s", r.Method)
}
@@ -176,7 +180,18 @@ func TestMessages(t *testing.T) {
}
},
)
}
// TestMessages Tests the messages endpoint of the API using the mocked server.
func TestMessages(t *testing.T) {
threadID := "thread_abc123"
messageID := "msg_abc123"
fileID := "file_abc123"
client, server, teardown := setupOpenAITestServer()
defer teardown()
setupServerForTestMessage(t, server)
ctx := context.Background()
// static assertion of return type
@@ -225,6 +240,17 @@ func TestMessages(t *testing.T) {
t.Fatalf("expected message metadata to get modified")
}
msgDel, err := client.DeleteMessage(ctx, threadID, messageID)
checks.NoError(t, err, "DeleteMessage error")
if msgDel.ID != messageID {
t.Fatalf("unexpected message id: '%s'", msg.ID)
}
if !msgDel.Deleted {
t.Fatalf("expected deleted is true")
}
_, err = client.DeleteMessage(ctx, threadID, "not_exist_id")
checks.HasError(t, err, "DeleteMessage error")
// message files
var msgFile openai.MessageFile
msgFile, err = client.RetrieveMessageFile(ctx, threadID, messageID, fileID)