fstest: fix PublicLink tests to send non zero expiry and work with s3

This commit is contained in:
Nick Craig-Wood 2020-06-18 17:50:12 +01:00
parent 40611fc4fc
commit 4b4ee72796

View File

@ -1466,38 +1466,40 @@ func Run(t *testing.T, opt *Opt) {
t.Skip("FS has no PublicLinker interface") t.Skip("FS has no PublicLinker interface")
} }
expiry := fs.Duration(60 * time.Second)
// if object not found // if object not found
link, err := doPublicLink(ctx, file1.Path+"_does_not_exist", fs.Duration(0), false) link, err := doPublicLink(ctx, file1.Path+"_does_not_exist", expiry, false)
require.Error(t, err, "Expected to get error when file doesn't exist") require.Error(t, err, "Expected to get error when file doesn't exist")
require.Equal(t, "", link, "Expected link to be empty on error") require.Equal(t, "", link, "Expected link to be empty on error")
// sharing file for the first time // sharing file for the first time
link1, err := doPublicLink(ctx, file1.Path, fs.Duration(0), false) link1, err := doPublicLink(ctx, file1.Path, expiry, false)
require.NoError(t, err) require.NoError(t, err)
require.NotEqual(t, "", link1, "Link should not be empty") require.NotEqual(t, "", link1, "Link should not be empty")
link2, err := doPublicLink(ctx, file2.Path, fs.Duration(0), false) link2, err := doPublicLink(ctx, file2.Path, expiry, false)
require.NoError(t, err) require.NoError(t, err)
require.NotEqual(t, "", link2, "Link should not be empty") require.NotEqual(t, "", link2, "Link should not be empty")
require.NotEqual(t, link1, link2, "Links to different files should differ") require.NotEqual(t, link1, link2, "Links to different files should differ")
// sharing file for the 2nd time // sharing file for the 2nd time
link1, err = doPublicLink(ctx, file1.Path, fs.Duration(0), false) link1, err = doPublicLink(ctx, file1.Path, expiry, false)
require.NoError(t, err) require.NoError(t, err)
require.NotEqual(t, "", link1, "Link should not be empty") require.NotEqual(t, "", link1, "Link should not be empty")
// sharing directory for the first time // sharing directory for the first time
path := path.Dir(file2.Path) path := path.Dir(file2.Path)
link3, err := doPublicLink(ctx, path, fs.Duration(0), false) link3, err := doPublicLink(ctx, path, expiry, false)
if err != nil && errors.Cause(err) == fs.ErrorCantShareDirectories { if err != nil && (errors.Cause(err) == fs.ErrorCantShareDirectories || errors.Cause(err) == fs.ErrorObjectNotFound) {
t.Log("skipping directory tests as not supported on this backend") t.Log("skipping directory tests as not supported on this backend")
} else { } else {
require.NoError(t, err) require.NoError(t, err)
require.NotEqual(t, "", link3, "Link should not be empty") require.NotEqual(t, "", link3, "Link should not be empty")
// sharing directory for the second time // sharing directory for the second time
link3, err = doPublicLink(ctx, path, fs.Duration(0), false) link3, err = doPublicLink(ctx, path, expiry, false)
require.NoError(t, err) require.NoError(t, err)
require.NotEqual(t, "", link3, "Link should not be empty") require.NotEqual(t, "", link3, "Link should not be empty")
@ -1511,7 +1513,7 @@ func Run(t *testing.T, opt *Opt) {
_, err = subRemote.Put(ctx, buf, obji) _, err = subRemote.Put(ctx, buf, obji)
require.NoError(t, err) require.NoError(t, err)
link4, err := subRemote.Features().PublicLink(ctx, "", fs.Duration(0), false) link4, err := subRemote.Features().PublicLink(ctx, "", expiry, false)
require.NoError(t, err, "Sharing root in a sub-remote should work") require.NoError(t, err, "Sharing root in a sub-remote should work")
require.NotEqual(t, "", link4, "Link should not be empty") require.NotEqual(t, "", link4, "Link should not be empty")
} }