mirror of
https://git.vectorsigma.ru/public/photoview.git
synced 2026-08-03 20:49:02 +00:00
Add scanner_album tests
This commit is contained in:
@@ -107,8 +107,6 @@ func (fd *FaceDetector) DetectFaces(db *gorm.DB, media *models.Media) error {
|
||||
return err
|
||||
}
|
||||
|
||||
log.Printf("Face thumb path: %v %v\n", thumbnailPath, fd)
|
||||
|
||||
fd.mutex.Lock()
|
||||
faces, err := fd.rec.RecognizeFile(thumbnailPath)
|
||||
fd.mutex.Unlock()
|
||||
|
||||
@@ -30,6 +30,15 @@ func NewRootAlbum(db *gorm.DB, rootPath string, owner *models.User) (*models.Alb
|
||||
if len(matchedAlbums) > 0 {
|
||||
album := matchedAlbums[0]
|
||||
|
||||
var matchedUserAlbumCount int64
|
||||
if err := db.Table("user_albums").Where("user_id = ?", owner.ID).Where("album_id = ?", album.ID).Count(&matchedUserAlbumCount).Error; err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if matchedUserAlbumCount > 0 {
|
||||
return nil, errors.New(fmt.Sprintf("user already owns path (%s)", rootPath))
|
||||
}
|
||||
|
||||
if err := db.Model(&owner).Association("Albums").Append(&album); err != nil {
|
||||
return nil, errors.Wrap(err, "failed to add owner to already existing album")
|
||||
}
|
||||
|
||||
42
api/scanner/scanner_album_test.go
Normal file
42
api/scanner/scanner_album_test.go
Normal file
@@ -0,0 +1,42 @@
|
||||
package scanner_test
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/photoview/photoview/api/graphql/models"
|
||||
"github.com/photoview/photoview/api/scanner"
|
||||
"github.com/photoview/photoview/api/test_utils"
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func TestNewRootPath(t *testing.T) {
|
||||
db := test_utils.DatabaseTest(t)
|
||||
|
||||
user := models.User{
|
||||
Username: "user1",
|
||||
}
|
||||
|
||||
if !assert.NoError(t, db.Save(&user).Error) {
|
||||
return
|
||||
}
|
||||
|
||||
t.Run("Insert valid root album", func(t *testing.T) {
|
||||
album, err := scanner.NewRootAlbum(db, "./test_data", &user)
|
||||
if !assert.NoError(t, err) {
|
||||
return
|
||||
}
|
||||
|
||||
assert.NotNil(t, album)
|
||||
assert.Equal(t, "./test_data", album.Path)
|
||||
assert.NotEmpty(t, album.Owners)
|
||||
})
|
||||
|
||||
t.Run("Insert duplicate root album", func(t *testing.T) {
|
||||
|
||||
_, err := scanner.NewRootAlbum(db, "./test_data", &user)
|
||||
|
||||
assert.Error(t, err)
|
||||
assert.Equal(t, err.Error(), "user already owns path (./test_data)")
|
||||
})
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user