refactor(mockfs): automatically clean up with t.Cleanup()
This commit is contained in:
@@ -96,10 +96,10 @@ func runQueryCases(t *testing.T, contr *Controller, h handlerSubsonic, cases []*
|
||||
}
|
||||
}
|
||||
|
||||
func makeController(t *testing.T) (*Controller, *mockfs.MockFS) { return makec(t, []string{""}) }
|
||||
func makeControllerRoots(t *testing.T, r []string) (*Controller, *mockfs.MockFS) { return makec(t, r) }
|
||||
func makeController(t *testing.T) *Controller { return makec(t, []string{""}) }
|
||||
func makeControllerRoots(t *testing.T, r []string) *Controller { return makec(t, r) }
|
||||
|
||||
func makec(t *testing.T, roots []string) (*Controller, *mockfs.MockFS) {
|
||||
func makec(t *testing.T, roots []string) *Controller {
|
||||
t.Helper()
|
||||
|
||||
m := mockfs.NewWithDirs(t, roots)
|
||||
@@ -117,7 +117,7 @@ func makec(t *testing.T, roots []string) (*Controller, *mockfs.MockFS) {
|
||||
}
|
||||
|
||||
base := &ctrlbase.Controller{DB: m.DB()}
|
||||
return &Controller{Controller: base, MusicPaths: absRoots}, m
|
||||
return &Controller{Controller: base, MusicPaths: absRoots}
|
||||
}
|
||||
|
||||
func TestMain(m *testing.M) {
|
||||
|
||||
@@ -8,8 +8,7 @@ import (
|
||||
)
|
||||
|
||||
func TestGetIndexes(t *testing.T) {
|
||||
contr, m := makeControllerRoots(t, []string{"m-0", "m-1"})
|
||||
defer m.CleanUp()
|
||||
contr := makeControllerRoots(t, []string{"m-0", "m-1"})
|
||||
|
||||
runQueryCases(t, contr, contr.ServeGetIndexes, []*queryCase{
|
||||
{url.Values{}, "no_args", false},
|
||||
@@ -19,8 +18,7 @@ func TestGetIndexes(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestGetMusicDirectory(t *testing.T) {
|
||||
contr, m := makeController(t)
|
||||
defer m.CleanUp()
|
||||
contr := makeController(t)
|
||||
|
||||
runQueryCases(t, contr, contr.ServeGetMusicDirectory, []*queryCase{
|
||||
{url.Values{"id": {"al-2"}}, "without_tracks", false},
|
||||
@@ -30,8 +28,7 @@ func TestGetMusicDirectory(t *testing.T) {
|
||||
|
||||
func TestGetAlbumList(t *testing.T) {
|
||||
t.Parallel()
|
||||
contr, m := makeController(t)
|
||||
defer m.CleanUp()
|
||||
contr := makeController(t)
|
||||
|
||||
runQueryCases(t, contr, contr.ServeGetAlbumList, []*queryCase{
|
||||
{url.Values{"type": {"alphabeticalByArtist"}}, "alpha_artist", false},
|
||||
@@ -43,8 +40,7 @@ func TestGetAlbumList(t *testing.T) {
|
||||
|
||||
func TestSearchTwo(t *testing.T) {
|
||||
t.Parallel()
|
||||
contr, m := makeController(t)
|
||||
defer m.CleanUp()
|
||||
contr := makeController(t)
|
||||
|
||||
runQueryCases(t, contr, contr.ServeSearchTwo, []*queryCase{
|
||||
{url.Values{"query": {"art"}}, "q_art", false},
|
||||
|
||||
@@ -7,8 +7,7 @@ import (
|
||||
|
||||
func TestGetArtists(t *testing.T) {
|
||||
t.Parallel()
|
||||
contr, m := makeControllerRoots(t, []string{"m-0", "m-1"})
|
||||
defer m.CleanUp()
|
||||
contr := makeControllerRoots(t, []string{"m-0", "m-1"})
|
||||
|
||||
runQueryCases(t, contr, contr.ServeGetArtists, []*queryCase{
|
||||
{url.Values{}, "no_args", false},
|
||||
@@ -19,8 +18,7 @@ func TestGetArtists(t *testing.T) {
|
||||
|
||||
func TestGetArtist(t *testing.T) {
|
||||
t.Parallel()
|
||||
contr, m := makeController(t)
|
||||
defer m.CleanUp()
|
||||
contr := makeController(t)
|
||||
|
||||
runQueryCases(t, contr, contr.ServeGetArtist, []*queryCase{
|
||||
{url.Values{"id": {"ar-1"}}, "id_one", false},
|
||||
@@ -31,8 +29,7 @@ func TestGetArtist(t *testing.T) {
|
||||
|
||||
func TestGetAlbum(t *testing.T) {
|
||||
t.Parallel()
|
||||
contr, m := makeController(t)
|
||||
defer m.CleanUp()
|
||||
contr := makeController(t)
|
||||
|
||||
runQueryCases(t, contr, contr.ServeGetAlbum, []*queryCase{
|
||||
{url.Values{"id": {"al-2"}}, "without_cover", false},
|
||||
@@ -42,8 +39,7 @@ func TestGetAlbum(t *testing.T) {
|
||||
|
||||
func TestGetAlbumListTwo(t *testing.T) {
|
||||
t.Parallel()
|
||||
contr, m := makeController(t)
|
||||
defer m.CleanUp()
|
||||
contr := makeController(t)
|
||||
|
||||
runQueryCases(t, contr, contr.ServeGetAlbumListTwo, []*queryCase{
|
||||
{url.Values{"type": {"alphabeticalByArtist"}}, "alpha_artist", false},
|
||||
@@ -55,8 +51,7 @@ func TestGetAlbumListTwo(t *testing.T) {
|
||||
|
||||
func TestSearchThree(t *testing.T) {
|
||||
t.Parallel()
|
||||
contr, m := makeController(t)
|
||||
defer m.CleanUp()
|
||||
contr := makeController(t)
|
||||
|
||||
runQueryCases(t, contr, contr.ServeSearchThree, []*queryCase{
|
||||
{url.Values{"query": {"art"}}, "q_art", false},
|
||||
|
||||
@@ -35,6 +35,12 @@ func new(t testing.TB, dirs []string) *MockFS {
|
||||
if err != nil {
|
||||
t.Fatalf("create db: %v", err)
|
||||
}
|
||||
t.Cleanup(func() {
|
||||
if err := dbc.Close(); err != nil {
|
||||
t.Fatalf("close db: %v", err)
|
||||
}
|
||||
})
|
||||
|
||||
if err := dbc.Migrate(db.MigrationContext{}); err != nil {
|
||||
t.Fatalf("migrate db db: %v", err)
|
||||
}
|
||||
@@ -89,12 +95,6 @@ func (m *MockFS) ResetDates() {
|
||||
}
|
||||
}
|
||||
|
||||
func (m *MockFS) CleanUp() {
|
||||
if err := m.db.Close(); err != nil {
|
||||
m.t.Fatalf("close db: %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
func (m *MockFS) AddItems() { m.addItems("", false) }
|
||||
func (m *MockFS) AddItemsPrefix(prefix string) { m.addItems(prefix, false) }
|
||||
func (m *MockFS) AddItemsWithCovers() { m.addItems("", true) }
|
||||
|
||||
@@ -9,7 +9,6 @@ import (
|
||||
|
||||
func BenchmarkScanIncremental(b *testing.B) {
|
||||
m := mockfs.New(b)
|
||||
defer m.CleanUp()
|
||||
for i := 0; i < 5; i++ {
|
||||
m.AddItemsPrefix(fmt.Sprintf("t-%d", i))
|
||||
}
|
||||
@@ -30,6 +29,5 @@ func BenchmarkScanFull(b *testing.B) {
|
||||
b.StartTimer()
|
||||
m.ScanAndClean()
|
||||
b.StopTimer()
|
||||
m.CleanUp()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,7 +30,6 @@ func FuzzScanner(f *testing.F) {
|
||||
f.Fuzz(func(t *testing.T, data []byte, seed int64) {
|
||||
is := is.NewRelaxed(t)
|
||||
m := mockfs.New(t)
|
||||
defer m.CleanUp()
|
||||
|
||||
const toAdd = 1000
|
||||
for i := 0; i < toAdd; i++ {
|
||||
|
||||
@@ -28,7 +28,6 @@ func TestTableCounts(t *testing.T) {
|
||||
t.Parallel()
|
||||
is := is.NewRelaxed(t)
|
||||
m := mockfs.New(t)
|
||||
defer m.CleanUp()
|
||||
|
||||
m.AddItems()
|
||||
m.ScanAndClean()
|
||||
@@ -50,7 +49,6 @@ func TestParentID(t *testing.T) {
|
||||
t.Parallel()
|
||||
is := is.New(t)
|
||||
m := mockfs.New(t)
|
||||
defer m.CleanUp()
|
||||
|
||||
m.AddItems()
|
||||
m.ScanAndClean()
|
||||
@@ -74,7 +72,6 @@ func TestUpdatedCover(t *testing.T) {
|
||||
t.Parallel()
|
||||
is := is.NewRelaxed(t)
|
||||
m := mockfs.New(t)
|
||||
defer m.CleanUp()
|
||||
|
||||
m.AddItems()
|
||||
m.ScanAndClean()
|
||||
@@ -90,7 +87,6 @@ func TestCoverBeforeTracks(t *testing.T) {
|
||||
t.Parallel()
|
||||
is := is.New(t)
|
||||
m := mockfs.New(t)
|
||||
defer m.CleanUp()
|
||||
|
||||
m.AddCover("artist-2/album-2/cover.jpg")
|
||||
m.ScanAndClean()
|
||||
@@ -111,7 +107,6 @@ func TestUpdatedTags(t *testing.T) {
|
||||
t.Parallel()
|
||||
is := is.New(t)
|
||||
m := mockfs.New(t)
|
||||
defer m.CleanUp()
|
||||
|
||||
m.AddTrack("artist-10/album-10/track-10.flac")
|
||||
m.SetTags("artist-10/album-10/track-10.flac", func(tags *mockfs.Tags) error {
|
||||
@@ -154,7 +149,6 @@ func TestDeleteAlbum(t *testing.T) {
|
||||
t.Parallel()
|
||||
is := is.NewRelaxed(t)
|
||||
m := mockfs.New(t)
|
||||
defer m.CleanUp()
|
||||
|
||||
m.AddItems()
|
||||
m.ScanAndClean()
|
||||
@@ -171,7 +165,6 @@ func TestDeleteArtist(t *testing.T) {
|
||||
t.Parallel()
|
||||
is := is.NewRelaxed(t)
|
||||
m := mockfs.New(t)
|
||||
defer m.CleanUp()
|
||||
|
||||
m.AddItems()
|
||||
m.ScanAndClean()
|
||||
@@ -189,7 +182,6 @@ func TestGenres(t *testing.T) {
|
||||
t.Parallel()
|
||||
is := is.New(t)
|
||||
m := mockfs.New(t)
|
||||
defer m.CleanUp()
|
||||
|
||||
albumGenre := func(artist, album, genre string) error {
|
||||
return m.DB().
|
||||
@@ -281,7 +273,6 @@ func TestMultiFolders(t *testing.T) {
|
||||
t.Parallel()
|
||||
is := is.New(t)
|
||||
m := mockfs.NewWithDirs(t, []string{"m-1", "m-2", "m-3"})
|
||||
defer m.CleanUp()
|
||||
|
||||
m.AddItemsPrefix("m-1")
|
||||
m.AddItemsPrefix("m-2")
|
||||
@@ -316,7 +307,6 @@ func TestNewAlbumForExistingArtist(t *testing.T) {
|
||||
t.Parallel()
|
||||
is := is.New(t)
|
||||
m := mockfs.New(t)
|
||||
defer m.CleanUp()
|
||||
|
||||
m.AddItems()
|
||||
m.ScanAndClean()
|
||||
@@ -352,7 +342,6 @@ func TestMultiFolderWithSharedArtist(t *testing.T) {
|
||||
t.Parallel()
|
||||
is := is.New(t)
|
||||
m := mockfs.NewWithDirs(t, []string{"m-0", "m-1"})
|
||||
defer m.CleanUp()
|
||||
|
||||
const artistName = "artist-a"
|
||||
|
||||
@@ -400,7 +389,6 @@ func TestSymlinkedAlbum(t *testing.T) {
|
||||
t.Parallel()
|
||||
is := is.New(t)
|
||||
m := mockfs.NewWithDirs(t, []string{"scan"})
|
||||
defer m.CleanUp()
|
||||
|
||||
m.AddItemsPrefixWithCovers("temp")
|
||||
|
||||
@@ -428,7 +416,6 @@ func TestSymlinkedSubdiscs(t *testing.T) {
|
||||
t.Parallel()
|
||||
is := is.New(t)
|
||||
m := mockfs.NewWithDirs(t, []string{"scan"})
|
||||
defer m.CleanUp()
|
||||
|
||||
addItem := func(prefix, artist, album, disc, track string) {
|
||||
p := fmt.Sprintf("%s/%s/%s/%s/%s", prefix, artist, album, disc, track)
|
||||
@@ -472,7 +459,6 @@ func TestArtistHasCover(t *testing.T) {
|
||||
t.Parallel()
|
||||
is := is.New(t)
|
||||
m := mockfs.New(t)
|
||||
defer m.CleanUp()
|
||||
|
||||
m.AddItemsWithCovers()
|
||||
m.AddCover("artist-2/artist.png")
|
||||
@@ -491,7 +477,6 @@ func TestTagErrors(t *testing.T) {
|
||||
t.Parallel()
|
||||
is := is.New(t)
|
||||
m := mockfs.New(t)
|
||||
defer m.CleanUp()
|
||||
|
||||
m.AddItemsWithCovers()
|
||||
m.SetTags("artist-1/album-0/track-0.flac", func(tags *mockfs.Tags) error {
|
||||
@@ -520,7 +505,6 @@ func TestCompilationAlbumWithoutAlbumArtist(t *testing.T) {
|
||||
t.Parallel()
|
||||
is := is.New(t)
|
||||
m := mockfs.New(t)
|
||||
defer m.CleanUp()
|
||||
|
||||
const pathArtist = "various-artists"
|
||||
const pathAlbum = "my-compilation"
|
||||
@@ -558,7 +542,6 @@ func TestIncrementalScanNoChangeNoUpdatedAt(t *testing.T) {
|
||||
t.Parallel()
|
||||
is := is.New(t)
|
||||
m := mockfs.New(t)
|
||||
defer m.CleanUp()
|
||||
|
||||
m.AddItems()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user