diff options
| author | chrislu <chris.lu@gmail.com> | 2025-11-21 14:48:41 -0800 |
|---|---|---|
| committer | chrislu <chris.lu@gmail.com> | 2025-11-21 14:48:41 -0800 |
| commit | 99a9a677417f1a41a055d82d3c499afa48b01c62 (patch) | |
| tree | 771568b8f01a21ec9bc3cea6a273fc4e3a0141f0 /weed/s3api/s3api_object_handlers_put_test.go | |
| parent | f125a013a8eefd15cc26b01a1a88a45381a772f9 (diff) | |
| download | seaweedfs-99a9a677417f1a41a055d82d3c499afa48b01c62.tar.xz seaweedfs-99a9a677417f1a41a055d82d3c499afa48b01c62.zip | |
check errors
Diffstat (limited to 'weed/s3api/s3api_object_handlers_put_test.go')
| -rw-r--r-- | weed/s3api/s3api_object_handlers_put_test.go | 36 |
1 files changed, 27 insertions, 9 deletions
diff --git a/weed/s3api/s3api_object_handlers_put_test.go b/weed/s3api/s3api_object_handlers_put_test.go index 9144e2cee..011b73578 100644 --- a/weed/s3api/s3api_object_handlers_put_test.go +++ b/weed/s3api/s3api_object_handlers_put_test.go @@ -1,55 +1,73 @@ package s3api import ( + "errors" + "fmt" "testing" "github.com/seaweedfs/seaweedfs/weed/s3api/s3err" + weed_server "github.com/seaweedfs/seaweedfs/weed/server" "github.com/seaweedfs/seaweedfs/weed/util/constants" ) func TestFilerErrorToS3Error(t *testing.T) { tests := []struct { name string - errString string + err error expectedErr s3err.ErrorCode }{ { + name: "nil error", + err: nil, + expectedErr: s3err.ErrNone, + }, + { name: "MD5 mismatch error", - errString: constants.ErrMsgBadDigest, + err: errors.New(constants.ErrMsgBadDigest), expectedErr: s3err.ErrBadDigest, }, { + name: "Read only error (direct)", + err: weed_server.ErrReadOnly, + expectedErr: s3err.ErrAccessDenied, + }, + { + name: "Read only error (wrapped)", + err: fmt.Errorf("create file /buckets/test/file.txt: %w", weed_server.ErrReadOnly), + expectedErr: s3err.ErrAccessDenied, + }, + { name: "Context canceled error", - errString: "rpc error: code = Canceled desc = context canceled", + err: errors.New("rpc error: code = Canceled desc = context canceled"), expectedErr: s3err.ErrInvalidRequest, }, { name: "Context canceled error (simple)", - errString: "context canceled", + err: errors.New("context canceled"), expectedErr: s3err.ErrInvalidRequest, }, { name: "Directory exists error", - errString: "existing /path/to/file is a directory", + err: errors.New("existing /path/to/file is a directory"), expectedErr: s3err.ErrExistingObjectIsDirectory, }, { name: "File exists error", - errString: "/path/to/file is a file", + err: errors.New("/path/to/file is a file"), expectedErr: s3err.ErrExistingObjectIsFile, }, { name: "Unknown error", - errString: "some random error", + err: errors.New("some random error"), expectedErr: s3err.ErrInternalError, }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - result := filerErrorToS3Error(tt.errString) + result := filerErrorToS3Error(tt.err) if result != tt.expectedErr { - t.Errorf("filerErrorToS3Error(%q) = %v, want %v", tt.errString, result, tt.expectedErr) + t.Errorf("filerErrorToS3Error(%v) = %v, want %v", tt.err, result, tt.expectedErr) } }) } |
