@@ -330,35 +330,53 @@ func TestUploadFiles400Error_SkipsRetry(t *testing.T) {
330
330
attempts ++
331
331
}()
332
332
333
+ rw .Header ().Set ("Content-Type" , "application/json; charset=utf-8" )
333
334
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
+
334
373
rw .Header ().Set ("Content-Type" , "application/json; charset=utf-8" )
374
+ rw .WriteHeader (http .StatusUnprocessableEntity )
335
375
rw .Write ([]byte (`{"message": "Unprocessable Entity", "code": 422 }` ))
336
376
}))
337
377
defer server .Close ()
338
378
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:
362
380
hu , _ := url .Parse (server .URL )
363
381
tr := apiClient .NewWithClient (hu .Host , "/api/v1" , []string {"http" }, http .DefaultClient )
364
382
client := NewRetryable (tr , strfmt .Default , 1 )
@@ -379,7 +397,7 @@ func TestUploadFiles400Error_SkipsRetry(t *testing.T) {
379
397
d .RequiredFunctions = append (d .RequiredFunctions , bundle .Sum )
380
398
}
381
399
// 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 )
383
401
require .Equal (t , err , "[PUT /deploys/{deploy_id}/files/{path}][422] uploadDeployFile default &{Code:422 Message: Unprocessable Entity}" )
384
402
require .Equal (t , attempts , 1 )
385
403
}
@@ -393,8 +411,8 @@ func TestUploadFiles400Error_NoSkipRetry(t *testing.T) {
393
411
attempts ++
394
412
}()
395
413
396
- rw .WriteHeader (http .StatusUnprocessableEntity )
397
414
rw .Header ().Set ("Content-Type" , "application/json; charset=utf-8" )
415
+ rw .WriteHeader (http .StatusUnprocessableEntity )
398
416
rw .Write ([]byte (`{"message": "Unprocessable Entity", "code": 422 }` ))
399
417
return
400
418
}))
@@ -420,7 +438,7 @@ func TestUploadFiles400Error_NoSkipRetry(t *testing.T) {
420
438
}
421
439
// Set SkipRetry to false
422
440
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}" )
424
442
require .Equal (t , attempts , 12 )
425
443
}
426
444
0 commit comments