@@ -320,6 +320,35 @@ func TestUploadFiles_Errors(t *testing.T) {
320320 err = client .uploadFiles (ctx , d , files , nil , fileUpload , time .Minute , false )
321321 require .Equal (t , err .Error (), "[PUT /deploys/{deploy_id}/files/{path}][500] uploadDeployFile default &{Code:0 Message:}" )
322322}
323+ func TestUploadFiles400Errors (t * testing.T ) {
324+ ctx := gocontext .Background ()
325+
326+ server := httptest .NewServer (http .HandlerFunc (func (rw http.ResponseWriter , _ * http.Request ) {
327+ rw .WriteHeader (http .StatusUnprocessableEntity )
328+ }))
329+ defer server .Close ()
330+
331+ hu , _ := url .Parse (server .URL )
332+ tr := apiClient .NewWithClient (hu .Host , "/api/v1" , []string {"http" }, http .DefaultClient )
333+ client := NewRetryable (tr , strfmt .Default , 1 )
334+ client .uploadLimit = 1
335+ ctx = context .WithAuthInfo (ctx , apiClient .BearerToken ("token" ))
336+
337+ // Create some files to deploy
338+ dir , err := ioutil .TempDir ("" , "deploy" )
339+ require .NoError (t , err )
340+ defer os .RemoveAll (dir )
341+ require .NoError (t , ioutil .WriteFile (filepath .Join (dir , "foo.html" ), []byte ("Hello" ), 0644 ))
342+
343+ files , err := walk (dir , nil , false , false )
344+ require .NoError (t , err )
345+ d := & models.Deploy {}
346+ for _ , bundle := range files .Files {
347+ d .Required = append (d .Required , bundle .Sum )
348+ }
349+ err = client .uploadFiles (ctx , d , files , nil , fileUpload , time .Minute , false )
350+ require .Equal (t , err .Error (), "[PUT /deploys/{deploy_id}/files/{path}][422] uploadDeployFile default &{Code:422 Message:}" )
351+ }
323352
324353func TestUploadFiles_SkipEqualFiles (t * testing.T ) {
325354 ctx := gocontext .Background ()
0 commit comments