mirror of
https://github.com/kubernetes/client-go.git
synced 2025-06-20 20:34:04 +00:00
Remove test dependency on swwagger.json to fix client-go repo
Kubernetes-commit: 1095af88e7d30198e13299ea90c5f81b95ec8a3b
This commit is contained in:
parent
8ffa531474
commit
dd940936ee
@ -17,13 +17,10 @@ limitations under the License.
|
|||||||
package testing
|
package testing
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"encoding/json"
|
|
||||||
"fmt"
|
"fmt"
|
||||||
"math/rand"
|
"math/rand"
|
||||||
"os"
|
"sigs.k8s.io/structured-merge-diff/v4/typed"
|
||||||
"path/filepath"
|
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
|
||||||
"sync"
|
"sync"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
@ -40,7 +37,6 @@ import (
|
|||||||
"k8s.io/apimachinery/pkg/types"
|
"k8s.io/apimachinery/pkg/types"
|
||||||
"k8s.io/apimachinery/pkg/util/managedfields"
|
"k8s.io/apimachinery/pkg/util/managedfields"
|
||||||
"k8s.io/apimachinery/pkg/watch"
|
"k8s.io/apimachinery/pkg/watch"
|
||||||
"k8s.io/kube-openapi/pkg/validation/spec"
|
|
||||||
"k8s.io/utils/ptr"
|
"k8s.io/utils/ptr"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -289,7 +285,7 @@ func TestApplyCreate(t *testing.T) {
|
|||||||
scheme := runtime.NewScheme()
|
scheme := runtime.NewScheme()
|
||||||
scheme.AddKnownTypes(cmResource.GroupVersion(), &v1.ConfigMap{})
|
scheme.AddKnownTypes(cmResource.GroupVersion(), &v1.ConfigMap{})
|
||||||
codecs := serializer.NewCodecFactory(scheme)
|
codecs := serializer.NewCodecFactory(scheme)
|
||||||
o := NewFieldManagedObjectTracker(scheme, codecs.UniversalDecoder(), fakeTypeConverter)
|
o := NewFieldManagedObjectTracker(scheme, codecs.UniversalDecoder(), configMapTypeConverter(scheme))
|
||||||
|
|
||||||
reaction := ObjectReaction(o)
|
reaction := ObjectReaction(o)
|
||||||
patch := []byte(`{"apiVersion": "v1", "kind": "ConfigMap", "metadata": {"name": "cm-1"}, "data": {"k": "v"}}`)
|
patch := []byte(`{"apiVersion": "v1", "kind": "ConfigMap", "metadata": {"name": "cm-1"}, "data": {"k": "v"}}`)
|
||||||
@ -309,7 +305,7 @@ func TestApplyUpdateMultipleFieldManagers(t *testing.T) {
|
|||||||
scheme := runtime.NewScheme()
|
scheme := runtime.NewScheme()
|
||||||
scheme.AddKnownTypes(cmResource.GroupVersion(), &v1.ConfigMap{})
|
scheme.AddKnownTypes(cmResource.GroupVersion(), &v1.ConfigMap{})
|
||||||
codecs := serializer.NewCodecFactory(scheme)
|
codecs := serializer.NewCodecFactory(scheme)
|
||||||
o := NewFieldManagedObjectTracker(scheme, codecs.UniversalDecoder(), fakeTypeConverter)
|
o := NewFieldManagedObjectTracker(scheme, codecs.UniversalDecoder(), configMapTypeConverter(scheme))
|
||||||
|
|
||||||
reaction := ObjectReaction(o)
|
reaction := ObjectReaction(o)
|
||||||
action := NewCreateAction(cmResource, "default", &v1.ConfigMap{
|
action := NewCreateAction(cmResource, "default", &v1.ConfigMap{
|
||||||
@ -549,24 +545,98 @@ func Test_resourceCovers(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var fakeTypeConverter = func() managedfields.TypeConverter {
|
func configMapTypeConverter(scheme *runtime.Scheme) managedfields.TypeConverter {
|
||||||
data, err := os.ReadFile(filepath.Join(strings.Repeat(".."+string(filepath.Separator), 5),
|
parser, err := typed.NewParser(configMapTypedSchema)
|
||||||
"api", "openapi-spec", "swagger.json"))
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(fmt.Sprintf("Failed to parse schema: %v", err))
|
||||||
}
|
}
|
||||||
swag := spec.Swagger{}
|
|
||||||
if err := json.Unmarshal(data, &swag); err != nil {
|
return TypeConverter{Scheme: scheme, TypeResolver: parser}
|
||||||
panic(err)
|
}
|
||||||
}
|
|
||||||
convertedDefs := map[string]*spec.Schema{}
|
var configMapTypedSchema = typed.YAMLObject(`types:
|
||||||
for k, v := range swag.Definitions {
|
- name: io.k8s.api.core.v1.ConfigMap
|
||||||
vCopy := v
|
map:
|
||||||
convertedDefs[k] = &vCopy
|
fields:
|
||||||
}
|
- name: apiVersion
|
||||||
typeConverter, err := managedfields.NewTypeConverter(convertedDefs, false)
|
type:
|
||||||
if err != nil {
|
scalar: string
|
||||||
panic(err)
|
- name: data
|
||||||
}
|
type:
|
||||||
return typeConverter
|
map:
|
||||||
}()
|
elementType:
|
||||||
|
scalar: string
|
||||||
|
- name: kind
|
||||||
|
type:
|
||||||
|
scalar: string
|
||||||
|
- name: metadata
|
||||||
|
type:
|
||||||
|
namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta
|
||||||
|
default: {}
|
||||||
|
- name: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta
|
||||||
|
map:
|
||||||
|
fields:
|
||||||
|
- name: creationTimestamp
|
||||||
|
type:
|
||||||
|
namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time
|
||||||
|
- name: managedFields
|
||||||
|
type:
|
||||||
|
list:
|
||||||
|
elementType:
|
||||||
|
namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry
|
||||||
|
elementRelationship: atomic
|
||||||
|
- name: name
|
||||||
|
type:
|
||||||
|
scalar: string
|
||||||
|
- name: namespace
|
||||||
|
type:
|
||||||
|
scalar: string
|
||||||
|
- name: io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry
|
||||||
|
map:
|
||||||
|
fields:
|
||||||
|
- name: apiVersion
|
||||||
|
type:
|
||||||
|
scalar: string
|
||||||
|
- name: fieldsType
|
||||||
|
type:
|
||||||
|
scalar: string
|
||||||
|
- name: fieldsV1
|
||||||
|
type:
|
||||||
|
namedType: io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1
|
||||||
|
- name: manager
|
||||||
|
type:
|
||||||
|
scalar: string
|
||||||
|
- name: operation
|
||||||
|
type:
|
||||||
|
scalar: string
|
||||||
|
- name: subresource
|
||||||
|
type:
|
||||||
|
scalar: string
|
||||||
|
- name: time
|
||||||
|
type:
|
||||||
|
namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time
|
||||||
|
- name: io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1
|
||||||
|
map:
|
||||||
|
elementType:
|
||||||
|
scalar: untyped
|
||||||
|
list:
|
||||||
|
elementType:
|
||||||
|
namedType: __untyped_atomic_
|
||||||
|
elementRelationship: atomic
|
||||||
|
map:
|
||||||
|
elementType:
|
||||||
|
namedType: __untyped_deduced_
|
||||||
|
elementRelationship: separable
|
||||||
|
- name: io.k8s.apimachinery.pkg.apis.meta.v1.Time
|
||||||
|
scalar: untyped
|
||||||
|
- name: __untyped_deduced_
|
||||||
|
scalar: untyped
|
||||||
|
list:
|
||||||
|
elementType:
|
||||||
|
namedType: __untyped_atomic_
|
||||||
|
elementRelationship: atomic
|
||||||
|
map:
|
||||||
|
elementType:
|
||||||
|
namedType: __untyped_deduced_
|
||||||
|
elementRelationship: separable
|
||||||
|
`)
|
||||||
|
Loading…
Reference in New Issue
Block a user