From fdd36017f46fd7c1efed374ca54438d5c3ada729 Mon Sep 17 00:00:00 2001 From: yue9944882 <291271447@qq.com> Date: Sat, 17 Feb 2018 04:20:21 -0500 Subject: [PATCH] add unit test for static pod name generation --- pkg/kubelet/config/BUILD | 1 + pkg/kubelet/config/common_test.go | 61 +++++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+) diff --git a/pkg/kubelet/config/BUILD b/pkg/kubelet/config/BUILD index f7023cb08c6..85d170e5bcd 100644 --- a/pkg/kubelet/config/BUILD +++ b/pkg/kubelet/config/BUILD @@ -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", diff --git a/pkg/kubelet/config/common_test.go b/pkg/kubelet/config/common_test.go index 9dd694669f1..45173491863 100644 --- a/pkg/kubelet/config/common_test.go +++ b/pkg/kubelet/config/common_test.go @@ -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() + } + } + } + } +}