diff --git a/pkg/api/api_test.go b/pkg/api/api_test.go index 1b2ac3f61..1d192f53f 100644 --- a/pkg/api/api_test.go +++ b/pkg/api/api_test.go @@ -1327,7 +1327,11 @@ func (s *MySuite) TestPutMultipart(c *C) { } default: { - return + if reflect.TypeOf(driver).String() == "*memory.memoryDriver" { + + } else { + return + } } } driver := s.Driver @@ -1360,25 +1364,26 @@ func (s *MySuite) TestPutMultipart(c *C) { err = decoder.Decode(newResponse) c.Assert(err, IsNil) - c.Assert(newResponse.UploadID, Equals, "uploadid") + c.Assert(len(newResponse.UploadID) > 0, Equals, true) + uploadID := newResponse.UploadID // put part one typedDriver.On("GetBucketMetadata", "foo").Return(drivers.BucketMetadata{}, nil).Once() typedDriver.On("CreateObjectPart", "foo", "object", "uploadid", 1, "", "", 11, mock.Anything).Return("5eb63bbbe01eeed093cb22bb8f5acdc3", nil).Once() - request, err = http.NewRequest("PUT", testServer.URL+"/foo/object?uploadId=uploadid&partNumber=1", bytes.NewBufferString("hello world")) + request, err = http.NewRequest("PUT", testServer.URL+"/foo/object?uploadId="+uploadID+"&partNumber=1", bytes.NewBufferString("hello world")) c.Assert(err, IsNil) - response, err = client.Do(request) + response1, err := client.Do(request) c.Assert(err, IsNil) - c.Assert(response.StatusCode, Equals, http.StatusOK) + c.Assert(response1.StatusCode, Equals, http.StatusOK) // // put part two typedDriver.On("GetBucketMetadata", "foo").Return(drivers.BucketMetadata{}, nil).Once() typedDriver.On("CreateObjectPart", "foo", "object", "uploadid", 2, "", "", 11, mock.Anything).Return("5eb63bbbe01eeed093cb22bb8f5acdc3", nil).Once() - request, err = http.NewRequest("PUT", testServer.URL+"/foo/object?uploadId=uploadid&partNumber=2", bytes.NewBufferString("hello world")) + request, err = http.NewRequest("PUT", testServer.URL+"/foo/object?uploadId="+uploadID+"&partNumber=2", bytes.NewBufferString("hello world")) c.Assert(err, IsNil) - response, err = client.Do(request) + response2, err := client.Do(request) c.Assert(err, IsNil) - c.Assert(response.StatusCode, Equals, http.StatusOK) + c.Assert(response2.StatusCode, Equals, http.StatusOK) // // complete multipart upload @@ -1386,9 +1391,11 @@ func (s *MySuite) TestPutMultipart(c *C) { Part: []Part{ { PartNumber: 1, + ETag: response1.Header.Get("ETag"), }, { PartNumber: 2, + ETag: response2.Header.Get("ETag"), }, }, } @@ -1398,7 +1405,7 @@ func (s *MySuite) TestPutMultipart(c *C) { encoder.Encode(completeUploads) typedDriver.On("CompleteMultipartUpload", "foo", "object", "uploadid", mock.Anything).Return("etag", nil).Once() - request, err = http.NewRequest("POST", testServer.URL+"/foo/object?uploadId=uploadid", &completeBuffer) + request, err = http.NewRequest("POST", testServer.URL+"/foo/object?uploadId="+uploadID, &completeBuffer) c.Assert(err, IsNil) response, err = client.Do(request) c.Assert(err, IsNil)