mirror of
https://github.com/k3s-io/kubernetes.git
synced 2026-07-18 04:54:54 +00:00
refactor: simplify declarative validation tests for ResourceClaim
This commit is contained in:
@@ -21,12 +21,9 @@ import (
|
||||
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/util/validation/field"
|
||||
genericapirequest "k8s.io/apiserver/pkg/endpoints/request"
|
||||
utilfeature "k8s.io/apiserver/pkg/util/feature"
|
||||
"k8s.io/client-go/kubernetes/fake"
|
||||
featuregatetesting "k8s.io/component-base/featuregate/testing"
|
||||
apitesting "k8s.io/kubernetes/pkg/api/testing"
|
||||
"k8s.io/kubernetes/pkg/apis/resource"
|
||||
"k8s.io/kubernetes/pkg/features"
|
||||
)
|
||||
|
||||
var apiVersions = []string{"v1beta1", "v1beta2", "v1"} // "v1alpha3" is excluded because it doesn't have ResourceClaim
|
||||
@@ -59,23 +56,7 @@ func testDeclarativeValidate(t *testing.T, apiVersion string) {
|
||||
}
|
||||
for k, tc := range testCases {
|
||||
t.Run(k, func(t *testing.T) {
|
||||
var declarativeTakeoverErrs field.ErrorList
|
||||
var imperativeErrs field.ErrorList
|
||||
for _, gateVal := range []bool{true, false} {
|
||||
featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.DeclarativeValidation, gateVal)
|
||||
featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.DeclarativeValidationTakeover, gateVal)
|
||||
|
||||
errs := Strategy.Validate(ctx, &tc.input)
|
||||
if gateVal {
|
||||
declarativeTakeoverErrs = errs
|
||||
} else {
|
||||
imperativeErrs = errs
|
||||
}
|
||||
}
|
||||
equivalenceMatcher := field.ErrorMatcher{}.ByType().ByField().ByOrigin()
|
||||
equivalenceMatcher.Test(t, imperativeErrs, declarativeTakeoverErrs)
|
||||
|
||||
apitesting.VerifyVersionedValidationEquivalence(t, &tc.input, nil)
|
||||
apitesting.VerifyValidationEquivalence(t, ctx, &tc.input, Strategy.Validate, tc.expectedErrs)
|
||||
})
|
||||
}
|
||||
}
|
||||
@@ -111,23 +92,7 @@ func testDeclarativeValidateUpdate(t *testing.T, apiVersion string) {
|
||||
}
|
||||
for k, tc := range testCases {
|
||||
t.Run(k, func(t *testing.T) {
|
||||
var declarativeTakeoverErrs field.ErrorList
|
||||
var imperativeErrs field.ErrorList
|
||||
for _, gateVal := range []bool{true, false} {
|
||||
featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.DeclarativeValidation, gateVal)
|
||||
featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.DeclarativeValidationTakeover, gateVal)
|
||||
|
||||
errs := Strategy.ValidateUpdate(ctx, &tc.update, &tc.old)
|
||||
if gateVal {
|
||||
declarativeTakeoverErrs = errs
|
||||
} else {
|
||||
imperativeErrs = errs
|
||||
}
|
||||
}
|
||||
equivalenceMatcher := field.ErrorMatcher{}.ByType().ByField().ByOrigin()
|
||||
equivalenceMatcher.Test(t, imperativeErrs, declarativeTakeoverErrs)
|
||||
|
||||
apitesting.VerifyVersionedValidationEquivalence(t, &tc.update, &tc.old)
|
||||
apitesting.VerifyUpdateValidationEquivalence(t, ctx, &tc.update, &tc.old, Strategy.ValidateUpdate, tc.expectedErrs)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user