Skip to content

Commit 84a3e6e

Browse files
committed
prove that informer+lister basically functions
1 parent 9df9e3a commit 84a3e6e

File tree

2 files changed

+84
-7
lines changed

2 files changed

+84
-7
lines changed

pkg/manifestclienttest/client_test.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ func TestSimpleChecks(t *testing.T) {
5050
if err != nil {
5151
t.Fatal(err)
5252
}
53-
obj, err := kubeClient.CoreV1().Secrets("openshift-config").Get(context.TODO(), "deployer-dockercfg-7xzx7", metav1.GetOptions{})
53+
obj, err := kubeClient.CoreV1().Secrets("openshift-apiserver").Get(context.TODO(), "default-dockercfg-nrrk8", metav1.GetOptions{})
5454
if err != nil {
5555
t.Fatal(err)
5656
}
@@ -66,7 +66,7 @@ func TestSimpleChecks(t *testing.T) {
6666
if err != nil {
6767
t.Fatal(err)
6868
}
69-
obj, err := kubeClient.CoreV1().Secrets("openshift-config").Get(context.TODO(), "pull-secret", metav1.GetOptions{})
69+
obj, err := kubeClient.CoreV1().Secrets("openshift-apiserver").Get(context.TODO(), "pull-secret", metav1.GetOptions{})
7070
if err != nil {
7171
t.Fatal(err)
7272
}
@@ -118,7 +118,7 @@ func TestSimpleChecks(t *testing.T) {
118118
if err != nil {
119119
t.Fatal(err)
120120
}
121-
if len(obj.Items) != 120 {
121+
if len(obj.Items) != 2 {
122122
t.Fatal(len(obj.Items))
123123
}
124124
},
@@ -130,11 +130,11 @@ func TestSimpleChecks(t *testing.T) {
130130
if err != nil {
131131
t.Fatal(err)
132132
}
133-
obj, err := kubeClient.AppsV1().DaemonSets("").List(context.TODO(), metav1.ListOptions{})
133+
obj, err := kubeClient.AppsV1().Deployments("").List(context.TODO(), metav1.ListOptions{})
134134
if err != nil {
135135
t.Fatal(err)
136136
}
137-
if len(obj.Items) != 16 {
137+
if len(obj.Items) != 3 {
138138
t.Fatal(len(obj.Items))
139139
}
140140
},
@@ -146,11 +146,11 @@ func TestSimpleChecks(t *testing.T) {
146146
if err != nil {
147147
t.Fatal(err)
148148
}
149-
obj, err := kubeClient.CoreV1().Secrets("openshift-config").List(context.TODO(), metav1.ListOptions{})
149+
obj, err := kubeClient.CoreV1().Secrets("openshift-apiserver").List(context.TODO(), metav1.ListOptions{})
150150
if err != nil {
151151
t.Fatal(err)
152152
}
153-
if len(obj.Items) != 13 {
153+
if len(obj.Items) != 10 {
154154
t.Fatal(len(obj.Items))
155155
}
156156
},
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
package manifestclienttest
2+
3+
import (
4+
"context"
5+
"net/http"
6+
"testing"
7+
"time"
8+
9+
configinformers "github.com/openshift/client-go/config/informers/externalversions"
10+
"k8s.io/client-go/tools/cache"
11+
12+
"github.com/davecgh/go-spew/spew"
13+
configclient "github.com/openshift/client-go/config/clientset/versioned"
14+
apierrors "k8s.io/apimachinery/pkg/api/errors"
15+
"k8s.io/client-go/rest"
16+
)
17+
18+
func TestBasicInformer(t *testing.T) {
19+
tests := []struct {
20+
name string
21+
testFn func(*testing.T, *http.Client)
22+
}{
23+
{
24+
name: "informer-synced-compiled-client-with-data",
25+
testFn: func(t *testing.T, httpClient *http.Client) {
26+
ctx, cancel := context.WithCancel(context.Background())
27+
defer cancel()
28+
29+
configClient, err := configclient.NewForConfigAndClient(&rest.Config{}, httpClient)
30+
if err != nil {
31+
t.Fatal(err)
32+
}
33+
informers := configinformers.NewSharedInformerFactory(configClient, 0)
34+
featureGateInformer := informers.Config().V1().FeatureGates()
35+
featureGateInformer.Informer()
36+
informers.Start(ctx.Done())
37+
38+
timedOutCh := make(chan struct{})
39+
go func() {
40+
select {
41+
case <-time.After(1 * time.Second):
42+
close(timedOutCh)
43+
44+
}
45+
}()
46+
if !cache.WaitForCacheSync(timedOutCh, featureGateInformer.Informer().HasSynced) {
47+
t.Fatal("failed to sync")
48+
}
49+
50+
featureGatesCluster, err := featureGateInformer.Lister().Get("cluster")
51+
if err != nil {
52+
t.Fatal(err)
53+
}
54+
if len(featureGatesCluster.Status.FeatureGates) == 0 {
55+
t.Fatal(spew.Sdump(featureGatesCluster))
56+
}
57+
missing, err := featureGateInformer.Lister().Get("missing")
58+
if !apierrors.IsNotFound(err) {
59+
t.Fatal(err)
60+
}
61+
if missing != nil {
62+
t.Fatal(missing)
63+
}
64+
},
65+
},
66+
}
67+
68+
for _, roundTripperTest := range defaultRoundTrippers(t) {
69+
t.Run(roundTripperTest.name, func(t *testing.T) {
70+
for _, test := range tests {
71+
t.Run(test.name, func(t *testing.T) {
72+
test.testFn(t, roundTripperTest.getClient())
73+
})
74+
}
75+
})
76+
}
77+
}

0 commit comments

Comments
 (0)