feat: publish v1.0.0-rc.36-custom.1
Publish Docker image (Multi-arch) / Build & push (amd64) (push) Failing after 9m20s
Release (Linux, macOS, Windows) / Linux Release (push) Failing after 55m7s
Publish Docker image (Multi-arch) / Build & push (arm64) (push) Canceled after 0s
Release (Linux, macOS, Windows) / macOS Release (push) Canceled after 0s
Release (Linux, macOS, Windows) / Windows Release (push) Canceled after 0s
Publish Docker image (Multi-arch) / Create multi-arch manifests (push) Canceled after 0s
Publish Docker image (Multi-arch) / Build & push (amd64) (push) Failing after 9m20s
Release (Linux, macOS, Windows) / Linux Release (push) Failing after 55m7s
Publish Docker image (Multi-arch) / Build & push (arm64) (push) Canceled after 0s
Release (Linux, macOS, Windows) / macOS Release (push) Canceled after 0s
Release (Linux, macOS, Windows) / Windows Release (push) Canceled after 0s
Publish Docker image (Multi-arch) / Create multi-arch manifests (push) Canceled after 0s
This commit is contained in:
commit
bb7968b612
2381 files changed
+551494
No files matched your search
@@ -0,0 +1,93 @@
|
||||
package model
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/QuantumNous/new-api/common"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestTaskToOpenAIVideoDoesNotExposeResultURL(t *testing.T) {
|
||||
task := &Task{
|
||||
TaskID: "task_public",
|
||||
Status: TaskStatusSuccess,
|
||||
Progress: "100%",
|
||||
CreatedAt: 10,
|
||||
UpdatedAt: 20,
|
||||
Properties: Properties{
|
||||
OriginModelName: "video-model",
|
||||
},
|
||||
PrivateData: TaskPrivateData{
|
||||
ResultURL: "https://upstream.example/video.mp4?signature=secret",
|
||||
},
|
||||
}
|
||||
|
||||
video := task.ToOpenAIVideo()
|
||||
|
||||
assert.Equal(t, "task_public", video.ID)
|
||||
assert.Equal(t, "video", video.Object)
|
||||
assert.Equal(t, "completed", video.Status)
|
||||
assert.Nil(t, video.Metadata)
|
||||
|
||||
encoded, err := common.Marshal(video)
|
||||
require.NoError(t, err)
|
||||
assert.NotContains(t, string(encoded), "upstream.example")
|
||||
assert.NotContains(t, string(encoded), "signature")
|
||||
}
|
||||
|
||||
func TestTaskToOpenAIVideoStatusAndCompletedAt(t *testing.T) {
|
||||
tests := []struct {
|
||||
name string
|
||||
task Task
|
||||
wantStatus string
|
||||
wantCompletedAt int64
|
||||
wantCompletedAtJSON bool
|
||||
}{
|
||||
{
|
||||
name: "not start maps to queued",
|
||||
task: Task{TaskID: "t1", Status: TaskStatusNotStart, CreatedAt: 10, UpdatedAt: 20},
|
||||
wantStatus: "queued",
|
||||
wantCompletedAt: 0,
|
||||
},
|
||||
{
|
||||
name: "in progress omits completed at",
|
||||
task: Task{TaskID: "t2", Status: TaskStatusInProgress, CreatedAt: 10, UpdatedAt: 20, FinishTime: 30},
|
||||
wantStatus: "in_progress",
|
||||
wantCompletedAt: 0,
|
||||
},
|
||||
{
|
||||
name: "success uses finish time",
|
||||
task: Task{TaskID: "t3", Status: TaskStatusSuccess, CreatedAt: 10, UpdatedAt: 20, FinishTime: 30},
|
||||
wantStatus: "completed",
|
||||
wantCompletedAt: 30,
|
||||
wantCompletedAtJSON: true,
|
||||
},
|
||||
{
|
||||
name: "success falls back to updated at",
|
||||
task: Task{TaskID: "t4", Status: TaskStatusSuccess, CreatedAt: 10, UpdatedAt: 20},
|
||||
wantStatus: "completed",
|
||||
wantCompletedAt: 20,
|
||||
wantCompletedAtJSON: true,
|
||||
},
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
video := tt.task.ToOpenAIVideo()
|
||||
assert.Equal(t, tt.wantStatus, video.Status)
|
||||
assert.Equal(t, tt.wantCompletedAt, video.CompletedAt)
|
||||
|
||||
encoded, err := common.Marshal(video)
|
||||
require.NoError(t, err)
|
||||
var fields map[string]any
|
||||
require.NoError(t, common.Unmarshal(encoded, &fields))
|
||||
if tt.wantCompletedAtJSON {
|
||||
require.Contains(t, fields, "completed_at")
|
||||
assert.Equal(t, float64(tt.wantCompletedAt), fields["completed_at"])
|
||||
} else {
|
||||
assert.NotContains(t, fields, "completed_at")
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user