diff --git a/Godeps/Godeps.json b/Godeps/Godeps.json index 236bfbe4..956c85c5 100644 --- a/Godeps/Godeps.json +++ b/Godeps/Godeps.json @@ -404,207 +404,207 @@ }, { "ImportPath": "k8s.io/apimachinery/pkg/api/apitesting", - "Rev": "f1a02064268befe9cb07b02128ff1b6c24041bec" + "Rev": "57dc7e687b5426ecb5df4cabdcdce30fddb74f22" }, { "ImportPath": "k8s.io/apimachinery/pkg/api/apitesting/fuzzer", - "Rev": "f1a02064268befe9cb07b02128ff1b6c24041bec" + "Rev": "57dc7e687b5426ecb5df4cabdcdce30fddb74f22" }, { "ImportPath": "k8s.io/apimachinery/pkg/api/apitesting/roundtrip", - "Rev": "f1a02064268befe9cb07b02128ff1b6c24041bec" + "Rev": "57dc7e687b5426ecb5df4cabdcdce30fddb74f22" }, { "ImportPath": "k8s.io/apimachinery/pkg/api/equality", - "Rev": "f1a02064268befe9cb07b02128ff1b6c24041bec" + "Rev": "57dc7e687b5426ecb5df4cabdcdce30fddb74f22" }, { "ImportPath": "k8s.io/apimachinery/pkg/api/errors", - "Rev": "f1a02064268befe9cb07b02128ff1b6c24041bec" + "Rev": "57dc7e687b5426ecb5df4cabdcdce30fddb74f22" }, { "ImportPath": "k8s.io/apimachinery/pkg/api/meta", - "Rev": "f1a02064268befe9cb07b02128ff1b6c24041bec" + "Rev": "57dc7e687b5426ecb5df4cabdcdce30fddb74f22" }, { "ImportPath": "k8s.io/apimachinery/pkg/api/resource", - "Rev": "f1a02064268befe9cb07b02128ff1b6c24041bec" + "Rev": "57dc7e687b5426ecb5df4cabdcdce30fddb74f22" }, { "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/fuzzer", - "Rev": "f1a02064268befe9cb07b02128ff1b6c24041bec" + "Rev": "57dc7e687b5426ecb5df4cabdcdce30fddb74f22" }, { "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/internalversion", - "Rev": "f1a02064268befe9cb07b02128ff1b6c24041bec" + "Rev": "57dc7e687b5426ecb5df4cabdcdce30fddb74f22" }, { "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1", - "Rev": "f1a02064268befe9cb07b02128ff1b6c24041bec" + "Rev": "57dc7e687b5426ecb5df4cabdcdce30fddb74f22" }, { "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured", - "Rev": "f1a02064268befe9cb07b02128ff1b6c24041bec" + "Rev": "57dc7e687b5426ecb5df4cabdcdce30fddb74f22" }, { "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1beta1", - "Rev": "f1a02064268befe9cb07b02128ff1b6c24041bec" + "Rev": "57dc7e687b5426ecb5df4cabdcdce30fddb74f22" }, { "ImportPath": "k8s.io/apimachinery/pkg/conversion", - "Rev": "f1a02064268befe9cb07b02128ff1b6c24041bec" + "Rev": "57dc7e687b5426ecb5df4cabdcdce30fddb74f22" }, { "ImportPath": "k8s.io/apimachinery/pkg/conversion/queryparams", - "Rev": "f1a02064268befe9cb07b02128ff1b6c24041bec" + "Rev": "57dc7e687b5426ecb5df4cabdcdce30fddb74f22" }, { "ImportPath": "k8s.io/apimachinery/pkg/fields", - "Rev": "f1a02064268befe9cb07b02128ff1b6c24041bec" + "Rev": "57dc7e687b5426ecb5df4cabdcdce30fddb74f22" }, { "ImportPath": "k8s.io/apimachinery/pkg/labels", - "Rev": "f1a02064268befe9cb07b02128ff1b6c24041bec" + "Rev": "57dc7e687b5426ecb5df4cabdcdce30fddb74f22" }, { "ImportPath": "k8s.io/apimachinery/pkg/runtime", - "Rev": "f1a02064268befe9cb07b02128ff1b6c24041bec" + "Rev": "57dc7e687b5426ecb5df4cabdcdce30fddb74f22" }, { "ImportPath": "k8s.io/apimachinery/pkg/runtime/schema", - "Rev": "f1a02064268befe9cb07b02128ff1b6c24041bec" + "Rev": "57dc7e687b5426ecb5df4cabdcdce30fddb74f22" }, { "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer", - "Rev": "f1a02064268befe9cb07b02128ff1b6c24041bec" + "Rev": "57dc7e687b5426ecb5df4cabdcdce30fddb74f22" }, { "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/json", - "Rev": "f1a02064268befe9cb07b02128ff1b6c24041bec" + "Rev": "57dc7e687b5426ecb5df4cabdcdce30fddb74f22" }, { "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/protobuf", - "Rev": "f1a02064268befe9cb07b02128ff1b6c24041bec" + "Rev": "57dc7e687b5426ecb5df4cabdcdce30fddb74f22" }, { "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/recognizer", - "Rev": "f1a02064268befe9cb07b02128ff1b6c24041bec" + "Rev": "57dc7e687b5426ecb5df4cabdcdce30fddb74f22" }, { "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/streaming", - "Rev": "f1a02064268befe9cb07b02128ff1b6c24041bec" + "Rev": "57dc7e687b5426ecb5df4cabdcdce30fddb74f22" }, { "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/versioning", - "Rev": "f1a02064268befe9cb07b02128ff1b6c24041bec" + "Rev": "57dc7e687b5426ecb5df4cabdcdce30fddb74f22" }, { "ImportPath": "k8s.io/apimachinery/pkg/selection", - "Rev": "f1a02064268befe9cb07b02128ff1b6c24041bec" + "Rev": "57dc7e687b5426ecb5df4cabdcdce30fddb74f22" }, { "ImportPath": "k8s.io/apimachinery/pkg/types", - "Rev": "f1a02064268befe9cb07b02128ff1b6c24041bec" + "Rev": "57dc7e687b5426ecb5df4cabdcdce30fddb74f22" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/cache", - "Rev": "f1a02064268befe9cb07b02128ff1b6c24041bec" + "Rev": "57dc7e687b5426ecb5df4cabdcdce30fddb74f22" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/clock", - "Rev": "f1a02064268befe9cb07b02128ff1b6c24041bec" + "Rev": "57dc7e687b5426ecb5df4cabdcdce30fddb74f22" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/diff", - "Rev": "f1a02064268befe9cb07b02128ff1b6c24041bec" + "Rev": "57dc7e687b5426ecb5df4cabdcdce30fddb74f22" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/errors", - "Rev": "f1a02064268befe9cb07b02128ff1b6c24041bec" + "Rev": "57dc7e687b5426ecb5df4cabdcdce30fddb74f22" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/framer", - "Rev": "f1a02064268befe9cb07b02128ff1b6c24041bec" + "Rev": "57dc7e687b5426ecb5df4cabdcdce30fddb74f22" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/httpstream", - "Rev": "f1a02064268befe9cb07b02128ff1b6c24041bec" + "Rev": "57dc7e687b5426ecb5df4cabdcdce30fddb74f22" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/httpstream/spdy", - "Rev": "f1a02064268befe9cb07b02128ff1b6c24041bec" + "Rev": "57dc7e687b5426ecb5df4cabdcdce30fddb74f22" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/intstr", - "Rev": "f1a02064268befe9cb07b02128ff1b6c24041bec" + "Rev": "57dc7e687b5426ecb5df4cabdcdce30fddb74f22" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/json", - "Rev": "f1a02064268befe9cb07b02128ff1b6c24041bec" + "Rev": "57dc7e687b5426ecb5df4cabdcdce30fddb74f22" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/mergepatch", - "Rev": "f1a02064268befe9cb07b02128ff1b6c24041bec" + "Rev": "57dc7e687b5426ecb5df4cabdcdce30fddb74f22" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/naming", - "Rev": "f1a02064268befe9cb07b02128ff1b6c24041bec" + "Rev": "57dc7e687b5426ecb5df4cabdcdce30fddb74f22" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/net", - "Rev": "f1a02064268befe9cb07b02128ff1b6c24041bec" + "Rev": "57dc7e687b5426ecb5df4cabdcdce30fddb74f22" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/remotecommand", - "Rev": "f1a02064268befe9cb07b02128ff1b6c24041bec" + "Rev": "57dc7e687b5426ecb5df4cabdcdce30fddb74f22" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/runtime", - "Rev": "f1a02064268befe9cb07b02128ff1b6c24041bec" + "Rev": "57dc7e687b5426ecb5df4cabdcdce30fddb74f22" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/sets", - "Rev": "f1a02064268befe9cb07b02128ff1b6c24041bec" + "Rev": "57dc7e687b5426ecb5df4cabdcdce30fddb74f22" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/strategicpatch", - "Rev": "f1a02064268befe9cb07b02128ff1b6c24041bec" + "Rev": "57dc7e687b5426ecb5df4cabdcdce30fddb74f22" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/validation", - "Rev": "f1a02064268befe9cb07b02128ff1b6c24041bec" + "Rev": "57dc7e687b5426ecb5df4cabdcdce30fddb74f22" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/validation/field", - "Rev": "f1a02064268befe9cb07b02128ff1b6c24041bec" + "Rev": "57dc7e687b5426ecb5df4cabdcdce30fddb74f22" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/wait", - "Rev": "f1a02064268befe9cb07b02128ff1b6c24041bec" + "Rev": "57dc7e687b5426ecb5df4cabdcdce30fddb74f22" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/yaml", - "Rev": "f1a02064268befe9cb07b02128ff1b6c24041bec" + "Rev": "57dc7e687b5426ecb5df4cabdcdce30fddb74f22" }, { "ImportPath": "k8s.io/apimachinery/pkg/version", - "Rev": "f1a02064268befe9cb07b02128ff1b6c24041bec" + "Rev": "57dc7e687b5426ecb5df4cabdcdce30fddb74f22" }, { "ImportPath": "k8s.io/apimachinery/pkg/watch", - "Rev": "f1a02064268befe9cb07b02128ff1b6c24041bec" + "Rev": "57dc7e687b5426ecb5df4cabdcdce30fddb74f22" }, { "ImportPath": "k8s.io/apimachinery/third_party/forked/golang/json", - "Rev": "f1a02064268befe9cb07b02128ff1b6c24041bec" + "Rev": "57dc7e687b5426ecb5df4cabdcdce30fddb74f22" }, { "ImportPath": "k8s.io/apimachinery/third_party/forked/golang/netutil", - "Rev": "f1a02064268befe9cb07b02128ff1b6c24041bec" + "Rev": "57dc7e687b5426ecb5df4cabdcdce30fddb74f22" }, { "ImportPath": "k8s.io/apimachinery/third_party/forked/golang/reflect", - "Rev": "f1a02064268befe9cb07b02128ff1b6c24041bec" + "Rev": "57dc7e687b5426ecb5df4cabdcdce30fddb74f22" }, { "ImportPath": "k8s.io/klog", diff --git a/testing/fixture.go b/testing/fixture.go index 90f16f56..b468b328 100644 --- a/testing/fixture.go +++ b/testing/fixture.go @@ -339,8 +339,10 @@ func (t *tracker) getWatches(gvr schema.GroupVersionResource, ns string) []*watc if w := t.watchers[gvr][ns]; w != nil { watches = append(watches, w...) } - if w := t.watchers[gvr][""]; w != nil { - watches = append(watches, w...) + if ns != metav1.NamespaceAll { + if w := t.watchers[gvr][metav1.NamespaceAll]; w != nil { + watches = append(watches, w...) + } } } return watches diff --git a/testing/fixture_test.go b/testing/fixture_test.go index 405fe1a7..7b01c12a 100644 --- a/testing/fixture_test.go +++ b/testing/fixture_test.go @@ -131,26 +131,47 @@ func TestWatchCallMultipleInvocation(t *testing.T) { cases := []struct { name string op watch.EventType + ns string }{ { "foo", watch.Added, + "test_namespace", }, { "bar", watch.Added, + "test_namespace", + }, + { + "baz", + watch.Added, + "", }, { "bar", watch.Modified, + "test_namespace", + }, + { + "baz", + watch.Modified, + "", }, { "foo", watch.Deleted, + "test_namespace", }, { "bar", watch.Deleted, + "test_namespace", + }, + { + "baz", + watch.Deleted, + "", }, } @@ -169,6 +190,7 @@ func TestWatchCallMultipleInvocation(t *testing.T) { wg.Add(len(watchNamespaces)) for idx, watchNamespace := range watchNamespaces { i := idx + watchNamespace := watchNamespace w, err := o.Watch(testResource, watchNamespace) if err != nil { t.Fatalf("test resource watch failed in %s: %v", watchNamespace, err) @@ -176,14 +198,17 @@ func TestWatchCallMultipleInvocation(t *testing.T) { go func() { assert.NoError(t, err, "watch invocation failed") for _, c := range cases { - fmt.Printf("%#v %#v\n", c, i) - event := <-w.ResultChan() - accessor, err := meta.Accessor(event.Object) - if err != nil { - t.Fatalf("unexpected error: %v", err) + if watchNamespace == "" || c.ns == watchNamespace { + fmt.Printf("%#v %#v\n", c, i) + event := <-w.ResultChan() + accessor, err := meta.Accessor(event.Object) + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + assert.Equal(t, c.op, event.Type, "watch event mismatched") + assert.Equal(t, c.name, accessor.GetName(), "watched object mismatch") + assert.Equal(t, c.ns, accessor.GetNamespace(), "watched object mismatch") } - assert.Equal(t, c.op, event.Type, "watch event mismatched") - assert.Equal(t, c.name, accessor.GetName(), "watched object mismatch") } wg.Done() }() @@ -191,13 +216,13 @@ func TestWatchCallMultipleInvocation(t *testing.T) { for _, c := range cases { switch c.op { case watch.Added: - obj := getArbitraryResource(testResource, c.name, "test_namespace") - o.Create(testResource, obj, "test_namespace") + obj := getArbitraryResource(testResource, c.name, c.ns) + o.Create(testResource, obj, c.ns) case watch.Modified: - obj := getArbitraryResource(testResource, c.name, "test_namespace") - o.Update(testResource, obj, "test_namespace") + obj := getArbitraryResource(testResource, c.name, c.ns) + o.Update(testResource, obj, c.ns) case watch.Deleted: - o.Delete(testResource, "test_namespace", c.name) + o.Delete(testResource, c.ns, c.name) } } wg.Wait()