@@ -330,35 +330,53 @@ func TestUploadFiles400Error_SkipsRetry(t *testing.T) {
330330 attempts ++
331331 }()
332332
333+ rw .Header ().Set ("Content-Type" , "application/json; charset=utf-8" )
333334 rw .WriteHeader (http .StatusUnprocessableEntity )
335+ rw .Write ([]byte (`{"message": "Unprocessable Entity", "code": 422 }` ))
336+ }))
337+ defer server .Close ()
338+
339+ // File upload:
340+ hu , _ := url .Parse (server .URL )
341+ tr := apiClient .NewWithClient (hu .Host , "/api/v1" , []string {"http" }, http .DefaultClient )
342+ client := NewRetryable (tr , strfmt .Default , 1 )
343+ client .uploadLimit = 1
344+ ctx = context .WithAuthInfo (ctx , apiClient .BearerToken ("token" ))
345+
346+ // Create some files to deploy
347+ dir , err := ioutil .TempDir ("" , "deploy" )
348+ require .NoError (t , err )
349+ defer os .RemoveAll (dir )
350+ require .NoError (t , ioutil .WriteFile (filepath .Join (dir , "foo.html" ), []byte ("Hello" ), 0644 ))
351+
352+ files , err := walk (dir , nil , false , false )
353+ require .NoError (t , err )
354+ d := & models.Deploy {}
355+ for _ , bundle := range files .Files {
356+ d .Required = append (d .Required , bundle .Sum )
357+ }
358+ // Set SkipRetry to true
359+ err = client .uploadFiles (ctx , d , files , nil , fileUpload , time .Minute , true )
360+ require .Equal (t , err , "[PUT /deploys/{deploy_id}/files/{path}][422] uploadDeployFile default &{Code:422 Message: Unprocessable Entity}" )
361+ require .Equal (t , attempts , 1 )
362+ }
363+
364+ func TestUploadFunctions422Error_SkipsRetry (t * testing.T ) {
365+ attempts := 0
366+ ctx := gocontext .Background ()
367+
368+ server := httptest .NewServer (http .HandlerFunc (func (rw http.ResponseWriter , _ * http.Request ) {
369+ defer func () {
370+ attempts ++
371+ }()
372+
334373 rw .Header ().Set ("Content-Type" , "application/json; charset=utf-8" )
374+ rw .WriteHeader (http .StatusUnprocessableEntity )
335375 rw .Write ([]byte (`{"message": "Unprocessable Entity", "code": 422 }` ))
336376 }))
337377 defer server .Close ()
338378
339- // // File upload:
340- // hu, _ := url.Parse(server.URL)
341- // tr := apiClient.NewWithClient(hu.Host, "/api/v1", []string{"http"}, http.DefaultClient)
342- // client := NewRetryable(tr, strfmt.Default, 1)
343- // client.uploadLimit = 1
344- // ctx = context.WithAuthInfo(ctx, apiClient.BearerToken("token"))
345-
346- // // Create some files to deploy
347- // dir, err := ioutil.TempDir("", "deploy")
348- // require.NoError(t, err)
349- // defer os.RemoveAll(dir)
350- // require.NoError(t, ioutil.WriteFile(filepath.Join(dir, "foo.html"), []byte("Hello"), 0644))
351-
352- // files, err := walk(dir, nil, false, false)
353- // require.NoError(t, err)
354- // d := &models.Deploy{}
355- // for _, bundle := range files.Files {
356- // d.Required = append(d.Required, bundle.Sum)
357- // }
358- // // Set SkipRetry to true
359- // err = client.uploadFiles(ctx, d, files, nil, fileUpload, time.Minute, true)
360-
361- // // Function upload:
379+ // Function upload:
362380 hu , _ := url .Parse (server .URL )
363381 tr := apiClient .NewWithClient (hu .Host , "/api/v1" , []string {"http" }, http .DefaultClient )
364382 client := NewRetryable (tr , strfmt .Default , 1 )
@@ -379,7 +397,7 @@ func TestUploadFiles400Error_SkipsRetry(t *testing.T) {
379397 d .RequiredFunctions = append (d .RequiredFunctions , bundle .Sum )
380398 }
381399 // Set SkipRetry to true
382- require . NoError ( t , client .uploadFiles (apiCtx , d , files , nil , functionUpload , time .Minute , true ) )
400+ err = client .uploadFiles (apiCtx , d , files , nil , functionUpload , time .Minute , true )
383401 require .Equal (t , err , "[PUT /deploys/{deploy_id}/files/{path}][422] uploadDeployFile default &{Code:422 Message: Unprocessable Entity}" )
384402 require .Equal (t , attempts , 1 )
385403}
@@ -393,8 +411,8 @@ func TestUploadFiles400Error_NoSkipRetry(t *testing.T) {
393411 attempts ++
394412 }()
395413
396- rw .WriteHeader (http .StatusUnprocessableEntity )
397414 rw .Header ().Set ("Content-Type" , "application/json; charset=utf-8" )
415+ rw .WriteHeader (http .StatusUnprocessableEntity )
398416 rw .Write ([]byte (`{"message": "Unprocessable Entity", "code": 422 }` ))
399417 return
400418 }))
@@ -420,7 +438,7 @@ func TestUploadFiles400Error_NoSkipRetry(t *testing.T) {
420438 }
421439 // Set SkipRetry to false
422440 err = client .uploadFiles (ctx , d , files , nil , fileUpload , time .Minute , false )
423- // require.Equal(t, err, "[PUT /deploys/{deploy_id}/files/{path}][422] uploadDeployFile default &{Code:422 Message: Unprocessable Entity}")
441+ require .Equal (t , err , "[PUT /deploys/{deploy_id}/files/{path}][422] uploadDeployFile default &{Code:422 Message: Unprocessable Entity}" )
424442 require .Equal (t , attempts , 12 )
425443}
426444
0 commit comments