refactor podcast schema and generate unique episode paths (#373)
closes #350
This commit is contained in:
56
fileutil/fileutil_test.go
Normal file
56
fileutil/fileutil_test.go
Normal file
@@ -0,0 +1,56 @@
|
||||
package fileutil
|
||||
|
||||
import (
|
||||
"os"
|
||||
"path/filepath"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestUniquePath(t *testing.T) {
|
||||
unq := func(base, filename string, count uint) string {
|
||||
r, err := unique(base, filename, count)
|
||||
require.NoError(t, err)
|
||||
return r
|
||||
}
|
||||
|
||||
require.Equal(t, "test/wow.mp3", unq("test", "wow.mp3", 0))
|
||||
require.Equal(t, "test/wow (1).mp3", unq("test", "wow.mp3", 1))
|
||||
require.Equal(t, "test/wow (2).mp3", unq("test", "wow.mp3", 2))
|
||||
|
||||
require.Equal(t, "test", unq("test", "", 0))
|
||||
require.Equal(t, "test (1)", unq("test", "", 1))
|
||||
|
||||
base := filepath.Join(t.TempDir(), "a")
|
||||
|
||||
require.NoError(t, os.MkdirAll(base, os.ModePerm))
|
||||
|
||||
next := base + " (1)"
|
||||
require.Equal(t, next, unq(base, "", 0))
|
||||
|
||||
require.NoError(t, os.MkdirAll(next, os.ModePerm))
|
||||
|
||||
next = base + " (2)"
|
||||
require.Equal(t, next, unq(base, "", 0))
|
||||
|
||||
_, err := os.Create(filepath.Join(base, "test.mp3"))
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, filepath.Join(base, "test (1).mp3"), unq(base, "test.mp3", 0))
|
||||
}
|
||||
|
||||
func TestFirst(t *testing.T) {
|
||||
base := t.TempDir()
|
||||
name := filepath.Join(base, "test")
|
||||
_, err := os.Create(name)
|
||||
require.NoError(t, err)
|
||||
|
||||
p := func(name string) string {
|
||||
return filepath.Join(base, name)
|
||||
}
|
||||
|
||||
r, err := First(p("one"), p("two"), p("test"), p("four"))
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, p("test"), r)
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user