mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-05 18:24:07 +00:00
Cleaning up test organization for impending move
I'm moving/deleting some tests to make an upcoming RESTClient refactor PR cleaner. - TestDoRequestBearer is redundant to pkg/client/transport.TestBearerAuthRoundTripper - Added a case to pkg/client/transport.TestBasicAuthRoundTripper to cover what TestDoRequestWithoutPassword was testing - Moved TestSetsCodec, TestRESTClientRequires, TestValidateHostParameter to helper_test.go since they were really testing helper functions and not the RESTClient directly. - Modified TestValidateHostParameter during the moved to just use DefaultServerURL instead of creating a client.
This commit is contained in:
parent
69bb774dd4
commit
e2583e294d
@ -48,17 +48,25 @@ func TestBearerAuthRoundTripper(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestBasicAuthRoundTripper(t *testing.T) {
|
||||
rt := &testRoundTripper{}
|
||||
req := &http.Request{}
|
||||
newBasicAuthRoundTripper("user", "pass", rt).RoundTrip(req)
|
||||
if rt.Request == nil {
|
||||
t.Fatalf("unexpected nil request: %v", rt)
|
||||
}
|
||||
if rt.Request == req {
|
||||
t.Fatalf("round tripper should have copied request object: %#v", rt.Request)
|
||||
}
|
||||
if user, pass, found := rt.Request.BasicAuth(); !found || user != "user" || pass != "pass" {
|
||||
t.Errorf("unexpected authorization header: %#v", rt.Request)
|
||||
for n, tc := range map[string]struct {
|
||||
user string
|
||||
pass string
|
||||
}{
|
||||
"basic": {user: "user", pass: "pass"},
|
||||
"no pass": {user: "user"},
|
||||
} {
|
||||
rt := &testRoundTripper{}
|
||||
req := &http.Request{}
|
||||
newBasicAuthRoundTripper(tc.user, tc.pass, rt).RoundTrip(req)
|
||||
if rt.Request == nil {
|
||||
t.Fatalf("%s: unexpected nil request: %v", n, rt)
|
||||
}
|
||||
if rt.Request == req {
|
||||
t.Fatalf("%s: round tripper should have copied request object: %#v", n, rt.Request)
|
||||
}
|
||||
if user, pass, found := rt.Request.BasicAuth(); !found || user != tc.user || pass != tc.pass {
|
||||
t.Errorf("%s: unexpected authorization header: %#v", n, rt.Request)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -26,6 +26,7 @@ import (
|
||||
|
||||
"k8s.io/kubernetes/pkg/api/testapi"
|
||||
"k8s.io/kubernetes/pkg/api/unversioned"
|
||||
"k8s.io/kubernetes/pkg/runtime"
|
||||
)
|
||||
|
||||
func TestIsConfigTransportTLS(t *testing.T) {
|
||||
@ -191,3 +192,81 @@ func TestHelperGetServerAPIVersions(t *testing.T) {
|
||||
t.Errorf("expected %v, got %v", e, a)
|
||||
}
|
||||
}
|
||||
|
||||
func TestSetsCodec(t *testing.T) {
|
||||
testCases := map[string]struct {
|
||||
Err bool
|
||||
Prefix string
|
||||
Codec runtime.Codec
|
||||
}{
|
||||
testapi.Default.Version(): {false, "/api/" + testapi.Default.Version() + "/", testapi.Default.Codec()},
|
||||
"invalidVersion": {true, "", nil},
|
||||
}
|
||||
for version, expected := range testCases {
|
||||
client, err := New(&Config{Host: "127.0.0.1", GroupVersion: &unversioned.GroupVersion{Version: version}})
|
||||
switch {
|
||||
case err == nil && expected.Err:
|
||||
t.Errorf("expected error but was nil")
|
||||
continue
|
||||
case err != nil && !expected.Err:
|
||||
t.Errorf("unexpected error %v", err)
|
||||
continue
|
||||
case err != nil:
|
||||
continue
|
||||
}
|
||||
if e, a := expected.Prefix, client.RESTClient.baseURL.Path; e != a {
|
||||
t.Errorf("expected %#v, got %#v", e, a)
|
||||
}
|
||||
if e, a := expected.Codec, client.RESTClient.Codec; e != a {
|
||||
t.Errorf("expected %#v, got %#v", e, a)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestRESTClientRequires(t *testing.T) {
|
||||
if _, err := RESTClientFor(&Config{Host: "127.0.0.1", Codec: testapi.Default.Codec()}); err == nil {
|
||||
t.Errorf("unexpected non-error")
|
||||
}
|
||||
if _, err := RESTClientFor(&Config{Host: "127.0.0.1", GroupVersion: testapi.Default.GroupVersion()}); err == nil {
|
||||
t.Errorf("unexpected non-error")
|
||||
}
|
||||
if _, err := RESTClientFor(&Config{Host: "127.0.0.1", GroupVersion: testapi.Default.GroupVersion(), Codec: testapi.Default.Codec()}); err != nil {
|
||||
t.Errorf("unexpected error: %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestValidatesHostParameter(t *testing.T) {
|
||||
testCases := []struct {
|
||||
Host string
|
||||
Prefix string
|
||||
|
||||
URL string
|
||||
Err bool
|
||||
}{
|
||||
{"127.0.0.1", "", "http://127.0.0.1/" + testapi.Default.Version(), false},
|
||||
{"127.0.0.1:8080", "", "http://127.0.0.1:8080/" + testapi.Default.Version(), false},
|
||||
{"foo.bar.com", "", "http://foo.bar.com/" + testapi.Default.Version(), false},
|
||||
{"http://host/prefix", "", "http://host/prefix/" + testapi.Default.Version(), false},
|
||||
{"http://host", "", "http://host/" + testapi.Default.Version(), false},
|
||||
{"http://host", "/", "http://host/" + testapi.Default.Version(), false},
|
||||
{"http://host", "/other", "http://host/other/" + testapi.Default.Version(), false},
|
||||
{"host/server", "", "", true},
|
||||
}
|
||||
for i, testCase := range testCases {
|
||||
u, err := DefaultServerURL(testCase.Host, testCase.Prefix, *testapi.Default.GroupVersion(), false)
|
||||
switch {
|
||||
case err == nil && testCase.Err:
|
||||
t.Errorf("expected error but was nil")
|
||||
continue
|
||||
case err != nil && !testCase.Err:
|
||||
t.Errorf("unexpected error %v", err)
|
||||
continue
|
||||
case err != nil:
|
||||
continue
|
||||
}
|
||||
if e, a := testCase.URL, u.String(); e != a {
|
||||
t.Errorf("%d: expected host %s, got %s", i, e, a)
|
||||
continue
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -24,156 +24,9 @@ import (
|
||||
|
||||
"k8s.io/kubernetes/pkg/api/testapi"
|
||||
"k8s.io/kubernetes/pkg/api/unversioned"
|
||||
"k8s.io/kubernetes/pkg/runtime"
|
||||
"k8s.io/kubernetes/pkg/util"
|
||||
)
|
||||
|
||||
func TestSetsCodec(t *testing.T) {
|
||||
testCases := map[string]struct {
|
||||
Err bool
|
||||
Prefix string
|
||||
Codec runtime.Codec
|
||||
}{
|
||||
testapi.Default.Version(): {false, "/api/" + testapi.Default.Version() + "/", testapi.Default.Codec()},
|
||||
"invalidVersion": {true, "", nil},
|
||||
}
|
||||
for version, expected := range testCases {
|
||||
client, err := New(&Config{Host: "127.0.0.1", GroupVersion: &unversioned.GroupVersion{Version: version}})
|
||||
switch {
|
||||
case err == nil && expected.Err:
|
||||
t.Errorf("expected error but was nil")
|
||||
continue
|
||||
case err != nil && !expected.Err:
|
||||
t.Errorf("unexpected error %v", err)
|
||||
continue
|
||||
case err != nil:
|
||||
continue
|
||||
}
|
||||
if e, a := expected.Prefix, client.RESTClient.baseURL.Path; e != a {
|
||||
t.Errorf("expected %#v, got %#v", e, a)
|
||||
}
|
||||
if e, a := expected.Codec, client.RESTClient.Codec; e != a {
|
||||
t.Errorf("expected %#v, got %#v", e, a)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestRESTClientRequires(t *testing.T) {
|
||||
if _, err := RESTClientFor(&Config{Host: "127.0.0.1", Codec: testapi.Default.Codec()}); err == nil {
|
||||
t.Errorf("unexpected non-error")
|
||||
}
|
||||
if _, err := RESTClientFor(&Config{Host: "127.0.0.1", GroupVersion: testapi.Default.GroupVersion()}); err == nil {
|
||||
t.Errorf("unexpected non-error")
|
||||
}
|
||||
if _, err := RESTClientFor(&Config{Host: "127.0.0.1", GroupVersion: testapi.Default.GroupVersion(), Codec: testapi.Default.Codec()}); err != nil {
|
||||
t.Errorf("unexpected error: %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestValidatesHostParameter(t *testing.T) {
|
||||
testCases := []struct {
|
||||
Host string
|
||||
Prefix string
|
||||
|
||||
URL string
|
||||
Err bool
|
||||
}{
|
||||
{"127.0.0.1", "", "http://127.0.0.1/" + testapi.Default.Version() + "/", false},
|
||||
{"127.0.0.1:8080", "", "http://127.0.0.1:8080/" + testapi.Default.Version() + "/", false},
|
||||
{"foo.bar.com", "", "http://foo.bar.com/" + testapi.Default.Version() + "/", false},
|
||||
{"http://host/prefix", "", "http://host/prefix/" + testapi.Default.Version() + "/", false},
|
||||
{"http://host", "", "http://host/" + testapi.Default.Version() + "/", false},
|
||||
{"http://host", "/", "http://host/" + testapi.Default.Version() + "/", false},
|
||||
{"http://host", "/other", "http://host/other/" + testapi.Default.Version() + "/", false},
|
||||
{"host/server", "", "", true},
|
||||
}
|
||||
for i, testCase := range testCases {
|
||||
c, err := RESTClientFor(&Config{Host: testCase.Host, Prefix: testCase.Prefix, GroupVersion: testapi.Default.GroupVersion(), Codec: testapi.Default.Codec()})
|
||||
switch {
|
||||
case err == nil && testCase.Err:
|
||||
t.Errorf("expected error but was nil")
|
||||
continue
|
||||
case err != nil && !testCase.Err:
|
||||
t.Errorf("unexpected error %v", err)
|
||||
continue
|
||||
case err != nil:
|
||||
continue
|
||||
}
|
||||
if e, a := testCase.URL, c.baseURL.String(); e != a {
|
||||
t.Errorf("%d: expected host %s, got %s", i, e, a)
|
||||
continue
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestDoRequestBearer(t *testing.T) {
|
||||
status := &unversioned.Status{Status: unversioned.StatusFailure}
|
||||
expectedBody, _ := testapi.Default.Codec().Encode(status)
|
||||
fakeHandler := util.FakeHandler{
|
||||
StatusCode: 400,
|
||||
ResponseBody: string(expectedBody),
|
||||
T: t,
|
||||
}
|
||||
testServer := httptest.NewServer(&fakeHandler)
|
||||
defer testServer.Close()
|
||||
request, _ := http.NewRequest("GET", testServer.URL, nil)
|
||||
c, err := RESTClientFor(&Config{
|
||||
Host: testServer.URL,
|
||||
GroupVersion: testapi.Default.GroupVersion(),
|
||||
Codec: testapi.Default.Codec(),
|
||||
BearerToken: "test",
|
||||
})
|
||||
if err != nil {
|
||||
t.Fatalf("unexpected error: %v", err)
|
||||
}
|
||||
err = c.Get().Do().Error()
|
||||
if err == nil {
|
||||
t.Fatalf("unexpected non-error: %v", err)
|
||||
}
|
||||
if fakeHandler.RequestReceived.Header.Get("Authorization") != "Bearer test" {
|
||||
t.Errorf("Request is missing authorization header: %#v", *request)
|
||||
}
|
||||
}
|
||||
|
||||
func TestDoRequestWithoutPassword(t *testing.T) {
|
||||
status := &unversioned.Status{Status: unversioned.StatusFailure}
|
||||
expectedBody, _ := testapi.Default.Codec().Encode(status)
|
||||
fakeHandler := util.FakeHandler{
|
||||
StatusCode: 400,
|
||||
ResponseBody: string(expectedBody),
|
||||
T: t,
|
||||
}
|
||||
testServer := httptest.NewServer(&fakeHandler)
|
||||
defer testServer.Close()
|
||||
c, err := RESTClientFor(&Config{
|
||||
Host: testServer.URL,
|
||||
GroupVersion: testapi.Default.GroupVersion(),
|
||||
Codec: testapi.Default.Codec(),
|
||||
Username: "test",
|
||||
})
|
||||
if err != nil {
|
||||
t.Fatalf("unexpected error: %v", err)
|
||||
}
|
||||
body, err := c.Get().Prefix("test").Do().Raw()
|
||||
if err == nil {
|
||||
t.Fatalf("Unexpected non-error")
|
||||
}
|
||||
if fakeHandler.RequestReceived.Header["Authorization"] == nil {
|
||||
t.Errorf("Request is missing authorization header: %#v", fakeHandler.RequestReceived)
|
||||
}
|
||||
se, ok := err.(APIStatus)
|
||||
if !ok {
|
||||
t.Fatalf("Unexpected kind of error: %#v", err)
|
||||
}
|
||||
if !reflect.DeepEqual(se.Status(), *status) {
|
||||
t.Errorf("Unexpected status: %#v %#v", se.Status(), status)
|
||||
}
|
||||
if body != nil {
|
||||
t.Errorf("Expected nil body, but saw: '%s'", string(body))
|
||||
}
|
||||
fakeHandler.ValidateRequest(t, "/"+testapi.Default.Version()+"/test", "GET", nil)
|
||||
}
|
||||
|
||||
func TestDoRequestSuccess(t *testing.T) {
|
||||
status := &unversioned.Status{Status: unversioned.StatusSuccess}
|
||||
expectedBody, _ := testapi.Default.Codec().Encode(status)
|
||||
|
Loading…
Reference in New Issue
Block a user