add unit test for static pod name generation

pull/6/head
yue9944882 2018-02-17 04:20:21 -05:00
parent a331f818ff
commit fdd36017f4
2 changed files with 62 additions and 0 deletions

View File

@ -108,6 +108,7 @@ go_test(
"//pkg/apis/core/validation:go_default_library",
"//pkg/kubelet/types:go_default_library",
"//pkg/securitycontext:go_default_library",
"//vendor/github.com/stretchr/testify/assert:go_default_library",
"//vendor/k8s.io/api/core/v1:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/api/equality:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",

View File

@ -20,12 +20,17 @@ import (
"reflect"
"testing"
"github.com/stretchr/testify/assert"
"k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/types"
"k8s.io/kubernetes/pkg/api/legacyscheme"
"k8s.io/kubernetes/pkg/api/testapi"
"k8s.io/kubernetes/pkg/apis/core"
api "k8s.io/kubernetes/pkg/apis/core"
"k8s.io/kubernetes/pkg/apis/core/validation"
"k8s.io/kubernetes/pkg/securitycontext"
)
@ -189,3 +194,59 @@ func TestGetSelfLink(t *testing.T) {
}
}
}
func TestStaticPodNameGenerate(t *testing.T) {
testCases := []struct {
nodeName types.NodeName
podName string
expected string
overwrite string
shouldErr bool
}{
{
"node1",
"static-pod1",
"static-pod1-node1",
"",
false,
},
{
"Node1",
"static-pod1",
"static-pod1-node1",
"",
false,
},
{
"NODE1",
"static-pod1",
"static-pod1-node1",
"static-pod1-NODE1",
true,
},
}
for _, c := range testCases {
assert.Equal(t, c.expected, generatePodName(c.podName, c.nodeName), "wrong pod name generated")
pod := &core.Pod{}
pod.Name = c.podName
if c.overwrite != "" {
pod.Name = c.overwrite
}
errs := validation.ValidatePod(pod)
if c.shouldErr {
specNameErrored := false
for _, err := range errs {
if err.Field == "metadata.name" {
specNameErrored = true
}
}
assert.NotEmpty(t, specNameErrored, "expecting error")
} else {
for _, err := range errs {
if err.Field == "metadata.name" {
t.Fail()
}
}
}
}
}