Add tests for daemonset view history

Signed-off-by: Dinesh <dineshudt17@gmail.com>

Kubernetes-commit: c88b5e2ef36b4d026ec5852beff404197c199797
This commit is contained in:
Dinesh 2020-09-05 22:10:28 +05:30 committed by Kubernetes Publisher
parent 55c16b433f
commit b17989102f
1 changed files with 147 additions and 59 deletions

View File

@ -54,73 +54,74 @@ func TestHistoryViewerFor(t *testing.T) {
func TestViewHistory(t *testing.T) {
var (
trueVar = true
replicas = int32(1)
t.Run("for statefulSet", func(t *testing.T) {
var (
trueVar = true
replicas = int32(1)
podStub = corev1.PodTemplateSpec{
ObjectMeta: metav1.ObjectMeta{Labels: map[string]string{"foo": "bar"}},
Spec: corev1.PodSpec{Containers: []corev1.Container{{Name: "test", Image: "nginx"}}},
}
podStub = corev1.PodTemplateSpec{
ObjectMeta: metav1.ObjectMeta{Labels: map[string]string{"foo": "bar"}},
Spec: corev1.PodSpec{Containers: []corev1.Container{{Name: "test", Image: "nginx"}}},
}
ssStub = &appsv1.StatefulSet{
ObjectMeta: metav1.ObjectMeta{
Name: "moons",
Namespace: "default",
UID: "1993",
Labels: map[string]string{"foo": "bar"},
},
Spec: appsv1.StatefulSetSpec{Selector: &metav1.LabelSelector{MatchLabels: podStub.ObjectMeta.Labels}, Replicas: &replicas, Template: podStub},
}
)
stsRawData, err := json.Marshal(ssStub)
if err != nil {
t.Fatalf("error creating sts raw data: %v", err)
}
ssStub1 := &appsv1.ControllerRevision{
ObjectMeta: metav1.ObjectMeta{
Name: "moons",
Namespace: "default",
Labels: map[string]string{"foo": "bar"},
OwnerReferences: []metav1.OwnerReference{{"apps/v1", "StatefulSet", "moons", "1993", &trueVar, nil}},
},
Data: runtime.RawExtension{Raw: stsRawData},
TypeMeta: metav1.TypeMeta{Kind: "StatefulSet", APIVersion: "apps/v1"},
Revision: 1,
}
fakeClientSet := fake.NewSimpleClientset(ssStub)
_, err = fakeClientSet.AppsV1().ControllerRevisions("default").Create(context.TODO(), ssStub1, metav1.CreateOptions{})
if err != nil {
t.Fatalf("create controllerRevisions error %v occurred ", err)
}
var sts = &StatefulSetHistoryViewer{
fakeClientSet,
}
t.Run("should show revisions list if the revision is not specified", func(t *testing.T) {
result, err := sts.ViewHistory("default", "moons", 0)
ssStub = &appsv1.StatefulSet{
ObjectMeta: metav1.ObjectMeta{
Name: "moons",
Namespace: "default",
UID: "1993",
Labels: map[string]string{"foo": "bar"},
},
Spec: appsv1.StatefulSetSpec{Selector: &metav1.LabelSelector{MatchLabels: podStub.ObjectMeta.Labels}, Replicas: &replicas, Template: podStub},
}
)
stsRawData, err := json.Marshal(ssStub)
if err != nil {
t.Fatalf("error getting ViewHistory for a StatefulSets moons: %v", err)
t.Fatalf("error creating sts raw data: %v", err)
}
ssStub1 := &appsv1.ControllerRevision{
ObjectMeta: metav1.ObjectMeta{
Name: "moons",
Namespace: "default",
Labels: map[string]string{"foo": "bar"},
OwnerReferences: []metav1.OwnerReference{{"apps/v1", "StatefulSet", "moons", "1993", &trueVar, nil}},
},
Data: runtime.RawExtension{Raw: stsRawData},
TypeMeta: metav1.TypeMeta{Kind: "StatefulSet", APIVersion: "apps/v1"},
Revision: 1,
}
expected := `REVISION CHANGE-CAUSE
fakeClientSet := fake.NewSimpleClientset(ssStub)
_, err = fakeClientSet.AppsV1().ControllerRevisions("default").Create(context.TODO(), ssStub1, metav1.CreateOptions{})
if err != nil {
t.Fatalf("create controllerRevisions error %v occurred ", err)
}
var sts = &StatefulSetHistoryViewer{
fakeClientSet,
}
t.Run("should show revisions list if the revision is not specified", func(t *testing.T) {
result, err := sts.ViewHistory("default", "moons", 0)
if err != nil {
t.Fatalf("error getting ViewHistory for a StatefulSets moons: %v", err)
}
expected := `REVISION CHANGE-CAUSE
1 <none>
`
if result != expected {
t.Fatalf("unexpected output (%v was expected but got %v)", expected, result)
}
})
if result != expected {
t.Fatalf("unexpected output (%v was expected but got %v)", expected, result)
}
})
t.Run("should describe the revision if revision is specified", func(t *testing.T) {
result, err := sts.ViewHistory("default", "moons", 1)
if err != nil {
t.Fatalf("error getting ViewHistory for a StatefulSets moons: %v", err)
}
t.Run("should describe the revision if revision is specified", func(t *testing.T) {
result, err := sts.ViewHistory("default", "moons", 1)
if err != nil {
t.Fatalf("error getting ViewHistory for a StatefulSets moons: %v", err)
}
expected := `Pod Template:
expected := `Pod Template:
Labels: foo=bar
Containers:
test:
@ -132,9 +133,96 @@ func TestViewHistory(t *testing.T) {
Volumes: <none>
`
if result != expected {
t.Fatalf("unexpected output (%v was expected but got %v)", expected, result)
if result != expected {
t.Fatalf("unexpected output (%v was expected but got %v)", expected, result)
}
})
})
t.Run("for daemonSet", func(t *testing.T) {
var (
trueVar = true
podStub = corev1.PodTemplateSpec{
ObjectMeta: metav1.ObjectMeta{Labels: map[string]string{"foo": "bar"}},
Spec: corev1.PodSpec{Containers: []corev1.Container{{Name: "test", Image: "nginx"}}},
}
daemonSetStub = &appsv1.DaemonSet{
ObjectMeta: metav1.ObjectMeta{
Name: "moons",
Namespace: "default",
UID: "1993",
Labels: map[string]string{"foo": "bar"},
},
Spec: appsv1.DaemonSetSpec{Selector: &metav1.LabelSelector{MatchLabels: podStub.ObjectMeta.Labels}, Template: podStub},
}
)
daemonSetRaw, err := json.Marshal(daemonSetStub)
if err != nil {
t.Fatalf("error creating sts raw data: %v", err)
}
daemonSetControllerRevision := &appsv1.ControllerRevision{
ObjectMeta: metav1.ObjectMeta{
Name: "moons",
Namespace: "default",
Labels: map[string]string{"foo": "bar"},
OwnerReferences: []metav1.OwnerReference{{"apps/v1", "DaemonSet", "moons", "1993", &trueVar, nil}},
},
Data: runtime.RawExtension{Raw: daemonSetRaw},
TypeMeta: metav1.TypeMeta{Kind: "StatefulSet", APIVersion: "apps/v1"},
Revision: 1,
}
fakeClientSet := fake.NewSimpleClientset(daemonSetStub)
_, err = fakeClientSet.AppsV1().ControllerRevisions("default").Create(context.TODO(), daemonSetControllerRevision, metav1.CreateOptions{})
if err != nil {
t.Fatalf("create controllerRevisions error %v occurred ", err)
}
var daemonSetHistoryViewer = &DaemonSetHistoryViewer{
fakeClientSet,
}
t.Run("should show revisions list if the revision is not specified", func(t *testing.T) {
result, err := daemonSetHistoryViewer.ViewHistory("default", "moons", 0)
if err != nil {
t.Fatalf("error getting ViewHistory for a StatefulSets moons: %v", err)
}
expected := `REVISION CHANGE-CAUSE
1 <none>
`
if result != expected {
t.Fatalf("unexpected output (%v was expected but got %v)", expected, result)
}
})
t.Run("should describe the revision if revision is specified", func(t *testing.T) {
result, err := daemonSetHistoryViewer.ViewHistory("default", "moons", 1)
if err != nil {
t.Fatalf("error getting ViewHistory for a StatefulSets moons: %v", err)
}
expected := `Pod Template:
Labels: foo=bar
Containers:
test:
Image: nginx
Port: <none>
Host Port: <none>
Environment: <none>
Mounts: <none>
Volumes: <none>
`
if result != expected {
t.Fatalf("unexpected output (%v was expected but got %v)", expected, result)
}
})
})
}