From 0c1b1e04501e9a61c844152a2736ce926de804e0 Mon Sep 17 00:00:00 2001 From: "Dr. Stefan Schimanski" Date: Mon, 16 Dec 2024 13:51:06 +0100 Subject: [PATCH] Address comments Signed-off-by: Dr. Stefan Schimanski --- .../apiextensions-apiserver/pkg/test/cel.go | 11 +++++------ .../pkg/test/example/apiexports_test.go | 7 ++++--- .../apiextensions-apiserver/pkg/test/pattern.go | 15 --------------- 3 files changed, 9 insertions(+), 24 deletions(-) diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/test/cel.go b/staging/src/k8s.io/apiextensions-apiserver/pkg/test/cel.go index 4ef64c18ba4..f88d2a63663 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/test/cel.go +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/test/cel.go @@ -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 diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/test/example/apiexports_test.go b/staging/src/k8s.io/apiextensions-apiserver/pkg/test/example/apiexports_test.go index 5f1a1c249e2..830ce6fb712 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/test/example/apiexports_test.go +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/test/example/apiexports_test.go @@ -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" diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/test/pattern.go b/staging/src/k8s.io/apiextensions-apiserver/pkg/test/pattern.go index 7f9796e5599..2c4da5f79bf 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/test/pattern.go +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/test/pattern.go @@ -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) {