refactor(mockfs): automatically clean up with t.Cleanup()

This commit is contained in:
sentriz
2022-03-02 15:19:12 +00:00
parent 9d406afb1f
commit 5420f01089
7 changed files with 19 additions and 48 deletions

View File

@@ -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) {

View File

@@ -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},

View File

@@ -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},

View File

@@ -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) }

View File

@@ -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()
}
}

View File

@@ -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++ {

View File

@@ -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()