ccpoad / internal /util /time_env_test.go
anyalerob's picture
Upload folder using huggingface_hub
2986042 verified
Raw
History Blame Contribute Delete
2.93 kB
package util
import (
"testing"
"time"
)
func TestEnvSecondsFrom(t *testing.T) {
t.Parallel()
getenv := func(k string) string {
switch k {
case "OK":
return "12"
case "BAD":
return "x"
case "ZERO":
return "0"
case "NEG":
return "-1"
default:
return ""
}
}
if got := envSecondsFrom(getenv, "MISSING"); got != 0 {
t.Fatalf("missing: got %v, want 0", got)
}
if got := envSecondsFrom(getenv, "BAD"); got != 0 {
t.Fatalf("bad: got %v, want 0", got)
}
if got := envSecondsFrom(getenv, "ZERO"); got != 0 {
t.Fatalf("zero: got %v, want 0", got)
}
if got := envSecondsFrom(getenv, "NEG"); got != 0 {
t.Fatalf("neg: got %v, want 0", got)
}
if got := envSecondsFrom(getenv, "OK"); got != 12*time.Second {
t.Fatalf("ok: got %v, want %v", got, 12*time.Second)
}
}
func TestApplyCooldownEnvOverrides(t *testing.T) {
origAuth := AuthErrorInitialCooldown
origTimeout := TimeoutErrorCooldown
origServer := ServerErrorInitialCooldown
origRateLimit := RateLimitErrorCooldown
origMax := MaxCooldownDuration
origMin := MinCooldownDuration
t.Cleanup(func() {
AuthErrorInitialCooldown = origAuth
TimeoutErrorCooldown = origTimeout
ServerErrorInitialCooldown = origServer
RateLimitErrorCooldown = origRateLimit
MaxCooldownDuration = origMax
MinCooldownDuration = origMin
})
// 先重置到一组可预测值,避免受 init() 的环境变量影响
AuthErrorInitialCooldown = 5 * time.Minute
TimeoutErrorCooldown = 1 * time.Minute
ServerErrorInitialCooldown = 2 * time.Minute
RateLimitErrorCooldown = 1 * time.Minute
MaxCooldownDuration = 30 * time.Minute
MinCooldownDuration = 10 * time.Second
getenv := func(k string) string {
switch k {
case "CCLOAD_COOLDOWN_AUTH_SEC":
return "7"
case "CCLOAD_COOLDOWN_TIMEOUT_SEC":
return ""
case "CCLOAD_COOLDOWN_SERVER_SEC":
return "9"
case "CCLOAD_COOLDOWN_RATE_LIMIT_SEC":
return "x"
case "CCLOAD_COOLDOWN_MAX_SEC":
return "1800"
case "CCLOAD_COOLDOWN_MIN_SEC":
return "11"
default:
return ""
}
}
applyCooldownEnvOverrides(getenv)
if AuthErrorInitialCooldown != 7*time.Second {
t.Fatalf("AuthErrorInitialCooldown=%v, want %v", AuthErrorInitialCooldown, 7*time.Second)
}
if TimeoutErrorCooldown != 1*time.Minute {
t.Fatalf("TimeoutErrorCooldown=%v, want unchanged %v", TimeoutErrorCooldown, 1*time.Minute)
}
if ServerErrorInitialCooldown != 9*time.Second {
t.Fatalf("ServerErrorInitialCooldown=%v, want %v", ServerErrorInitialCooldown, 9*time.Second)
}
if RateLimitErrorCooldown != 1*time.Minute {
t.Fatalf("RateLimitErrorCooldown=%v, want unchanged %v", RateLimitErrorCooldown, 1*time.Minute)
}
if MaxCooldownDuration != 1800*time.Second {
t.Fatalf("MaxCooldownDuration=%v, want %v", MaxCooldownDuration, 1800*time.Second)
}
if MinCooldownDuration != 11*time.Second {
t.Fatalf("MinCooldownDuration=%v, want %v", MinCooldownDuration, 11*time.Second)
}
}