diff --git a/federation/client/clientset_generated/federation_clientset/fake/clientset_generated.go b/federation/client/clientset_generated/federation_clientset/fake/clientset_generated.go index 72c8a9b3ae..86f5810139 100644 --- a/federation/client/clientset_generated/federation_clientset/fake/clientset_generated.go +++ b/federation/client/clientset_generated/federation_clientset/fake/clientset_generated.go @@ -49,10 +49,9 @@ func NewSimpleClientset(objects ...runtime.Object) *Clientset { fakePtr := testing.Fake{} fakePtr.AddReactor("*", "*", testing.ObjectReaction(o)) - fakePtr.AddWatchReactor("*", testing.DefaultWatchReactor(watch.NewFake(), nil)) - return &Clientset{fakePtr} + return &Clientset{fakePtr, &fakediscovery.FakeDiscovery{Fake: &fakePtr}} } // Clientset implements clientset.Interface. Meant to be embedded into a @@ -60,10 +59,11 @@ func NewSimpleClientset(objects ...runtime.Object) *Clientset { // you want to test easier. type Clientset struct { testing.Fake + discovery *fakediscovery.FakeDiscovery } func (c *Clientset) Discovery() discovery.DiscoveryInterface { - return &fakediscovery.FakeDiscovery{Fake: &c.Fake} + return c.discovery } var _ clientset.Interface = &Clientset{} diff --git a/pkg/client/clientset_generated/internalclientset/fake/clientset_generated.go b/pkg/client/clientset_generated/internalclientset/fake/clientset_generated.go index c3e3f1facb..bd30e8ae18 100644 --- a/pkg/client/clientset_generated/internalclientset/fake/clientset_generated.go +++ b/pkg/client/clientset_generated/internalclientset/fake/clientset_generated.go @@ -69,10 +69,9 @@ func NewSimpleClientset(objects ...runtime.Object) *Clientset { fakePtr := testing.Fake{} fakePtr.AddReactor("*", "*", testing.ObjectReaction(o)) - fakePtr.AddWatchReactor("*", testing.DefaultWatchReactor(watch.NewFake(), nil)) - return &Clientset{fakePtr} + return &Clientset{fakePtr, &fakediscovery.FakeDiscovery{Fake: &fakePtr}} } // Clientset implements clientset.Interface. Meant to be embedded into a @@ -80,10 +79,11 @@ func NewSimpleClientset(objects ...runtime.Object) *Clientset { // you want to test easier. type Clientset struct { testing.Fake + discovery *fakediscovery.FakeDiscovery } func (c *Clientset) Discovery() discovery.DiscoveryInterface { - return &fakediscovery.FakeDiscovery{Fake: &c.Fake} + return c.discovery } var _ clientset.Interface = &Clientset{} diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/fake/clientset_generated.go b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/fake/clientset_generated.go index 84d77409b6..473f88f47d 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/fake/clientset_generated.go +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/fake/clientset_generated.go @@ -41,10 +41,9 @@ func NewSimpleClientset(objects ...runtime.Object) *Clientset { fakePtr := testing.Fake{} fakePtr.AddReactor("*", "*", testing.ObjectReaction(o)) - fakePtr.AddWatchReactor("*", testing.DefaultWatchReactor(watch.NewFake(), nil)) - return &Clientset{fakePtr} + return &Clientset{fakePtr, &fakediscovery.FakeDiscovery{Fake: &fakePtr}} } // Clientset implements clientset.Interface. Meant to be embedded into a @@ -52,10 +51,11 @@ func NewSimpleClientset(objects ...runtime.Object) *Clientset { // you want to test easier. type Clientset struct { testing.Fake + discovery *fakediscovery.FakeDiscovery } func (c *Clientset) Discovery() discovery.DiscoveryInterface { - return &fakediscovery.FakeDiscovery{Fake: &c.Fake} + return c.discovery } var _ clientset.Interface = &Clientset{} diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/internalclientset/fake/clientset_generated.go b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/internalclientset/fake/clientset_generated.go index 7b798eff61..fdc0beee57 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/internalclientset/fake/clientset_generated.go +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/internalclientset/fake/clientset_generated.go @@ -41,10 +41,9 @@ func NewSimpleClientset(objects ...runtime.Object) *Clientset { fakePtr := testing.Fake{} fakePtr.AddReactor("*", "*", testing.ObjectReaction(o)) - fakePtr.AddWatchReactor("*", testing.DefaultWatchReactor(watch.NewFake(), nil)) - return &Clientset{fakePtr} + return &Clientset{fakePtr, &fakediscovery.FakeDiscovery{Fake: &fakePtr}} } // Clientset implements clientset.Interface. Meant to be embedded into a @@ -52,10 +51,11 @@ func NewSimpleClientset(objects ...runtime.Object) *Clientset { // you want to test easier. type Clientset struct { testing.Fake + discovery *fakediscovery.FakeDiscovery } func (c *Clientset) Discovery() discovery.DiscoveryInterface { - return &fakediscovery.FakeDiscovery{Fake: &c.Fake} + return c.discovery } var _ clientset.Interface = &Clientset{} diff --git a/staging/src/k8s.io/client-go/discovery/fake/BUILD b/staging/src/k8s.io/client-go/discovery/fake/BUILD index ac28a2244a..f4ef7d219a 100644 --- a/staging/src/k8s.io/client-go/discovery/fake/BUILD +++ b/staging/src/k8s.io/client-go/discovery/fake/BUILD @@ -30,6 +30,9 @@ filegroup( filegroup( name = "all-srcs", - srcs = [":package-srcs"], + srcs = [ + ":package-srcs", + "//staging/src/k8s.io/client-go/discovery/fake/test:all-srcs", + ], tags = ["automanaged"], ) diff --git a/staging/src/k8s.io/client-go/discovery/fake/discovery.go b/staging/src/k8s.io/client-go/discovery/fake/discovery.go index 02e77cfe71..0b757ad4ee 100644 --- a/staging/src/k8s.io/client-go/discovery/fake/discovery.go +++ b/staging/src/k8s.io/client-go/discovery/fake/discovery.go @@ -31,8 +31,11 @@ import ( "k8s.io/client-go/testing" ) +// FakeDiscovery implements discovery.DiscoveryInterface and sometimes calls testing.Fake.Invoke with an action, +// but doesn't respect the return value if any. There is a way to fake static values like ServerVersion by using the Faked... fields on the struct. type FakeDiscovery struct { *testing.Fake + FakedServerVersion *version.Info } func (c *FakeDiscovery) ServerResourcesForGroupVersion(groupVersion string) (*metav1.APIResourceList, error) { @@ -74,8 +77,12 @@ func (c *FakeDiscovery) ServerVersion() (*version.Info, error) { action := testing.ActionImpl{} action.Verb = "get" action.Resource = schema.GroupVersionResource{Resource: "version"} - c.Invokes(action, nil) + + if c.FakedServerVersion != nil { + return c.FakedServerVersion, nil + } + versionInfo := kubeversion.Get() return &versionInfo, nil } diff --git a/staging/src/k8s.io/client-go/discovery/fake/test/BUILD b/staging/src/k8s.io/client-go/discovery/fake/test/BUILD new file mode 100644 index 0000000000..eb19f919f8 --- /dev/null +++ b/staging/src/k8s.io/client-go/discovery/fake/test/BUILD @@ -0,0 +1,25 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_test") + +go_test( + name = "go_default_test", + srcs = ["discovery_test.go"], + deps = [ + "//vendor/k8s.io/apimachinery/pkg/version:go_default_library", + "//vendor/k8s.io/client-go/discovery/fake:go_default_library", + "//vendor/k8s.io/client-go/kubernetes/fake:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/staging/src/k8s.io/client-go/discovery/fake/test/discovery_test.go b/staging/src/k8s.io/client-go/discovery/fake/test/discovery_test.go new file mode 100644 index 0000000000..816f6a7404 --- /dev/null +++ b/staging/src/k8s.io/client-go/discovery/fake/test/discovery_test.go @@ -0,0 +1,46 @@ +/* +Copyright 2017 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package fake + +import ( + "testing" + + "k8s.io/apimachinery/pkg/version" + fakediscovery "k8s.io/client-go/discovery/fake" + fakeclientset "k8s.io/client-go/kubernetes/fake" +) + +func TestFakingServerVersion(t *testing.T) { + client := fakeclientset.NewSimpleClientset() + fakeDiscovery, ok := client.Discovery().(*fakediscovery.FakeDiscovery) + if !ok { + t.Fatalf("couldn't convert Discovery() to *FakeDiscovery") + } + + testGitCommit := "v1.0.0" + fakeDiscovery.FakedServerVersion = &version.Info{ + GitCommit: testGitCommit, + } + + sv, err := client.Discovery().ServerVersion() + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + if sv.GitCommit != testGitCommit { + t.Fatalf("unexpected faked discovery return value: %q", sv.GitCommit) + } +} diff --git a/staging/src/k8s.io/client-go/kubernetes/fake/clientset_generated.go b/staging/src/k8s.io/client-go/kubernetes/fake/clientset_generated.go index 5569e92b7d..22937ccecd 100644 --- a/staging/src/k8s.io/client-go/kubernetes/fake/clientset_generated.go +++ b/staging/src/k8s.io/client-go/kubernetes/fake/clientset_generated.go @@ -87,10 +87,9 @@ func NewSimpleClientset(objects ...runtime.Object) *Clientset { fakePtr := testing.Fake{} fakePtr.AddReactor("*", "*", testing.ObjectReaction(o)) - fakePtr.AddWatchReactor("*", testing.DefaultWatchReactor(watch.NewFake(), nil)) - return &Clientset{fakePtr} + return &Clientset{fakePtr, &fakediscovery.FakeDiscovery{Fake: &fakePtr}} } // Clientset implements clientset.Interface. Meant to be embedded into a @@ -98,10 +97,11 @@ func NewSimpleClientset(objects ...runtime.Object) *Clientset { // you want to test easier. type Clientset struct { testing.Fake + discovery *fakediscovery.FakeDiscovery } func (c *Clientset) Discovery() discovery.DiscoveryInterface { - return &fakediscovery.FakeDiscovery{Fake: &c.Fake} + return c.discovery } var _ clientset.Interface = &Clientset{} diff --git a/staging/src/k8s.io/code-generator/cmd/client-gen/generators/fake/generator_fake_for_clientset.go b/staging/src/k8s.io/code-generator/cmd/client-gen/generators/fake/generator_fake_for_clientset.go index aa2d3b8dbe..c28c1378c2 100644 --- a/staging/src/k8s.io/code-generator/cmd/client-gen/generators/fake/generator_fake_for_clientset.go +++ b/staging/src/k8s.io/code-generator/cmd/client-gen/generators/fake/generator_fake_for_clientset.go @@ -117,10 +117,9 @@ func NewSimpleClientset(objects ...runtime.Object) *Clientset { fakePtr := testing.Fake{} fakePtr.AddReactor("*", "*", testing.ObjectReaction(o)) - fakePtr.AddWatchReactor("*", testing.DefaultWatchReactor(watch.NewFake(), nil)) - return &Clientset{fakePtr} + return &Clientset{fakePtr, &fakediscovery.FakeDiscovery{Fake: &fakePtr}} } // Clientset implements clientset.Interface. Meant to be embedded into a @@ -128,10 +127,11 @@ func NewSimpleClientset(objects ...runtime.Object) *Clientset { // you want to test easier. type Clientset struct { testing.Fake + discovery *fakediscovery.FakeDiscovery } func (c *Clientset) Discovery() discovery.DiscoveryInterface { - return &fakediscovery.FakeDiscovery{Fake: &c.Fake} + return c.discovery } ` diff --git a/staging/src/k8s.io/code-generator/test/clientset/internal/fake/clientset_generated.go b/staging/src/k8s.io/code-generator/test/clientset/internal/fake/clientset_generated.go index 5778923911..f9b344cb73 100644 --- a/staging/src/k8s.io/code-generator/test/clientset/internal/fake/clientset_generated.go +++ b/staging/src/k8s.io/code-generator/test/clientset/internal/fake/clientset_generated.go @@ -41,10 +41,9 @@ func NewSimpleClientset(objects ...runtime.Object) *Clientset { fakePtr := testing.Fake{} fakePtr.AddReactor("*", "*", testing.ObjectReaction(o)) - fakePtr.AddWatchReactor("*", testing.DefaultWatchReactor(watch.NewFake(), nil)) - return &Clientset{fakePtr} + return &Clientset{fakePtr, &fakediscovery.FakeDiscovery{Fake: &fakePtr}} } // Clientset implements clientset.Interface. Meant to be embedded into a @@ -52,10 +51,11 @@ func NewSimpleClientset(objects ...runtime.Object) *Clientset { // you want to test easier. type Clientset struct { testing.Fake + discovery *fakediscovery.FakeDiscovery } func (c *Clientset) Discovery() discovery.DiscoveryInterface { - return &fakediscovery.FakeDiscovery{Fake: &c.Fake} + return c.discovery } var _ clientset.Interface = &Clientset{} diff --git a/staging/src/k8s.io/code-generator/test/clientset/versioned/fake/clientset_generated.go b/staging/src/k8s.io/code-generator/test/clientset/versioned/fake/clientset_generated.go index 3967979b09..24760a590b 100644 --- a/staging/src/k8s.io/code-generator/test/clientset/versioned/fake/clientset_generated.go +++ b/staging/src/k8s.io/code-generator/test/clientset/versioned/fake/clientset_generated.go @@ -41,10 +41,9 @@ func NewSimpleClientset(objects ...runtime.Object) *Clientset { fakePtr := testing.Fake{} fakePtr.AddReactor("*", "*", testing.ObjectReaction(o)) - fakePtr.AddWatchReactor("*", testing.DefaultWatchReactor(watch.NewFake(), nil)) - return &Clientset{fakePtr} + return &Clientset{fakePtr, &fakediscovery.FakeDiscovery{Fake: &fakePtr}} } // Clientset implements clientset.Interface. Meant to be embedded into a @@ -52,10 +51,11 @@ func NewSimpleClientset(objects ...runtime.Object) *Clientset { // you want to test easier. type Clientset struct { testing.Fake + discovery *fakediscovery.FakeDiscovery } func (c *Clientset) Discovery() discovery.DiscoveryInterface { - return &fakediscovery.FakeDiscovery{Fake: &c.Fake} + return c.discovery } var _ clientset.Interface = &Clientset{} diff --git a/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/fake/clientset_generated.go b/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/fake/clientset_generated.go index 99984095b0..bae1428420 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/fake/clientset_generated.go +++ b/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/fake/clientset_generated.go @@ -41,10 +41,9 @@ func NewSimpleClientset(objects ...runtime.Object) *Clientset { fakePtr := testing.Fake{} fakePtr.AddReactor("*", "*", testing.ObjectReaction(o)) - fakePtr.AddWatchReactor("*", testing.DefaultWatchReactor(watch.NewFake(), nil)) - return &Clientset{fakePtr} + return &Clientset{fakePtr, &fakediscovery.FakeDiscovery{Fake: &fakePtr}} } // Clientset implements clientset.Interface. Meant to be embedded into a @@ -52,10 +51,11 @@ func NewSimpleClientset(objects ...runtime.Object) *Clientset { // you want to test easier. type Clientset struct { testing.Fake + discovery *fakediscovery.FakeDiscovery } func (c *Clientset) Discovery() discovery.DiscoveryInterface { - return &fakediscovery.FakeDiscovery{Fake: &c.Fake} + return c.discovery } var _ clientset.Interface = &Clientset{} diff --git a/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/internalclientset/fake/clientset_generated.go b/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/internalclientset/fake/clientset_generated.go index a52bdf23e3..d938683de7 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/internalclientset/fake/clientset_generated.go +++ b/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/internalclientset/fake/clientset_generated.go @@ -41,10 +41,9 @@ func NewSimpleClientset(objects ...runtime.Object) *Clientset { fakePtr := testing.Fake{} fakePtr.AddReactor("*", "*", testing.ObjectReaction(o)) - fakePtr.AddWatchReactor("*", testing.DefaultWatchReactor(watch.NewFake(), nil)) - return &Clientset{fakePtr} + return &Clientset{fakePtr, &fakediscovery.FakeDiscovery{Fake: &fakePtr}} } // Clientset implements clientset.Interface. Meant to be embedded into a @@ -52,10 +51,11 @@ func NewSimpleClientset(objects ...runtime.Object) *Clientset { // you want to test easier. type Clientset struct { testing.Fake + discovery *fakediscovery.FakeDiscovery } func (c *Clientset) Discovery() discovery.DiscoveryInterface { - return &fakediscovery.FakeDiscovery{Fake: &c.Fake} + return c.discovery } var _ clientset.Interface = &Clientset{} diff --git a/staging/src/k8s.io/metrics/pkg/client/clientset_generated/clientset/fake/clientset_generated.go b/staging/src/k8s.io/metrics/pkg/client/clientset_generated/clientset/fake/clientset_generated.go index a9a6b403d1..19b4b0fa48 100644 --- a/staging/src/k8s.io/metrics/pkg/client/clientset_generated/clientset/fake/clientset_generated.go +++ b/staging/src/k8s.io/metrics/pkg/client/clientset_generated/clientset/fake/clientset_generated.go @@ -41,10 +41,9 @@ func NewSimpleClientset(objects ...runtime.Object) *Clientset { fakePtr := testing.Fake{} fakePtr.AddReactor("*", "*", testing.ObjectReaction(o)) - fakePtr.AddWatchReactor("*", testing.DefaultWatchReactor(watch.NewFake(), nil)) - return &Clientset{fakePtr} + return &Clientset{fakePtr, &fakediscovery.FakeDiscovery{Fake: &fakePtr}} } // Clientset implements clientset.Interface. Meant to be embedded into a @@ -52,10 +51,11 @@ func NewSimpleClientset(objects ...runtime.Object) *Clientset { // you want to test easier. type Clientset struct { testing.Fake + discovery *fakediscovery.FakeDiscovery } func (c *Clientset) Discovery() discovery.DiscoveryInterface { - return &fakediscovery.FakeDiscovery{Fake: &c.Fake} + return c.discovery } var _ clientset.Interface = &Clientset{} diff --git a/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/clientset/fake/clientset_generated.go b/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/clientset/fake/clientset_generated.go index 8465c3af29..55ce2b67f2 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/clientset/fake/clientset_generated.go +++ b/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/clientset/fake/clientset_generated.go @@ -41,10 +41,9 @@ func NewSimpleClientset(objects ...runtime.Object) *Clientset { fakePtr := testing.Fake{} fakePtr.AddReactor("*", "*", testing.ObjectReaction(o)) - fakePtr.AddWatchReactor("*", testing.DefaultWatchReactor(watch.NewFake(), nil)) - return &Clientset{fakePtr} + return &Clientset{fakePtr, &fakediscovery.FakeDiscovery{Fake: &fakePtr}} } // Clientset implements clientset.Interface. Meant to be embedded into a @@ -52,10 +51,11 @@ func NewSimpleClientset(objects ...runtime.Object) *Clientset { // you want to test easier. type Clientset struct { testing.Fake + discovery *fakediscovery.FakeDiscovery } func (c *Clientset) Discovery() discovery.DiscoveryInterface { - return &fakediscovery.FakeDiscovery{Fake: &c.Fake} + return c.discovery } var _ clientset.Interface = &Clientset{} diff --git a/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/internalclientset/fake/clientset_generated.go b/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/internalclientset/fake/clientset_generated.go index dc6cb86e8f..765e438656 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/internalclientset/fake/clientset_generated.go +++ b/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/internalclientset/fake/clientset_generated.go @@ -41,10 +41,9 @@ func NewSimpleClientset(objects ...runtime.Object) *Clientset { fakePtr := testing.Fake{} fakePtr.AddReactor("*", "*", testing.ObjectReaction(o)) - fakePtr.AddWatchReactor("*", testing.DefaultWatchReactor(watch.NewFake(), nil)) - return &Clientset{fakePtr} + return &Clientset{fakePtr, &fakediscovery.FakeDiscovery{Fake: &fakePtr}} } // Clientset implements clientset.Interface. Meant to be embedded into a @@ -52,10 +51,11 @@ func NewSimpleClientset(objects ...runtime.Object) *Clientset { // you want to test easier. type Clientset struct { testing.Fake + discovery *fakediscovery.FakeDiscovery } func (c *Clientset) Discovery() discovery.DiscoveryInterface { - return &fakediscovery.FakeDiscovery{Fake: &c.Fake} + return c.discovery } var _ clientset.Interface = &Clientset{}