Skip to content

Commit 56b470e

Browse files
Merge pull request #126503 from skitt/generic-fake-client
Use generics to share code in fake client-go implementations Kubernetes-commit: 31970d418ccae80c9c7e25e8c503035a79a53763
2 parents c7820d2 + 43ff2eb commit 56b470e

File tree

31 files changed

+550
-2539
lines changed

31 files changed

+550
-2539
lines changed

cmd/client-gen/generators/fake/fake_client_generator.go

+1-2
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,8 @@ func TargetForGroup(gv clientgentypes.GroupVersion, typeList []*types.Type, clie
5858
OutputFilename: "fake_" + strings.ToLower(c.Namers["private"].Name(t)) + ".go",
5959
},
6060
outputPackage: outputPkg,
61+
realClientPackage: realClientPkg,
6162
inputPackage: inputPkg,
62-
group: gv.Group.NonEmpty(),
6363
version: gv.Version.String(),
6464
groupGoName: groupGoName,
6565
typeToMatch: t,
@@ -74,7 +74,6 @@ func TargetForGroup(gv clientgentypes.GroupVersion, typeList []*types.Type, clie
7474
},
7575
outputPackage: outputPkg,
7676
realClientPackage: realClientPkg,
77-
group: gv.Group.NonEmpty(),
7877
version: gv.Version.String(),
7978
groupGoName: groupGoName,
8079
types: typeList,

cmd/client-gen/generators/fake/generator_fake_for_group.go

+4-3
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@ type genFakeForGroup struct {
3434
generator.GoGenerator
3535
outputPackage string // must be a Go import-path
3636
realClientPackage string // must be a Go import-path
37-
group string
3837
version string
3938
groupGoName string
4039
// types in this group
@@ -78,6 +77,8 @@ func (g *genFakeForGroup) GenerateType(c *generator.Context, t *types.Type, w io
7877
"Fake": c.Universe.Type(types.Name{Package: "k8s.io/client-go/testing", Name: "Fake"}),
7978
"RESTClientInterface": c.Universe.Type(types.Name{Package: "k8s.io/client-go/rest", Name: "Interface"}),
8079
"RESTClient": c.Universe.Type(types.Name{Package: "k8s.io/client-go/rest", Name: "RESTClient"}),
80+
"FakeClient": c.Universe.Type(types.Name{Package: "k8s.io/client-go/gentype", Name: "FakeClient"}),
81+
"NewFakeClient": c.Universe.Function(types.Name{Package: "k8s.io/client-go/gentype", Name: "NewFakeClient"}),
8182
}
8283

8384
sw.Do(groupClientTemplate, m)
@@ -110,13 +111,13 @@ type Fake$.GroupGoName$$.Version$ struct {
110111

111112
var getterImplNamespaced = `
112113
func (c *Fake$.GroupGoName$$.Version$) $.type|publicPlural$(namespace string) $.realClientPackage$.$.type|public$Interface {
113-
return &Fake$.type|publicPlural${c, namespace}
114+
return newFake$.type|publicPlural$(c, namespace)
114115
}
115116
`
116117

117118
var getterImplNonNamespaced = `
118119
func (c *Fake$.GroupGoName$$.Version$) $.type|publicPlural$() $.realClientPackage$.$.type|public$Interface {
119-
return &Fake$.type|publicPlural${c}
120+
return newFake$.type|publicPlural$(c)
120121
}
121122
`
122123

cmd/client-gen/generators/fake/generator_fake_for_type.go

+194-238
Large diffs are not rendered by default.

examples/HyphenGroup/clientset/versioned/typed/example/v1/fake/fake_clustertesttype.go

+25-156
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

examples/HyphenGroup/clientset/versioned/typed/example/v1/fake/fake_example_client.go

+2-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)