vfs: fix tests for backends which can't upload 0 length files
This commit is contained in:
parent
3245c0ae0d
commit
9ed81ac451
3 changed files with 21 additions and 3 deletions
|
@ -10,6 +10,7 @@ import (
|
||||||
|
|
||||||
"github.com/ncw/rclone/fs"
|
"github.com/ncw/rclone/fs"
|
||||||
"github.com/ncw/rclone/fstest"
|
"github.com/ncw/rclone/fstest"
|
||||||
|
"github.com/pkg/errors"
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
)
|
)
|
||||||
|
@ -416,6 +417,10 @@ func TestRWFileHandleWriteNoWrite(t *testing.T) {
|
||||||
|
|
||||||
// Close the file without writing to it
|
// Close the file without writing to it
|
||||||
err := fh.Close()
|
err := fh.Close()
|
||||||
|
if errors.Cause(err) == fs.ErrorCantUploadEmptyFiles {
|
||||||
|
t.Logf("skipping test: %v", err)
|
||||||
|
return
|
||||||
|
}
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
// Create a different file (not in the cache)
|
// Create a different file (not in the cache)
|
||||||
|
|
|
@ -9,7 +9,9 @@ import (
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
_ "github.com/ncw/rclone/backend/all" // import all the backends
|
_ "github.com/ncw/rclone/backend/all" // import all the backends
|
||||||
|
"github.com/ncw/rclone/fs"
|
||||||
"github.com/ncw/rclone/fstest"
|
"github.com/ncw/rclone/fstest"
|
||||||
|
"github.com/pkg/errors"
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
"github.com/stretchr/testify/require"
|
"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)
|
fd, err = vfs.OpenFile("dir/new_file.txt", os.O_WRONLY|os.O_CREATE, 0777)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
assert.NotNil(t, fd)
|
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)
|
fd, err = vfs.OpenFile("not found/new_file.txt", os.O_WRONLY|os.O_CREATE, 0777)
|
||||||
assert.Equal(t, os.ErrNotExist, err)
|
assert.Equal(t, os.ErrNotExist, err)
|
||||||
|
|
|
@ -9,6 +9,7 @@ import (
|
||||||
|
|
||||||
"github.com/ncw/rclone/fs"
|
"github.com/ncw/rclone/fs"
|
||||||
"github.com/ncw/rclone/fstest"
|
"github.com/ncw/rclone/fstest"
|
||||||
|
"github.com/pkg/errors"
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
)
|
)
|
||||||
|
@ -114,8 +115,11 @@ func TestWriteFileHandleMethods(t *testing.T) {
|
||||||
// it even if we don't write to it
|
// it even if we don't write to it
|
||||||
h, err = vfs.OpenFile("file1", os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0777)
|
h, err = vfs.OpenFile("file1", os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0777)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
assert.NoError(t, h.Close())
|
err = h.Close()
|
||||||
checkListing(t, root, []string{"file1,0,false"})
|
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
|
// 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)
|
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
|
// Check Release closes file
|
||||||
err := fh.Release()
|
err := fh.Release()
|
||||||
|
if errors.Cause(err) == fs.ErrorCantUploadEmptyFiles {
|
||||||
|
t.Logf("skipping test: %v", err)
|
||||||
|
return
|
||||||
|
}
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.True(t, fh.closed)
|
assert.True(t, fh.closed)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue