mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-06 02:34:03 +00:00
Address comments
Signed-off-by: Dr. Stefan Schimanski <stefan.schimanski@gmail.com>
This commit is contained in:
parent
0d18ae303b
commit
0c1b1e0450
@ -33,17 +33,16 @@ import (
|
||||
celconfig "k8s.io/apiserver/pkg/apis/cel"
|
||||
)
|
||||
|
||||
// FieldValidatorsFromFile extracts the CEL validators by version and JSONPath from a CRD file and returns
|
||||
// a validator func for testing against samples.
|
||||
func FieldValidatorsFromFile(t *testing.T, crdFilePath string) (validatorsByVersionByJSONPath map[string]map[string]CELValidateFunc) {
|
||||
data, err := os.ReadFile(crdFilePath)
|
||||
// MustLoadManifest loads a CRD from a file and panics on error.
|
||||
func MustLoadManifest[T any](t *testing.T, pth string) *T {
|
||||
data, err := os.ReadFile(pth)
|
||||
require.NoError(t, err)
|
||||
|
||||
var crd apiextensionsv1.CustomResourceDefinition
|
||||
var crd T
|
||||
err = yaml.Unmarshal(data, &crd)
|
||||
require.NoError(t, err)
|
||||
|
||||
return FieldValidators(t, &crd)
|
||||
return &crd
|
||||
}
|
||||
|
||||
// FieldValidators extracts the CEL validators by version and JSONPath from a CRD and returns
|
||||
|
@ -21,6 +21,7 @@ import (
|
||||
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
|
||||
apitest "k8s.io/apiextensions-apiserver/pkg/test"
|
||||
)
|
||||
|
||||
@ -126,7 +127,7 @@ func TestAPIExportPermissionClaimCELValidation(t *testing.T) {
|
||||
},
|
||||
}
|
||||
|
||||
validators := apitest.FieldValidatorsFromFile(t, "apiexports_crd.yaml")
|
||||
validators := apitest.FieldValidators(t, apitest.MustLoadManifest[apiextensionsv1.CustomResourceDefinition](t, "apiexports_crd.yaml"))
|
||||
|
||||
for _, tc := range testCases {
|
||||
pth := "openAPIV3Schema.properties.spec.properties.permissionClaims.items"
|
||||
@ -191,7 +192,7 @@ func TestResourceSelectorCELValidation(t *testing.T) {
|
||||
},
|
||||
}
|
||||
|
||||
validators := apitest.FieldValidatorsFromFile(t, "apiexports_crd.yaml")
|
||||
validators := apitest.FieldValidators(t, apitest.MustLoadManifest[apiextensionsv1.CustomResourceDefinition](t, "apiexports_crd.yaml"))
|
||||
|
||||
for _, tc := range testCases {
|
||||
pth := "openAPIV3Schema.properties.spec.properties.permissionClaims.items.properties.resourceSelector.items"
|
||||
@ -272,7 +273,7 @@ func TestAPIExportPermissionClaimPattern(t *testing.T) {
|
||||
},
|
||||
}
|
||||
|
||||
validators := apitest.PatternValidatorsFromFile(t, "apiexports_crd.yaml")
|
||||
validators := apitest.PatternValidators(t, apitest.MustLoadManifest[apiextensionsv1.CustomResourceDefinition](t, "apiexports_crd.yaml"))
|
||||
|
||||
for _, tc := range testCases {
|
||||
pth := "openAPIV3Schema.properties.spec.properties.permissionClaims.items.properties.resourceSelector.items.properties.name"
|
||||
|
@ -18,7 +18,6 @@ package test
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"os"
|
||||
"regexp"
|
||||
"testing"
|
||||
|
||||
@ -28,22 +27,8 @@ import (
|
||||
apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
|
||||
"k8s.io/apiextensions-apiserver/pkg/apiserver/schema"
|
||||
"k8s.io/apimachinery/pkg/util/validation/field"
|
||||
"sigs.k8s.io/yaml"
|
||||
)
|
||||
|
||||
// PatternValidatorsFromFile extracts the pattern validators by version and JSONPath from a CRD file and returns
|
||||
// a validator func for testing against samples.
|
||||
func PatternValidatorsFromFile(t *testing.T, crdFilePath string) (validatorsByVersionByJSONPath map[string]map[string]PatternValidateFunc) {
|
||||
data, err := os.ReadFile(crdFilePath)
|
||||
require.NoError(t, err)
|
||||
|
||||
var crd apiextensionsv1.CustomResourceDefinition
|
||||
err = yaml.Unmarshal(data, &crd)
|
||||
require.NoError(t, err)
|
||||
|
||||
return PatternValidators(t, &crd)
|
||||
}
|
||||
|
||||
// PatternValidators extracts the pattern validators by version and JSONPath from a CRD and returns
|
||||
// a validator func for testing against samples.
|
||||
func PatternValidators(t *testing.T, crd *apiextensionsv1.CustomResourceDefinition) (validatorsByVersionByJSONPath map[string]map[string]PatternValidateFunc) {
|
||||
|
Loading…
Reference in New Issue
Block a user