mirror of
https://github.com/stashapp/stash.git
synced 2025-12-17 20:34:37 +03:00
Move image blobs into separate tables (#618)
* Scene cover fallback to database * Fix panic if studio not found * Fix movie studio not being imported/exported
This commit is contained in:
@@ -3,13 +3,16 @@
|
||||
package models_test
|
||||
|
||||
import (
|
||||
"context"
|
||||
"database/sql"
|
||||
"strconv"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
|
||||
"github.com/stashapp/stash/pkg/database"
|
||||
"github.com/stashapp/stash/pkg/models"
|
||||
"github.com/stashapp/stash/pkg/utils"
|
||||
)
|
||||
|
||||
func TestSceneFind(t *testing.T) {
|
||||
@@ -894,6 +897,104 @@ func TestFindByStudioID(t *testing.T) {
|
||||
assert.Len(t, scenes, 0)
|
||||
}
|
||||
|
||||
func TestSceneUpdateSceneCover(t *testing.T) {
|
||||
qb := models.NewSceneQueryBuilder()
|
||||
|
||||
// create performer to test against
|
||||
ctx := context.TODO()
|
||||
tx := database.DB.MustBeginTx(ctx, nil)
|
||||
|
||||
const name = "TestSceneUpdateSceneCover"
|
||||
scene := models.Scene{
|
||||
Path: name,
|
||||
Checksum: utils.MD5FromString(name),
|
||||
}
|
||||
created, err := qb.Create(scene, tx)
|
||||
if err != nil {
|
||||
tx.Rollback()
|
||||
t.Fatalf("Error creating scene: %s", err.Error())
|
||||
}
|
||||
|
||||
image := []byte("image")
|
||||
err = qb.UpdateSceneCover(created.ID, image, tx)
|
||||
if err != nil {
|
||||
tx.Rollback()
|
||||
t.Fatalf("Error updating scene cover: %s", err.Error())
|
||||
}
|
||||
|
||||
if err := tx.Commit(); err != nil {
|
||||
tx.Rollback()
|
||||
t.Fatalf("Error committing: %s", err.Error())
|
||||
}
|
||||
|
||||
// ensure image set
|
||||
storedImage, err := qb.GetSceneCover(created.ID, nil)
|
||||
if err != nil {
|
||||
t.Fatalf("Error getting image: %s", err.Error())
|
||||
}
|
||||
assert.Equal(t, storedImage, image)
|
||||
|
||||
// set nil image
|
||||
tx = database.DB.MustBeginTx(ctx, nil)
|
||||
err = qb.UpdateSceneCover(created.ID, nil, tx)
|
||||
if err == nil {
|
||||
t.Fatalf("Expected error setting nil image")
|
||||
}
|
||||
|
||||
tx.Rollback()
|
||||
}
|
||||
|
||||
func TestSceneDestroySceneCover(t *testing.T) {
|
||||
qb := models.NewSceneQueryBuilder()
|
||||
|
||||
// create performer to test against
|
||||
ctx := context.TODO()
|
||||
tx := database.DB.MustBeginTx(ctx, nil)
|
||||
|
||||
const name = "TestSceneDestroySceneCover"
|
||||
scene := models.Scene{
|
||||
Path: name,
|
||||
Checksum: utils.MD5FromString(name),
|
||||
}
|
||||
created, err := qb.Create(scene, tx)
|
||||
if err != nil {
|
||||
tx.Rollback()
|
||||
t.Fatalf("Error creating scene: %s", err.Error())
|
||||
}
|
||||
|
||||
image := []byte("image")
|
||||
err = qb.UpdateSceneCover(created.ID, image, tx)
|
||||
if err != nil {
|
||||
tx.Rollback()
|
||||
t.Fatalf("Error updating scene image: %s", err.Error())
|
||||
}
|
||||
|
||||
if err := tx.Commit(); err != nil {
|
||||
tx.Rollback()
|
||||
t.Fatalf("Error committing: %s", err.Error())
|
||||
}
|
||||
|
||||
tx = database.DB.MustBeginTx(ctx, nil)
|
||||
|
||||
err = qb.DestroySceneCover(created.ID, tx)
|
||||
if err != nil {
|
||||
tx.Rollback()
|
||||
t.Fatalf("Error destroying scene cover: %s", err.Error())
|
||||
}
|
||||
|
||||
if err := tx.Commit(); err != nil {
|
||||
tx.Rollback()
|
||||
t.Fatalf("Error committing: %s", err.Error())
|
||||
}
|
||||
|
||||
// image should be nil
|
||||
storedImage, err := qb.GetSceneCover(created.ID, nil)
|
||||
if err != nil {
|
||||
t.Fatalf("Error getting image: %s", err.Error())
|
||||
}
|
||||
assert.Nil(t, storedImage)
|
||||
}
|
||||
|
||||
// TODO Update
|
||||
// TODO IncrementOCounter
|
||||
// TODO DecrementOCounter
|
||||
|
||||
Reference in New Issue
Block a user