Replace os.Rename with directory copy util in plugin extraction (#7825)
Этот коммит содержится в:
коммит произвёл
Christopher Speller
родитель
120fbed0f7
Коммит
79726b5d8e
@@ -5,9 +5,13 @@ package utils
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
"github.com/stretchr/testify/suite"
|
||||
|
||||
"github.com/mattermost/mattermost-server/model"
|
||||
@@ -180,3 +184,53 @@ func (s *FileTestSuite) TestRemoveDirectory() {
|
||||
_, err = ReadFile("tests2/asdf")
|
||||
s.Error(err)
|
||||
}
|
||||
|
||||
func TestCopyDir(t *testing.T) {
|
||||
srcDir, err := ioutil.TempDir("", "src")
|
||||
require.NoError(t, err)
|
||||
defer os.RemoveAll(srcDir)
|
||||
|
||||
dstParentDir, err := ioutil.TempDir("", "dstparent")
|
||||
require.NoError(t, err)
|
||||
defer os.RemoveAll(dstParentDir)
|
||||
|
||||
dstDir := filepath.Join(dstParentDir, "dst")
|
||||
|
||||
tempFile := "temp.txt"
|
||||
err = ioutil.WriteFile(filepath.Join(srcDir, tempFile), []byte("test file"), 0655)
|
||||
require.NoError(t, err)
|
||||
|
||||
childDir := "child"
|
||||
err = os.Mkdir(filepath.Join(srcDir, childDir), 0777)
|
||||
require.NoError(t, err)
|
||||
|
||||
childTempFile := "childtemp.txt"
|
||||
err = ioutil.WriteFile(filepath.Join(srcDir, childDir, childTempFile), []byte("test file"), 0755)
|
||||
require.NoError(t, err)
|
||||
|
||||
err = CopyDir(srcDir, dstDir)
|
||||
assert.NoError(t, err)
|
||||
|
||||
stat, err := os.Stat(filepath.Join(dstDir, tempFile))
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, uint32(0655), uint32(stat.Mode()))
|
||||
assert.False(t, stat.IsDir())
|
||||
data, err := ioutil.ReadFile(filepath.Join(dstDir, tempFile))
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, "test file", string(data))
|
||||
|
||||
stat, err = os.Stat(filepath.Join(dstDir, childDir))
|
||||
assert.NoError(t, err)
|
||||
assert.True(t, stat.IsDir())
|
||||
|
||||
stat, err = os.Stat(filepath.Join(dstDir, childDir, childTempFile))
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, uint32(0755), uint32(stat.Mode()))
|
||||
assert.False(t, stat.IsDir())
|
||||
data, err = ioutil.ReadFile(filepath.Join(dstDir, childDir, childTempFile))
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, "test file", string(data))
|
||||
|
||||
err = CopyDir(srcDir, dstDir)
|
||||
assert.Error(t, err)
|
||||
}
|
||||
|
||||
Ссылка в новой задаче
Block a user