1
Fork 0
photoview/api/scanner/cleanup_media_test.go

82 lines
1.8 KiB
Go
Raw Normal View History

2021-11-06 12:23:47 +01:00
package scanner_test
import (
"os"
"path"
"testing"
"github.com/otiai10/copy"
"github.com/photoview/photoview/api/graphql/models"
"github.com/photoview/photoview/api/test_utils"
"github.com/stretchr/testify/assert"
)
func TestCleanupMedia(t *testing.T) {
test_utils.FilesystemTest(t)
db := test_utils.DatabaseTest(t)
test_dir := t.TempDir()
copy.Copy("./test_data", test_dir)
countAllMedia := func() int {
var all_media []*models.Media
if !assert.NoError(t, db.Find(&all_media).Error) {
return -1
}
return len(all_media)
}
countAllMediaURLs := func() int {
var all_media_urls []*models.MediaURL
if !assert.NoError(t, db.Find(&all_media_urls).Error) {
return -1
}
return len(all_media_urls)
}
pass := "1234"
user1, err := models.RegisterUser(db, "user1", &pass, true)
if !assert.NoError(t, err) {
return
}
user2, err := models.RegisterUser(db, "user2", &pass, true)
if !assert.NoError(t, err) {
return
}
root_album := models.Album{
Title: "root album",
Path: test_dir,
}
if !assert.NoError(t, db.Save(&root_album).Error) {
return
}
err = db.Model(user1).Association("Albums").Append(&root_album)
if !assert.NoError(t, err) {
return
}
err = db.Model(user2).Association("Albums").Append(&root_album)
if !assert.NoError(t, err) {
return
}
test_utils.RunScannerOnUser(t, db, user1)
assert.Equal(t, 9, countAllMedia())
assert.Equal(t, 18, countAllMediaURLs())
// move faces directory
assert.NoError(t, os.Rename(path.Join(test_dir, "faces"), path.Join(test_dir, "faces_moved")))
test_utils.RunScannerAll(t, db)
assert.Equal(t, 9, countAllMedia())
assert.Equal(t, 18, countAllMediaURLs())
// remove faces_moved directory
assert.NoError(t, os.RemoveAll(path.Join(test_dir, "faces_moved")))
test_utils.RunScannerAll(t, db)
assert.Equal(t, 3, countAllMedia())
assert.Equal(t, 6, countAllMediaURLs())
}