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,92 @@
|
||||
package plugins_test
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/QuantumNous/new-api/common"
|
||||
"github.com/QuantumNous/new-api/pkg/jsplugin"
|
||||
builtinplugins "github.com/QuantumNous/new-api/plugins"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestJimengResponsesProtocol(t *testing.T) {
|
||||
testVideoResponsesProtocol(t, videoResponsesTestCase{
|
||||
pluginKey: "jimeng",
|
||||
model: "jimeng_vgfm_t2v_l20",
|
||||
requestBody: map[string]any{
|
||||
"model": "jimeng_vgfm_t2v_l20",
|
||||
"input": "a paper boat on a river",
|
||||
"seconds": 10,
|
||||
"metadata": map[string]any{
|
||||
"aspect_ratio": "16:9",
|
||||
},
|
||||
},
|
||||
wantAction: "text_to_video",
|
||||
wantRequest: map[string]any{
|
||||
"model": "jimeng_vgfm_t2v_l20",
|
||||
"prompt": "a paper boat on a river",
|
||||
"duration": float64(10),
|
||||
"metadata": map[string]any{"aspect_ratio": "16:9"},
|
||||
},
|
||||
wantUsageKeys: []string{"product", "seconds"},
|
||||
wantVendorName: "jimeng",
|
||||
})
|
||||
}
|
||||
|
||||
func loadJimengPlugin(t *testing.T) *jsplugin.LoadedPlugin {
|
||||
t.Helper()
|
||||
source, err := builtinplugins.Source("jimeng")
|
||||
require.NoError(t, err)
|
||||
plugin, err := jsplugin.NewRegistry().RegisterFactory(source, jsplugin.Options{Key: "jimeng"})
|
||||
require.NoError(t, err)
|
||||
return plugin
|
||||
}
|
||||
|
||||
func TestJimengSubmitStateDrivesQueryReqKey(t *testing.T) {
|
||||
plugin := loadJimengPlugin(t)
|
||||
submitValue, err := plugin.Engine.Call(t.Context(), "parseSubmitResponse", map[string]any{
|
||||
"upstreamModel": "jimeng_vgfm_i2v_l20",
|
||||
"requestBody": map[string]any{"images": []any{"https://cdn.example/frame.png"}},
|
||||
}, map[string]any{"body": map[string]any{"code": 10000, "data": map[string]any{"task_id": "t1"}}})
|
||||
require.NoError(t, err)
|
||||
encoded, err := common.Marshal(submitValue)
|
||||
require.NoError(t, err)
|
||||
var submit map[string]any
|
||||
require.NoError(t, common.Unmarshal(encoded, &submit))
|
||||
state, ok := submit["state"].(map[string]any)
|
||||
require.True(t, ok)
|
||||
assert.Equal(t, "jimeng_vgfm_i2v_l20", state["req_key"])
|
||||
|
||||
queryValue, err := plugin.Engine.Call(t.Context(), "buildQueryRequest", map[string]any{
|
||||
"taskId": "t1",
|
||||
"action": "text_to_video",
|
||||
"baseUrl": "https://jimeng.example",
|
||||
"apiKey": "sk-test",
|
||||
"state": map[string]any{"req_key": "custom_req_key"},
|
||||
})
|
||||
require.NoError(t, err)
|
||||
queryEncoded, err := common.Marshal(queryValue)
|
||||
require.NoError(t, err)
|
||||
var query map[string]any
|
||||
require.NoError(t, common.Unmarshal(queryEncoded, &query))
|
||||
var body map[string]any
|
||||
require.NoError(t, common.UnmarshalJsonStr(common.Interface2String(query["body"]), &body))
|
||||
assert.Equal(t, "custom_req_key", body["req_key"])
|
||||
assert.Equal(t, "t1", body["task_id"])
|
||||
}
|
||||
|
||||
func TestJimengParseTaskResultUnknownStatus(t *testing.T) {
|
||||
plugin := loadJimengPlugin(t)
|
||||
value, err := plugin.Engine.Call(t.Context(), "parseTaskResult", map[string]any{}, map[string]any{
|
||||
"code": 10000,
|
||||
"data": map[string]any{"status": "weird"},
|
||||
})
|
||||
require.NoError(t, err)
|
||||
encoded, err := common.Marshal(value)
|
||||
require.NoError(t, err)
|
||||
var result map[string]any
|
||||
require.NoError(t, common.Unmarshal(encoded, &result))
|
||||
assert.Equal(t, "UNKNOWN", result["status"])
|
||||
assert.Contains(t, common.Interface2String(result["reason"]), "weird")
|
||||
}
|
||||
Reference in new issue
Block a user