Skip to content

Commit 0c1b1e0

Browse files
committed
Address comments
Signed-off-by: Dr. Stefan Schimanski <[email protected]>
1 parent 0d18ae3 commit 0c1b1e0

File tree

3 files changed

+9
-24
lines changed

3 files changed

+9
-24
lines changed

staging/src/k8s.io/apiextensions-apiserver/pkg/test/cel.go

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -33,17 +33,16 @@ import (
3333
celconfig "k8s.io/apiserver/pkg/apis/cel"
3434
)
3535

36-
// FieldValidatorsFromFile extracts the CEL validators by version and JSONPath from a CRD file and returns
37-
// a validator func for testing against samples.
38-
func FieldValidatorsFromFile(t *testing.T, crdFilePath string) (validatorsByVersionByJSONPath map[string]map[string]CELValidateFunc) {
39-
data, err := os.ReadFile(crdFilePath)
36+
// MustLoadManifest loads a CRD from a file and panics on error.
37+
func MustLoadManifest[T any](t *testing.T, pth string) *T {
38+
data, err := os.ReadFile(pth)
4039
require.NoError(t, err)
4140

42-
var crd apiextensionsv1.CustomResourceDefinition
41+
var crd T
4342
err = yaml.Unmarshal(data, &crd)
4443
require.NoError(t, err)
4544

46-
return FieldValidators(t, &crd)
45+
return &crd
4746
}
4847

4948
// FieldValidators extracts the CEL validators by version and JSONPath from a CRD and returns

staging/src/k8s.io/apiextensions-apiserver/pkg/test/example/apiexports_test.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import (
2121

2222
"github.com/stretchr/testify/require"
2323

24+
apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
2425
apitest "k8s.io/apiextensions-apiserver/pkg/test"
2526
)
2627

@@ -126,7 +127,7 @@ func TestAPIExportPermissionClaimCELValidation(t *testing.T) {
126127
},
127128
}
128129

129-
validators := apitest.FieldValidatorsFromFile(t, "apiexports_crd.yaml")
130+
validators := apitest.FieldValidators(t, apitest.MustLoadManifest[apiextensionsv1.CustomResourceDefinition](t, "apiexports_crd.yaml"))
130131

131132
for _, tc := range testCases {
132133
pth := "openAPIV3Schema.properties.spec.properties.permissionClaims.items"
@@ -191,7 +192,7 @@ func TestResourceSelectorCELValidation(t *testing.T) {
191192
},
192193
}
193194

194-
validators := apitest.FieldValidatorsFromFile(t, "apiexports_crd.yaml")
195+
validators := apitest.FieldValidators(t, apitest.MustLoadManifest[apiextensionsv1.CustomResourceDefinition](t, "apiexports_crd.yaml"))
195196

196197
for _, tc := range testCases {
197198
pth := "openAPIV3Schema.properties.spec.properties.permissionClaims.items.properties.resourceSelector.items"
@@ -272,7 +273,7 @@ func TestAPIExportPermissionClaimPattern(t *testing.T) {
272273
},
273274
}
274275

275-
validators := apitest.PatternValidatorsFromFile(t, "apiexports_crd.yaml")
276+
validators := apitest.PatternValidators(t, apitest.MustLoadManifest[apiextensionsv1.CustomResourceDefinition](t, "apiexports_crd.yaml"))
276277

277278
for _, tc := range testCases {
278279
pth := "openAPIV3Schema.properties.spec.properties.permissionClaims.items.properties.resourceSelector.items.properties.name"

staging/src/k8s.io/apiextensions-apiserver/pkg/test/pattern.go

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ package test
1818

1919
import (
2020
"errors"
21-
"os"
2221
"regexp"
2322
"testing"
2423

@@ -28,22 +27,8 @@ import (
2827
apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
2928
"k8s.io/apiextensions-apiserver/pkg/apiserver/schema"
3029
"k8s.io/apimachinery/pkg/util/validation/field"
31-
"sigs.k8s.io/yaml"
3230
)
3331

34-
// PatternValidatorsFromFile extracts the pattern validators by version and JSONPath from a CRD file and returns
35-
// a validator func for testing against samples.
36-
func PatternValidatorsFromFile(t *testing.T, crdFilePath string) (validatorsByVersionByJSONPath map[string]map[string]PatternValidateFunc) {
37-
data, err := os.ReadFile(crdFilePath)
38-
require.NoError(t, err)
39-
40-
var crd apiextensionsv1.CustomResourceDefinition
41-
err = yaml.Unmarshal(data, &crd)
42-
require.NoError(t, err)
43-
44-
return PatternValidators(t, &crd)
45-
}
46-
4732
// PatternValidators extracts the pattern validators by version and JSONPath from a CRD and returns
4833
// a validator func for testing against samples.
4934
func PatternValidators(t *testing.T, crd *apiextensionsv1.CustomResourceDefinition) (validatorsByVersionByJSONPath map[string]map[string]PatternValidateFunc) {

0 commit comments

Comments
 (0)