Issue 11030: fix HasFile to avoid false positives for no filename (#11060)
Этот коммит содержится в:
коммит произвёл
Harrison Healey
родитель
bf233dec77
Коммит
16c11d7bf9
@@ -611,6 +611,19 @@ func TestDatabaseHasFile(t *testing.T) {
|
|||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
require.True(t, has)
|
require.True(t, has)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
t.Run("has non-existent empty string", func(t *testing.T) {
|
||||||
|
_, tearDown := setupConfigDatabase(t, minimalConfig, nil)
|
||||||
|
defer tearDown()
|
||||||
|
|
||||||
|
ds, err := config.NewDatabaseStore(fmt.Sprintf("%s://%s", *mainHelper.Settings.DriverName, *mainHelper.Settings.DataSource))
|
||||||
|
require.NoError(t, err)
|
||||||
|
defer ds.Close()
|
||||||
|
|
||||||
|
has, err := ds.HasFile("")
|
||||||
|
require.NoError(t, err)
|
||||||
|
require.False(t, has)
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestDatabaseRemoveFile(t *testing.T) {
|
func TestDatabaseRemoveFile(t *testing.T) {
|
||||||
|
|||||||
@@ -184,6 +184,10 @@ func (fs *FileStore) SetFile(name string, data []byte) error {
|
|||||||
|
|
||||||
// HasFile returns true if the given file was previously persisted.
|
// HasFile returns true if the given file was previously persisted.
|
||||||
func (fs *FileStore) HasFile(name string) (bool, error) {
|
func (fs *FileStore) HasFile(name string) (bool, error) {
|
||||||
|
if name == "" {
|
||||||
|
return false, nil
|
||||||
|
}
|
||||||
|
|
||||||
resolvedPath := filepath.Join(filepath.Dir(fs.path), name)
|
resolvedPath := filepath.Join(filepath.Dir(fs.path), name)
|
||||||
|
|
||||||
_, err := os.Stat(resolvedPath)
|
_, err := os.Stat(resolvedPath)
|
||||||
|
|||||||
@@ -688,7 +688,6 @@ func TestFileSetFile(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestFileHasFile(t *testing.T) {
|
func TestFileHasFile(t *testing.T) {
|
||||||
|
|
||||||
t.Run("has non-existent", func(t *testing.T) {
|
t.Run("has non-existent", func(t *testing.T) {
|
||||||
path, tearDown := setupConfigFile(t, minimalConfig)
|
path, tearDown := setupConfigFile(t, minimalConfig)
|
||||||
defer tearDown()
|
defer tearDown()
|
||||||
@@ -740,6 +739,19 @@ func TestFileHasFile(t *testing.T) {
|
|||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
require.True(t, has)
|
require.True(t, has)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
t.Run("has empty string", func(t *testing.T) {
|
||||||
|
path, tearDown := setupConfigFile(t, minimalConfig)
|
||||||
|
defer tearDown()
|
||||||
|
|
||||||
|
fs, err := config.NewFileStore(path, true)
|
||||||
|
require.NoError(t, err)
|
||||||
|
defer fs.Close()
|
||||||
|
|
||||||
|
has, err := fs.HasFile("")
|
||||||
|
require.NoError(t, err)
|
||||||
|
require.False(t, has)
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestFileRemoveFile(t *testing.T) {
|
func TestFileRemoveFile(t *testing.T) {
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user