Skip to content

Commit cbfbcde

Browse files
committed
Add HTML error
This reproduces the no-consumer error seen in failing buildbot errors. Since we updated the go-swagger libraries, this is no longer causes requests to fail. Closes #122 Closes https://github.com/netlify/buildbot/issues/362
1 parent b86ea2e commit cbfbcde

File tree

1 file changed

+49
-0
lines changed

1 file changed

+49
-0
lines changed

go/porcelain/http/http_test.go

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -235,3 +235,52 @@ func TestRetryableTransportWithRetry_POST(t *testing.T) {
235235
actual := res.(string)
236236
require.EqualValues(t, "ok", actual)
237237
}
238+
239+
func TestRetryableTransportHTMLReply(t *testing.T) {
240+
responseBody := `<!DOCTYPE html>
241+
<html lang="en">
242+
<head>
243+
<meta charset="UTF-8">
244+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
245+
<meta http-equiv="X-UA-Compatible" content="ie=edge">
246+
<title>Some random HTML response</title>
247+
</head>
248+
<body>
249+
250+
</body>
251+
</html>`
252+
server := httptest.NewServer(http.HandlerFunc(func(rw http.ResponseWriter, req *http.Request) {
253+
rw.WriteHeader(500)
254+
rw.Header().Set("Content-Type", "text/html; charset=utf-8")
255+
rw.Write([]byte(responseBody))
256+
}))
257+
defer server.Close()
258+
259+
rwrtr := runtime.ClientRequestWriterFunc(func(req runtime.ClientRequest, _ strfmt.Registry) error {
260+
return nil
261+
})
262+
263+
hu, _ := url.Parse(server.URL)
264+
rt := NewRetryableTransport(httptransport.New(hu.Host, "/", []string{"http"}), 2)
265+
266+
result, err := rt.Submit(&runtime.ClientOperation{
267+
ID: "getSite",
268+
Method: "GET",
269+
PathPattern: "/",
270+
Params: rwrtr,
271+
Reader: runtime.ClientResponseReaderFunc(func(response runtime.ClientResponse, consumer runtime.Consumer) (interface{}, error) {
272+
if response.Code() == 500 {
273+
var result string
274+
if err := consumer.Consume(response.Body(), &result); err != nil {
275+
return nil, err
276+
}
277+
return result, nil
278+
}
279+
return nil, errors.New("Generic error")
280+
}),
281+
})
282+
283+
require.NoError(t, err)
284+
actual := result.(string)
285+
require.EqualValues(t, responseBody, actual)
286+
}

0 commit comments

Comments
 (0)