MCPcopy Create free account
hub / github.com/astercloud/aster / TestModelFallbackManager_AllModelsFail

Function TestModelFallbackManager_AllModelsFail

pkg/agent/model_fallback_test.go:202–263  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

200}
201
202func TestModelFallbackManager_AllModelsFail(t *testing.T) {
203 factory := NewMockProviderFactory()
204
205 // 所有模型都失败
206 factory.SetProvider("openai/gpt-4", &MockProvider{
207 name: "openai/gpt-4",
208 shouldFail: true,
209 failCount: 999,
210 })
211
212 factory.SetProvider("anthropic/claude-3", &MockProvider{
213 name: "anthropic/claude-3",
214 shouldFail: true,
215 failCount: 999,
216 })
217
218 deps := &Dependencies{
219 ProviderFactory: factory,
220 }
221
222 fallbacks := []*ModelFallback{
223 {
224 Config: &types.ModelConfig{
225 Provider: "openai",
226 Model: "gpt-4",
227 },
228 MaxRetries: 1,
229 Enabled: true,
230 Priority: 1,
231 },
232 {
233 Config: &types.ModelConfig{
234 Provider: "anthropic",
235 Model: "claude-3",
236 },
237 MaxRetries: 1,
238 Enabled: true,
239 Priority: 2,
240 },
241 }
242
243 manager, err := NewModelFallbackManager(fallbacks, deps)
244 if err != nil {
245 t.Fatalf("Failed to create manager: %v", err)
246 }
247
248 ctx := context.Background()
249 messages := []types.Message{
250 {Role: "user", Content: "Hello"},
251 }
252
253 _, err = manager.Complete(ctx, messages, nil)
254 if err == nil {
255 t.Fatal("Expected error when all models fail")
256 }
257
258 // 检查统计信息
259 stats := manager.GetStats()

Callers

nothing calls this directly

Calls 5

SetProviderMethod · 0.95
CompleteMethod · 0.95
GetStatsMethod · 0.95
NewModelFallbackManagerFunction · 0.85
NewMockProviderFactoryFunction · 0.70

Tested by

no test coverage detected