Update tests.

This commit is contained in:
Avesh Agarwal
2017-02-07 09:08:45 -05:00
parent 9b640838a5
commit b4d3d24eaf
12 changed files with 282 additions and 702 deletions

View File

@@ -18,7 +18,6 @@ package cmd
import (
"bytes"
"encoding/json"
"io/ioutil"
"net/http"
"reflect"
@@ -35,46 +34,31 @@ import (
cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
)
func generateNodeAndTaintedNode(oldTaints []v1.Taint, newTaints []v1.Taint) (*api.Node, *api.Node) {
var taintedNode *api.Node
func generateNodeAndTaintedNode(oldTaints []v1.Taint, newTaints []v1.Taint) (*v1.Node, *v1.Node) {
var taintedNode *v1.Node
oldTaintsData, _ := json.Marshal(oldTaints)
// Create a node.
node := &api.Node{
node := &v1.Node{
ObjectMeta: metav1.ObjectMeta{
Name: "node-name",
CreationTimestamp: metav1.Time{Time: time.Now()},
Annotations: map[string]string{
v1.TaintsAnnotationKey: string(oldTaintsData),
},
},
Spec: api.NodeSpec{
Spec: v1.NodeSpec{
ExternalID: "node-name",
Taints: oldTaints,
},
Status: api.NodeStatus{},
Status: v1.NodeStatus{},
}
clone, _ := api.Scheme.DeepCopy(node)
newTaintsData, _ := json.Marshal(newTaints)
// A copy of the same node, but tainted.
taintedNode = clone.(*api.Node)
taintedNode.Annotations = map[string]string{
v1.TaintsAnnotationKey: string(newTaintsData),
}
taintedNode = clone.(*v1.Node)
taintedNode.Spec.Taints = newTaints
return node, taintedNode
}
func AnnotationsHaveEqualTaints(annotationA map[string]string, annotationB map[string]string) bool {
taintsA, err := v1.GetTaintsFromNodeAnnotations(annotationA)
if err != nil {
return false
}
taintsB, err := v1.GetTaintsFromNodeAnnotations(annotationB)
if err != nil {
return false
}
func equalTaints(taintsA, taintsB []v1.Taint) bool {
if len(taintsA) != len(taintsB) {
return false
}
@@ -254,7 +238,7 @@ func TestTaint(t *testing.T) {
for _, test := range tests {
oldNode, expectNewNode := generateNodeAndTaintedNode(test.oldTaints, test.newTaints)
new_node := &api.Node{}
new_node := &v1.Node{}
tainted := false
f, tf, codec, ns := cmdtesting.NewAPIFactory()
@@ -288,8 +272,8 @@ func TestTaint(t *testing.T) {
if err := runtime.DecodeInto(codec, appliedPatch, new_node); err != nil {
t.Fatalf("%s: unexpected error: %v", test.description, err)
}
if !AnnotationsHaveEqualTaints(expectNewNode.Annotations, new_node.Annotations) {
t.Fatalf("%s: expected:\n%v\nsaw:\n%v\n", test.description, expectNewNode.Annotations, new_node.Annotations)
if !equalTaints(expectNewNode.Spec.Taints, new_node.Spec.Taints) {
t.Fatalf("%s: expected:\n%v\nsaw:\n%v\n", test.description, expectNewNode.Spec.Taints, new_node.Spec.Taints)
}
return &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, new_node)}, nil
case m.isFor("PUT", "/nodes/node-name"):
@@ -302,8 +286,8 @@ func TestTaint(t *testing.T) {
if err := runtime.DecodeInto(codec, data, new_node); err != nil {
t.Fatalf("%s: unexpected error: %v", test.description, err)
}
if !AnnotationsHaveEqualTaints(expectNewNode.Annotations, new_node.Annotations) {
t.Fatalf("%s: expected:\n%v\nsaw:\n%v\n", test.description, expectNewNode.Annotations, new_node.Annotations)
if !equalTaints(expectNewNode.Spec.Taints, new_node.Spec.Taints) {
t.Fatalf("%s: expected:\n%v\nsaw:\n%v\n", test.description, expectNewNode.Spec.Taints, new_node.Spec.Taints)
}
return &http.Response{StatusCode: 200, Header: defaultHeader(), Body: objBody(codec, new_node)}, nil
default: