From 4187ea2107be94d96fe2c992a372f2fdc83ca4f3 Mon Sep 17 00:00:00 2001 From: Paul Bellamy Date: Fri, 29 Apr 2016 18:32:16 +0100 Subject: [PATCH] fixing up tests --- probe/kubernetes/reporter_test.go | 13 +++++++++++-- render/expected/expected.go | 8 ++++---- render/pod_test.go | 30 ++++++++---------------------- test/fixture/report_fixture.go | 24 +++++++++++++----------- 4 files changed, 36 insertions(+), 39 deletions(-) diff --git a/probe/kubernetes/reporter_test.go b/probe/kubernetes/reporter_test.go index aa7fc14a3..b7b65475d 100644 --- a/probe/kubernetes/reporter_test.go +++ b/probe/kubernetes/reporter_test.go @@ -174,20 +174,23 @@ func TestReporter(t *testing.T) { id string parentService string latest map[string]string + sets map[string]report.StringSet }{ {pod1ID, serviceID, map[string]string{ kubernetes.PodID: "ping/pong-a", kubernetes.PodName: "pong-a", kubernetes.Namespace: "ping", kubernetes.PodCreated: pod1.Created(), - kubernetes.ServiceIDs: "ping/pongservice", + }, map[string]report.StringSet{ + kubernetes.ServiceIDs: report.MakeStringSet("ping/pongservice"), }}, {pod2ID, serviceID, map[string]string{ kubernetes.PodID: "ping/pong-b", kubernetes.PodName: "pong-b", kubernetes.Namespace: "ping", kubernetes.PodCreated: pod1.Created(), - kubernetes.ServiceIDs: "ping/pongservice", + }, map[string]report.StringSet{ + kubernetes.ServiceIDs: report.MakeStringSet("ping/pongservice"), }}, } { node, ok := rpt.Pod.Nodes[pod.id] @@ -204,6 +207,12 @@ func TestReporter(t *testing.T) { t.Errorf("Expected pod %s latest %q: %q, got %q", pod.id, k, want, have) } } + + for k, want := range pod.sets { + if have, ok := node.Sets.Lookup(k); !ok || !reflect.DeepEqual(want, have) { + t.Errorf("Expected pod %s sets %q: %q, got %q", pod.id, k, want, have) + } + } } // Reporter should have added a service diff --git a/render/expected/expected.go b/render/expected/expected.go index 351f19c99..b436d72e5 100644 --- a/render/expected/expected.go +++ b/render/expected/expected.go @@ -238,8 +238,8 @@ var ( render.OutgoingInternetID: theOutgoingInternetNode, } - unmanagedServerID = render.MakePseudoNodeID(render.UnmanagedID, fixture.ServerHostID) - unmanagedServerNode = pseudo(unmanagedServerID, render.OutgoingInternetID).WithChildren(report.MakeNodeSet( + UnmanagedServerID = render.MakePseudoNodeID(render.UnmanagedID, fixture.ServerHostID) + unmanagedServerNode = pseudo(UnmanagedServerID, render.OutgoingInternetID).WithChildren(report.MakeNodeSet( uncontainedServerNode, RenderedEndpoints[fixture.NonContainerNodeID], RenderedProcesses[fixture.NonContainerProcessNodeID], @@ -262,7 +262,7 @@ var ( RenderedContainers[fixture.ServerContainerNodeID], )), - unmanagedServerID: unmanagedServerNode, + UnmanagedServerID: unmanagedServerNode, render.IncomingInternetID: theIncomingInternetNode(fixture.ServerPodNodeID), render.OutgoingInternetID: theOutgoingInternetNode, } @@ -282,7 +282,7 @@ var ( RenderedPods[fixture.ServerPodNodeID], )), - unmanagedServerID: unmanagedServerNode, + UnmanagedServerID: unmanagedServerNode, render.IncomingInternetID: theIncomingInternetNode(fixture.ServiceNodeID), render.OutgoingInternetID: theOutgoingInternetNode, } diff --git a/render/pod_test.go b/render/pod_test.go index d4776939e..f091f8c22 100644 --- a/render/pod_test.go +++ b/render/pod_test.go @@ -7,14 +7,13 @@ import ( "github.com/weaveworks/scope/probe/kubernetes" "github.com/weaveworks/scope/render" "github.com/weaveworks/scope/render/expected" - "github.com/weaveworks/scope/report" "github.com/weaveworks/scope/test" "github.com/weaveworks/scope/test/fixture" "github.com/weaveworks/scope/test/reflect" ) func TestPodRenderer(t *testing.T) { - have := Prune(render.PodRenderer.Render(fixture.Report, render.FilterNoop)) + have := Prune(render.PodRenderer.Render(fixture.Report, nil)) want := Prune(expected.RenderedPods) if !reflect.DeepEqual(want, have) { t.Error(test.Diff(want, have)) @@ -26,7 +25,7 @@ func TestPodFilterRenderer(t *testing.T) { // it is filtered out correctly. input := fixture.Report.Copy() input.Pod.Nodes[fixture.ClientPodNodeID] = input.Pod.Nodes[fixture.ClientPodNodeID].WithLatests(map[string]string{ - kubernetes.PodID: "pod:kube-system/foo", + kubernetes.PodID: "kube-system/foo", kubernetes.Namespace: "kube-system", kubernetes.PodName: "foo", }) @@ -43,7 +42,7 @@ func TestPodFilterRenderer(t *testing.T) { } func TestPodServiceRenderer(t *testing.T) { - have := Prune(render.PodServiceRenderer.Render(fixture.Report, render.FilterNoop)) + have := Prune(render.PodServiceRenderer.Render(fixture.Report, nil)) want := Prune(expected.RenderedPodServices) if !reflect.DeepEqual(want, have) { t.Error(test.Diff(want, have)) @@ -54,25 +53,12 @@ func TestPodServiceFilterRenderer(t *testing.T) { // tag on containers or pod namespace in the topology and ensure // it is filtered out correctly. input := fixture.Report.Copy() - input.Pod.Nodes[fixture.ClientPodNodeID] = input.Pod.Nodes[fixture.ClientPodNodeID].WithLatests(map[string]string{ - kubernetes.PodID: "pod:kube-system/foo", - kubernetes.Namespace: "kube-system", - kubernetes.PodName: "foo", - }) - input.Container.Nodes[fixture.ClientContainerNodeID] = input.Container.Nodes[fixture.ClientContainerNodeID].WithLatests(map[string]string{ - docker.LabelPrefix + "io.kubernetes.pod.name": "kube-system/foo", - }) - have := Prune(render.PodServiceRenderer.Render(input, render.FilterApplication)) + have := Prune(render.PodServiceRenderer.Render(input, render.FilterSystem)) want := Prune(expected.RenderedPodServices.Copy()) - wantNode := want[fixture.ServiceNodeID] - wantNode.Adjacency = nil - wantNode.Children = report.MakeNodeSet( - expected.RenderedEndpoints[fixture.Server80NodeID], - expected.RenderedProcesses[fixture.ServerProcessNodeID], - expected.RenderedContainers[fixture.ServerContainerNodeID], - expected.RenderedPods[fixture.ServerPodNodeID], - ) - want[fixture.ServiceNodeID] = wantNode + delete(want, fixture.ServiceNodeID) + delete(want, expected.UnmanagedServerID) + delete(want, render.IncomingInternetID) + delete(want, render.OutgoingInternetID) if !reflect.DeepEqual(want, have) { t.Error(test.Diff(want, have)) } diff --git a/test/fixture/report_fixture.go b/test/fixture/report_fixture.go index 679d3b718..84b9d358d 100644 --- a/test/fixture/report_fixture.go +++ b/test/fixture/report_fixture.go @@ -367,25 +367,27 @@ var ( Nodes: report.Nodes{ ClientPodNodeID: report.MakeNodeWith( ClientPodNodeID, map[string]string{ - kubernetes.PodID: ClientPodID, - kubernetes.PodName: "pong-a", - kubernetes.Namespace: KubernetesNamespace, - kubernetes.ServiceIDs: ServiceID, - report.HostNodeID: ClientHostNodeID, + kubernetes.PodID: ClientPodID, + kubernetes.PodName: "pong-a", + kubernetes.Namespace: KubernetesNamespace, + report.HostNodeID: ClientHostNodeID, }). + WithSets(report.EmptySets. + Add(kubernetes.ServiceIDs, report.MakeStringSet(ServiceID))). WithTopology(report.Pod).WithParents(report.EmptySets. Add("host", report.MakeStringSet(ClientHostNodeID)). Add("service", report.MakeStringSet(ServiceID)), ), ServerPodNodeID: report.MakeNodeWith( ServerPodNodeID, map[string]string{ - kubernetes.PodID: ServerPodID, - kubernetes.PodName: "pong-b", - kubernetes.Namespace: KubernetesNamespace, - kubernetes.PodState: "running", - kubernetes.ServiceIDs: ServiceID, - report.HostNodeID: ServerHostNodeID, + kubernetes.PodID: ServerPodID, + kubernetes.PodName: "pong-b", + kubernetes.Namespace: KubernetesNamespace, + kubernetes.PodState: "running", + report.HostNodeID: ServerHostNodeID, }). + WithSets(report.EmptySets. + Add(kubernetes.ServiceIDs, report.MakeStringSet(ServiceID))). WithTopology(report.Pod).WithParents(report.EmptySets. Add("host", report.MakeStringSet(ServerHostNodeID)). Add("service", report.MakeStringSet(ServiceID)),