Remove superseded configuration loaders and consolidate runtime tests
This commit is contained in:
@@ -11,7 +11,6 @@ import (
|
||||
"testing"
|
||||
|
||||
"gitea.maximumdirect.net/eric/promptkit"
|
||||
"gitea.maximumdirect.net/eric/promptkit/testfixture"
|
||||
)
|
||||
|
||||
func retryHTTPResponse(status int, content string) *http.Response {
|
||||
@@ -25,13 +24,13 @@ func retryHTTPResponse(status int, content string) *http.Response {
|
||||
func retryTestEngine(t *testing.T, budget *int, next func(int) *http.Response) (*promptkit.Engine, *int) {
|
||||
t.Helper()
|
||||
calls := 0
|
||||
config := contractConfig(frameworkSchemaDir)
|
||||
config := simpleConfig("message")
|
||||
config.TransientRetries = budget
|
||||
config.HTTPClient = &http.Client{Transport: roundTripFunc(func(*http.Request) (*http.Response, error) {
|
||||
calls++
|
||||
return next(calls), nil
|
||||
})}
|
||||
engine, err := testfixture.NewEngine(config)
|
||||
engine, err := promptkit.NewEngine(config)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -45,7 +44,7 @@ func TestBuiltInRetryDefaultsAndRequestOverride(t *testing.T) {
|
||||
}
|
||||
return retryHTTPResponse(200, "ok")
|
||||
})
|
||||
result, err := engine.Run(context.Background(), generationErrorRunRequest())
|
||||
result, err := engine.Run(context.Background(), simpleGenerationRequest())
|
||||
if err != nil || result == nil || result.RawOutput != "ok" || *calls != 3 {
|
||||
t.Fatalf("default result=%+v, error=%v, calls=%d", result, err, *calls)
|
||||
}
|
||||
@@ -54,7 +53,7 @@ func TestBuiltInRetryDefaultsAndRequestOverride(t *testing.T) {
|
||||
engine, calls = retryTestEngine(t, &engineBudget, func(int) *http.Response { return retryHTTPResponse(503, "") })
|
||||
engineBudget = 5 // Construction copied the configured value.
|
||||
zero := 0
|
||||
req := generationErrorRunRequest()
|
||||
req := simpleGenerationRequest()
|
||||
req.TransientRetries = &zero
|
||||
_, err = engine.Run(context.Background(), req)
|
||||
if !errors.Is(err, promptkit.ErrLLMGenerate) || errors.Is(err, promptkit.ErrRetriesExhausted) || *calls != 1 {
|
||||
@@ -70,14 +69,14 @@ func TestBuiltInRetryDefaultsAndRequestOverride(t *testing.T) {
|
||||
|
||||
func TestRetryValidationAndPreparedFreezing(t *testing.T) {
|
||||
negative := -1
|
||||
config := contractConfig(frameworkSchemaDir)
|
||||
config := simpleConfig("message")
|
||||
config.TransientRetries = &negative
|
||||
if _, err := testfixture.NewEngine(config); !errors.Is(err, promptkit.ErrInvalidConfig) {
|
||||
if _, err := promptkit.NewEngine(config); !errors.Is(err, promptkit.ErrInvalidConfig) {
|
||||
t.Fatalf("negative engine budget = %v", err)
|
||||
}
|
||||
|
||||
engine, calls := retryTestEngine(t, nil, func(int) *http.Response { return retryHTTPResponse(503, "") })
|
||||
req := generationErrorRunRequest()
|
||||
req := simpleGenerationRequest()
|
||||
req.TransientRetries = &negative
|
||||
if _, err := engine.Prepare(context.Background(), req); !errors.Is(err, promptkit.ErrInvalidRequest) {
|
||||
t.Fatalf("Prepare negative budget = %v", err)
|
||||
@@ -95,7 +94,7 @@ func TestRetryValidationAndPreparedFreezing(t *testing.T) {
|
||||
largeBudgetEngine, largeCalls := retryTestEngine(t, &maximum, func(int) *http.Response {
|
||||
return retryHTTPResponse(200, "ok")
|
||||
})
|
||||
if _, err := largeBudgetEngine.Run(context.Background(), generationErrorRunRequest()); err != nil || *largeCalls != 1 {
|
||||
if _, err := largeBudgetEngine.Run(context.Background(), simpleGenerationRequest()); err != nil || *largeCalls != 1 {
|
||||
t.Fatalf("large valid budget: error=%v, calls=%d", err, *largeCalls)
|
||||
}
|
||||
|
||||
@@ -124,7 +123,7 @@ func TestBuiltInRetryBudgetAppliesToRepairGeneration(t *testing.T) {
|
||||
return retryHTTPResponse(200, `{"ok":true}`)
|
||||
}
|
||||
})
|
||||
req := generationErrorRunRequest()
|
||||
req := simpleGenerationRequest()
|
||||
req.Validation = &promptkit.OutputContract{Format: promptkit.FormatJSON, ValidationMode: promptkit.ValidationJSON, RepairAttempts: 1}
|
||||
result, err := engine.Run(context.Background(), req)
|
||||
if err != nil || result == nil || !result.Validation.IsValid || *calls != 4 {
|
||||
@@ -135,7 +134,7 @@ func TestBuiltInRetryBudgetAppliesToRepairGeneration(t *testing.T) {
|
||||
func TestRetryExhaustionRetainsPublicProviderCause(t *testing.T) {
|
||||
one := 1
|
||||
engine, calls := retryTestEngine(t, &one, func(int) *http.Response { return retryHTTPResponse(503, "") })
|
||||
result, err := engine.Run(context.Background(), generationErrorRunRequest())
|
||||
result, err := engine.Run(context.Background(), simpleGenerationRequest())
|
||||
if result != nil || *calls != 2 || !errors.Is(err, promptkit.ErrRetriesExhausted) || !errors.Is(err, promptkit.ErrLLMGenerate) {
|
||||
t.Fatalf("exhaustion result=%+v, error=%v, calls=%d", result, err, *calls)
|
||||
}
|
||||
@@ -161,9 +160,9 @@ func TestRetryExhaustionRetainsPublicProviderCause(t *testing.T) {
|
||||
|
||||
func TestInjectedClientIsNotAutomaticallyRetried(t *testing.T) {
|
||||
client := &fakeLLMClient{err: errors.New("injected failure")}
|
||||
engine := newContractEngineWithOptions(t, frameworkSchemaDir, promptkit.WithLLMClient(client))
|
||||
engine := newSimpleEngine(t, "message", promptkit.WithLLMClient(client))
|
||||
count := 3
|
||||
req := generationErrorRunRequest()
|
||||
req := simpleGenerationRequest()
|
||||
req.TransientRetries = &count
|
||||
_, err := engine.Run(context.Background(), req)
|
||||
if len(client.requests) != 1 || !errors.Is(err, client.err) || errors.Is(err, promptkit.ErrRetriesExhausted) {
|
||||
|
||||
Reference in New Issue
Block a user