tests: make spme tests pass in a docker container

This commit is contained in:
Bruno Carlin 2022-06-11 21:59:06 +02:00
parent 73e0b22fb4
commit f511bbbe73

View file

@ -52,7 +52,19 @@ func TestFilestore(t *testing.T) {
assert.NotNil(fs)
})
t.Run("Initialize a store in a directory that can't be written", func(t *testing.T) {
t.Run("It should create its directories if they do not exist", func(t *testing.T) {
t.Parallel()
assert := require.New(t)
tmpDir := t.TempDir()
fs, err := NewFilestore(filepath.Join(tmpDir, "foo", "bar", "baz"))
assert.NoError(err)
assert.NotNil(fs)
})
t.Run("Initialize a store in a directory that can't be created", func(t *testing.T) {
t.Parallel()
assert := require.New(t)
@ -60,11 +72,13 @@ func TestFilestore(t *testing.T) {
tmpDir := t.TempDir()
tmpDir = filepath.Join(tmpDir, "unwritable")
err := os.Mkdir(tmpDir, 0o400)
err := os.Mkdir(tmpDir, 0o000)
assert.NoError(err)
tmpDir = filepath.Join(tmpDir, "subdir")
os.WriteFile(tmpDir, []byte("foo"), 0o644)
fs, err := NewFilestore(tmpDir)
assert.Error(err)
assert.Nil(fs)
@ -219,8 +233,15 @@ func TestBucketPut(t *testing.T) {
assert.NoError(err)
err = os.WriteFile(filepath.Join(tmpDir, bucket), []byte("foo"), 0o644)
assert.NoError(err)
err = os.Chmod(tmpDir, 0o400)
assert.NoError(err)
defer func() {
err = os.Chmod(tmpDir, 0o700)
assert.NoError(err)
}()
fr := strings.NewReader(filecontent)
@ -239,7 +260,10 @@ func TestBucketPut(t *testing.T) {
assert.NoError(err)
bucketDir := filepath.Join(tmpDir, bucket)
err = os.Mkdir(bucketDir, 0o400)
err = os.Mkdir(bucketDir, 0o700)
assert.NoError(err)
err = os.Mkdir(filepath.Join(bucketDir, filename), 0o700)
assert.NoError(err)
fr := strings.NewReader(filecontent)