diff --git a/pkg/util/fake_handler.go b/pkg/util/fake_handler.go index 97f4ea3e3fe..d32bb371ae2 100644 --- a/pkg/util/fake_handler.go +++ b/pkg/util/fake_handler.go @@ -34,7 +34,9 @@ type LogInterface interface { Logf(format string, args ...interface{}) } -// FakeHandler is to assist in testing HTTP requests. +// FakeHandler is to assist in testing HTTP requests. Notice that FakeHandler is +// not thread safe and you must not direct traffic to except for the request +// you want to test. You can do this by hiding it in an http.ServeMux. type FakeHandler struct { RequestReceived *http.Request RequestBody string diff --git a/plugin/pkg/scheduler/factory/factory_test.go b/plugin/pkg/scheduler/factory/factory_test.go index 68e1b117eeb..31d1b18f659 100644 --- a/plugin/pkg/scheduler/factory/factory_test.go +++ b/plugin/pkg/scheduler/factory/factory_test.go @@ -17,6 +17,7 @@ limitations under the License. package factory import ( + "net/http" "net/http/httptest" "reflect" "testing" @@ -114,7 +115,10 @@ func TestPollMinions(t *testing.T) { ResponseBody: api.EncodeOrDie(ml), T: t, } - server := httptest.NewServer(&handler) + mux := http.NewServeMux() + // FakeHandler musn't be sent requests other than the one you want to test. + mux.Handle("/api/v1beta1/minions", &handler) + server := httptest.NewServer(mux) client := client.NewOrDie(server.URL, nil) cf := ConfigFactory{client} @@ -138,7 +142,10 @@ func TestDefaultErrorFunc(t *testing.T) { ResponseBody: api.EncodeOrDie(testPod), T: t, } - server := httptest.NewServer(&handler) + mux := http.NewServeMux() + // FakeHandler musn't be sent requests other than the one you want to test. + mux.Handle("/api/v1beta1/pods/foo", &handler) + server := httptest.NewServer(mux) factory := ConfigFactory{client.NewOrDie(server.URL, nil)} queue := cache.NewFIFO() errFunc := factory.makeDefaultErrorFunc(queue)