feat(sync): full code sync from release
This commit is contained in:
@@ -0,0 +1,141 @@
|
||||
package service
|
||||
|
||||
import (
|
||||
"context"
|
||||
"strings"
|
||||
"testing"
|
||||
"time"
|
||||
)
|
||||
|
||||
func TestCollectSelectionFailureStats(t *testing.T) {
|
||||
svc := &GatewayService{}
|
||||
model := "sora2-landscape-10s"
|
||||
resetAt := time.Now().Add(2 * time.Minute).Format(time.RFC3339)
|
||||
|
||||
accounts := []Account{
|
||||
// excluded
|
||||
{
|
||||
ID: 1,
|
||||
Platform: PlatformSora,
|
||||
Status: StatusActive,
|
||||
Schedulable: true,
|
||||
},
|
||||
// unschedulable
|
||||
{
|
||||
ID: 2,
|
||||
Platform: PlatformSora,
|
||||
Status: StatusActive,
|
||||
Schedulable: false,
|
||||
},
|
||||
// platform filtered
|
||||
{
|
||||
ID: 3,
|
||||
Platform: PlatformOpenAI,
|
||||
Status: StatusActive,
|
||||
Schedulable: true,
|
||||
},
|
||||
// model unsupported
|
||||
{
|
||||
ID: 4,
|
||||
Platform: PlatformSora,
|
||||
Status: StatusActive,
|
||||
Schedulable: true,
|
||||
Credentials: map[string]any{
|
||||
"model_mapping": map[string]any{
|
||||
"gpt-image": "gpt-image",
|
||||
},
|
||||
},
|
||||
},
|
||||
// model rate limited
|
||||
{
|
||||
ID: 5,
|
||||
Platform: PlatformSora,
|
||||
Status: StatusActive,
|
||||
Schedulable: true,
|
||||
Extra: map[string]any{
|
||||
"model_rate_limits": map[string]any{
|
||||
model: map[string]any{
|
||||
"rate_limit_reset_at": resetAt,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
// eligible
|
||||
{
|
||||
ID: 6,
|
||||
Platform: PlatformSora,
|
||||
Status: StatusActive,
|
||||
Schedulable: true,
|
||||
},
|
||||
}
|
||||
|
||||
excluded := map[int64]struct{}{1: {}}
|
||||
stats := svc.collectSelectionFailureStats(context.Background(), accounts, model, PlatformSora, excluded, false)
|
||||
|
||||
if stats.Total != 6 {
|
||||
t.Fatalf("total=%d want=6", stats.Total)
|
||||
}
|
||||
if stats.Excluded != 1 {
|
||||
t.Fatalf("excluded=%d want=1", stats.Excluded)
|
||||
}
|
||||
if stats.Unschedulable != 1 {
|
||||
t.Fatalf("unschedulable=%d want=1", stats.Unschedulable)
|
||||
}
|
||||
if stats.PlatformFiltered != 1 {
|
||||
t.Fatalf("platform_filtered=%d want=1", stats.PlatformFiltered)
|
||||
}
|
||||
if stats.ModelUnsupported != 1 {
|
||||
t.Fatalf("model_unsupported=%d want=1", stats.ModelUnsupported)
|
||||
}
|
||||
if stats.ModelRateLimited != 1 {
|
||||
t.Fatalf("model_rate_limited=%d want=1", stats.ModelRateLimited)
|
||||
}
|
||||
if stats.Eligible != 1 {
|
||||
t.Fatalf("eligible=%d want=1", stats.Eligible)
|
||||
}
|
||||
}
|
||||
|
||||
func TestDiagnoseSelectionFailure_SoraUnschedulableDetail(t *testing.T) {
|
||||
svc := &GatewayService{}
|
||||
acc := &Account{
|
||||
ID: 7,
|
||||
Platform: PlatformSora,
|
||||
Status: StatusActive,
|
||||
Schedulable: false,
|
||||
}
|
||||
|
||||
diagnosis := svc.diagnoseSelectionFailure(context.Background(), acc, "sora2-landscape-10s", PlatformSora, map[int64]struct{}{}, false)
|
||||
if diagnosis.Category != "unschedulable" {
|
||||
t.Fatalf("category=%s want=unschedulable", diagnosis.Category)
|
||||
}
|
||||
if diagnosis.Detail != "schedulable=false" {
|
||||
t.Fatalf("detail=%s want=schedulable=false", diagnosis.Detail)
|
||||
}
|
||||
}
|
||||
|
||||
func TestDiagnoseSelectionFailure_SoraModelRateLimitedDetail(t *testing.T) {
|
||||
svc := &GatewayService{}
|
||||
model := "sora2-landscape-10s"
|
||||
resetAt := time.Now().Add(2 * time.Minute).UTC().Format(time.RFC3339)
|
||||
acc := &Account{
|
||||
ID: 8,
|
||||
Platform: PlatformSora,
|
||||
Status: StatusActive,
|
||||
Schedulable: true,
|
||||
Extra: map[string]any{
|
||||
"model_rate_limits": map[string]any{
|
||||
model: map[string]any{
|
||||
"rate_limit_reset_at": resetAt,
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
diagnosis := svc.diagnoseSelectionFailure(context.Background(), acc, model, PlatformSora, map[int64]struct{}{}, false)
|
||||
if diagnosis.Category != "model_rate_limited" {
|
||||
t.Fatalf("category=%s want=model_rate_limited", diagnosis.Category)
|
||||
}
|
||||
if !strings.Contains(diagnosis.Detail, "remaining=") {
|
||||
t.Fatalf("detail=%s want contains remaining=", diagnosis.Detail)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user