vfs: fix tests for backends which can't upload 0 length files

s3-about
Nick Craig-Wood 2019-06-29 11:37:10 +01:00
parent 3245c0ae0d
commit 9ed81ac451
3 changed files with 21 additions and 3 deletions

View File

@ -10,6 +10,7 @@ import (
"github.com/ncw/rclone/fs"
"github.com/ncw/rclone/fstest"
"github.com/pkg/errors"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
@ -416,6 +417,10 @@ func TestRWFileHandleWriteNoWrite(t *testing.T) {
// Close the file without writing to it
err := fh.Close()
if errors.Cause(err) == fs.ErrorCantUploadEmptyFiles {
t.Logf("skipping test: %v", err)
return
}
assert.NoError(t, err)
// Create a different file (not in the cache)

View File

@ -9,7 +9,9 @@ import (
"testing"
_ "github.com/ncw/rclone/backend/all" // import all the backends
"github.com/ncw/rclone/fs"
"github.com/ncw/rclone/fstest"
"github.com/pkg/errors"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
@ -223,7 +225,10 @@ func TestVFSOpenFile(t *testing.T) {
fd, err = vfs.OpenFile("dir/new_file.txt", os.O_WRONLY|os.O_CREATE, 0777)
require.NoError(t, err)
assert.NotNil(t, fd)
require.NoError(t, fd.Close())
err = fd.Close()
if errors.Cause(err) != fs.ErrorCantUploadEmptyFiles {
require.NoError(t, err)
}
fd, err = vfs.OpenFile("not found/new_file.txt", os.O_WRONLY|os.O_CREATE, 0777)
assert.Equal(t, os.ErrNotExist, err)

View File

@ -9,6 +9,7 @@ import (
"github.com/ncw/rclone/fs"
"github.com/ncw/rclone/fstest"
"github.com/pkg/errors"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
@ -114,8 +115,11 @@ func TestWriteFileHandleMethods(t *testing.T) {
// it even if we don't write to it
h, err = vfs.OpenFile("file1", os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0777)
require.NoError(t, err)
assert.NoError(t, h.Close())
checkListing(t, root, []string{"file1,0,false"})
err = h.Close()
if errors.Cause(err) != fs.ErrorCantUploadEmptyFiles {
assert.NoError(t, err)
checkListing(t, root, []string{"file1,0,false"})
}
// Check opening the file with O_TRUNC and writing does work
h, err = vfs.OpenFile("file1", os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0777)
@ -213,6 +217,10 @@ func TestWriteFileHandleRelease(t *testing.T) {
// Check Release closes file
err := fh.Release()
if errors.Cause(err) == fs.ErrorCantUploadEmptyFiles {
t.Logf("skipping test: %v", err)
return
}
assert.NoError(t, err)
assert.True(t, fh.closed)