MCPcopy
hub / github.com/kubernetes/client-go / TestTransformResponse

Function TestTransformResponse

rest/request_test.go:508–582  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

506}
507
508func TestTransformResponse(t *testing.T) {
509 invalid := []byte("aaaaa")
510 uri, _ := url.Parse("http://localhost")
511 testCases := []struct {
512 Response *http.Response
513 Data []byte
514 Created bool
515 Error bool
516 ErrFn func(err error) bool
517 }{
518 {Response: &http.Response{StatusCode: 200}, Data: []byte{}},
519 {Response: &http.Response{StatusCode: 201}, Data: []byte{}, Created: true},
520 {Response: &http.Response{StatusCode: 199}, Error: true},
521 {Response: &http.Response{StatusCode: 500}, Error: true},
522 {Response: &http.Response{StatusCode: 422}, Error: true},
523 {Response: &http.Response{StatusCode: 409}, Error: true},
524 {Response: &http.Response{StatusCode: 404}, Error: true},
525 {Response: &http.Response{StatusCode: 401}, Error: true},
526 {
527 Response: &http.Response{
528 StatusCode: 401,
529 Header: http.Header{"Content-Type": []string{"application/json"}},
530 Body: ioutil.NopCloser(bytes.NewReader(invalid)),
531 },
532 Error: true,
533 ErrFn: func(err error) bool {
534 return err.Error() != "aaaaa" && apierrors.IsUnauthorized(err)
535 },
536 },
537 {
538 Response: &http.Response{
539 StatusCode: 401,
540 Header: http.Header{"Content-Type": []string{"text/any"}},
541 Body: ioutil.NopCloser(bytes.NewReader(invalid)),
542 },
543 Error: true,
544 ErrFn: func(err error) bool {
545 return strings.Contains(err.Error(), "server has asked for the client to provide") && apierrors.IsUnauthorized(err)
546 },
547 },
548 {Response: &http.Response{StatusCode: 403}, Error: true},
549 {Response: &http.Response{StatusCode: 200, Body: ioutil.NopCloser(bytes.NewReader(invalid))}, Data: invalid},
550 {Response: &http.Response{StatusCode: 200, Body: ioutil.NopCloser(bytes.NewReader(invalid))}, Data: invalid},
551 }
552 for i, test := range testCases {
553 r := NewRequest(nil, "", uri, "", defaultContentConfig(), defaultSerializers(t), nil, nil, 0)
554 if test.Response.Body == nil {
555 test.Response.Body = ioutil.NopCloser(bytes.NewReader([]byte{}))
556 }
557 result := r.transformResponse(test.Response, &http.Request{})
558 response, created, err := result.body, result.statusCode == http.StatusCreated, result.err
559 hasErr := err != nil
560 if hasErr != test.Error {
561 t.Errorf("%d: unexpected error: %t %v", i, test.Error, err)
562 } else if hasErr && test.Response.StatusCode > 399 {
563 status, ok := err.(apierrors.APIStatus)
564 if !ok {
565 t.Errorf("%d: response should have been transformable into APIStatus: %v", i, err)

Callers

nothing calls this directly

Calls 7

transformResponseMethod · 0.95
NewRequestFunction · 0.85
defaultContentConfigFunction · 0.85
defaultSerializersFunction · 0.85
ErrorMethod · 0.65
ErrorfMethod · 0.65
ParseMethod · 0.45

Tested by

no test coverage detected