Adding test for daemonset

This commit is contained in:
pprokop 2016-09-28 18:42:19 +02:00
parent a1ba2ea51b
commit 7a3b080e68
5 changed files with 60 additions and 9 deletions

View File

@ -45,7 +45,7 @@ func TestIsResolved(t *testing.T) {
entry := mocks.NewEntrypoint()
err := prepareEnv()
err = prepareEnv()
if err != nil {
t.Errorf("Something went wrong: %v", err)
}

View File

@ -30,6 +30,7 @@ func NewDaemonset(name string) Daemonset {
func (d Daemonset) IsResolved(entrypoint entry.EntrypointInterface) (bool, error) {
var myPodName string
daemonset, err := entrypoint.Client().DaemonSets(entrypoint.GetNamespace()).Get(d.GetName())
if err != nil {
return false, err
}
@ -40,13 +41,16 @@ func (d Daemonset) IsResolved(entrypoint entry.EntrypointInterface) (bool, error
if err != nil {
return false, err
}
if myPodName := os.Getenv("POD_NAME"); myPodName == "" {
panic("Environment variable POD_NAME not set")
}
myPod, err := entrypoint.Client().Pods(entrypoint.GetNamespace()).Get(myPodName)
if err != nil {
panic(fmt.Sprintf("Getting POD: %v failed : %v", myPodName, err))
}
myHost := myPod.Status.HostIP
for _, pod := range pods.Items {

View File

@ -0,0 +1,19 @@
package daemonset
import (
"os"
"testing"
mocks "github.com/stackanetes/kubernetes-entrypoint/mocks"
)
func TestResolveDaemonset(t *testing.T) {
entrypoint := mocks.NewEntrypoint()
daemonset := NewDaemonset("lgtm")
os.Setenv("POD_NAME", "podlist")
status, err := daemonset.IsResolved(entrypoint)
if err != nil {
t.Errorf("Something went wrong status: %s : %v", status, err)
}
}

View File

@ -2,7 +2,9 @@ package mocks
import (
"fmt"
"k8s.io/kubernetes/pkg/api"
unv "k8s.io/kubernetes/pkg/api/unversioned"
"k8s.io/kubernetes/pkg/apis/extensions"
"k8s.io/kubernetes/pkg/client/unversioned"
"k8s.io/kubernetes/pkg/watch"
@ -17,6 +19,12 @@ func (d dClient) Get(name string) (*extensions.DaemonSet, error) {
}
ds := new(extensions.DaemonSet)
ds.Name = name
sel := unv.LabelSelector{
MatchLabels: map[string]string{
"name": "test",
},
}
ds.Spec.Selector = &sel
return ds, nil
}
func (d dClient) Create(ds *extensions.DaemonSet) (*extensions.DaemonSet, error) {

View File

@ -13,16 +13,17 @@ type pClient struct {
}
func (p pClient) Get(name string) (*api.Pod, error) {
if name == "lgtm" {
pod := new(api.Pod)
container_one := api.ContainerStatus{
pod := new(api.Pod)
pod.Name = name
pod.Status.ContainerStatuses = []api.ContainerStatus{
api.ContainerStatus{
Name: "container_test",
Ready: true,
}
pod.Status.ContainerStatuses = []api.ContainerStatus{container_one}
return pod, nil
},
}
return nil, fmt.Errorf("Mock pod didnt work")
pod.Status.HostIP = "127.0.0.1"
return pod, nil
}
func (p pClient) Create(pod *api.Pod) (*api.Pod, error) {
return nil, fmt.Errorf("Not implemented")
@ -32,7 +33,26 @@ func (p pClient) Delete(name string, options *api.DeleteOptions) error {
return fmt.Errorf("Not implemented")
}
func (p pClient) List(options api.ListOptions) (*api.PodList, error) {
return nil, fmt.Errorf("Not implemented")
pod := new(api.Pod)
pod.Name = "podlist"
pod.Status.ContainerStatuses = []api.ContainerStatus{
api.ContainerStatus{
Name: "container_test",
Ready: true,
},
}
pod.Status.HostIP = "127.0.0.1"
pod.Status.Conditions = []api.PodCondition{
api.PodCondition{
Type: api.PodReady,
Status: "True",
},
}
podList := new(api.PodList)
podList.Items = []api.Pod{
*pod,
}
return podList, nil
}
func (p pClient) Update(pod *api.Pod) (*api.Pod, error) {