mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-07 19:23:40 +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"
|
celconfig "k8s.io/apiserver/pkg/apis/cel"
|
||||||
)
|
)
|
||||||
|
|
||||||
// FieldValidatorsFromFile extracts the CEL validators by version and JSONPath from a CRD file and returns
|
// MustLoadManifest loads a CRD from a file and panics on error.
|
||||||
// a validator func for testing against samples.
|
func MustLoadManifest[T any](t *testing.T, pth string) *T {
|
||||||
func FieldValidatorsFromFile(t *testing.T, crdFilePath string) (validatorsByVersionByJSONPath map[string]map[string]CELValidateFunc) {
|
data, err := os.ReadFile(pth)
|
||||||
data, err := os.ReadFile(crdFilePath)
|
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
var crd apiextensionsv1.CustomResourceDefinition
|
var crd T
|
||||||
err = yaml.Unmarshal(data, &crd)
|
err = yaml.Unmarshal(data, &crd)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
return FieldValidators(t, &crd)
|
return &crd
|
||||||
}
|
}
|
||||||
|
|
||||||
// FieldValidators extracts the CEL validators by version and JSONPath from a CRD and returns
|
// FieldValidators extracts the CEL validators by version and JSONPath from a CRD and returns
|
||||||
|
@ -21,6 +21,7 @@ import (
|
|||||||
|
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
|
|
||||||
|
apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
|
||||||
apitest "k8s.io/apiextensions-apiserver/pkg/test"
|
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 {
|
for _, tc := range testCases {
|
||||||
pth := "openAPIV3Schema.properties.spec.properties.permissionClaims.items"
|
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 {
|
for _, tc := range testCases {
|
||||||
pth := "openAPIV3Schema.properties.spec.properties.permissionClaims.items.properties.resourceSelector.items"
|
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 {
|
for _, tc := range testCases {
|
||||||
pth := "openAPIV3Schema.properties.spec.properties.permissionClaims.items.properties.resourceSelector.items.properties.name"
|
pth := "openAPIV3Schema.properties.spec.properties.permissionClaims.items.properties.resourceSelector.items.properties.name"
|
||||||
|
@ -18,7 +18,6 @@ package test
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
"os"
|
|
||||||
"regexp"
|
"regexp"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
@ -28,22 +27,8 @@ import (
|
|||||||
apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
|
apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
|
||||||
"k8s.io/apiextensions-apiserver/pkg/apiserver/schema"
|
"k8s.io/apiextensions-apiserver/pkg/apiserver/schema"
|
||||||
"k8s.io/apimachinery/pkg/util/validation/field"
|
"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
|
// PatternValidators extracts the pattern validators by version and JSONPath from a CRD and returns
|
||||||
// a validator func for testing against samples.
|
// a validator func for testing against samples.
|
||||||
func PatternValidators(t *testing.T, crd *apiextensionsv1.CustomResourceDefinition) (validatorsByVersionByJSONPath map[string]map[string]PatternValidateFunc) {
|
func PatternValidators(t *testing.T, crd *apiextensionsv1.CustomResourceDefinition) (validatorsByVersionByJSONPath map[string]map[string]PatternValidateFunc) {
|
||||||
|
Loading…
Reference in New Issue
Block a user