Files
photoprism/internal/workers/vision_reset_test.go
2025-09-29 18:59:52 +02:00

57 lines
1.6 KiB
Go

package workers
import (
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"github.com/photoprism/photoprism/internal/ai/vision"
"github.com/photoprism/photoprism/internal/config"
"github.com/photoprism/photoprism/internal/entity"
)
func TestVisionReset(t *testing.T) {
conf := config.NewMinimalTestConfigWithDb("workers-vision-reset", t.TempDir())
worker := NewVision(conf)
fixture := entity.PhotoFixtures.Get("VisionResetTarget")
require.NotEmpty(t, fixture.PhotoUID)
landscape := entity.LabelFixtures.Get("landscape")
photo := entity.FindPhoto(fixture)
require.NotNil(t, photo)
targetID := photo.ID
targetUID := photo.PhotoUID
t.Cleanup(func() {
entity.FlushPhotoLabelCache()
})
require.NotNil(t, entity.FirstOrCreatePhotoLabel(entity.NewPhotoLabel(targetID, landscape.ID, 20, entity.SrcOllama)))
require.NoError(t, entity.Db().Model(&entity.Photo{}).Where("id = ?", targetID).Updates(entity.Values{
"PhotoCaption": "Reset caption",
"CaptionSrc": entity.SrcOllama,
}).Error)
entity.FlushPhotoLabelCache()
filter := "uid:" + targetUID
err := worker.Reset(filter, 10, []string{vision.ModelTypeCaption, vision.ModelTypeLabels}, entity.SrcOllama)
require.NoError(t, err)
refreshed := entity.FindPhoto(fixture)
require.NotNil(t, refreshed)
assert.Equal(t, "", refreshed.PhotoCaption)
assert.Equal(t, "", refreshed.CaptionSrc)
var labelCount int
require.NoError(t, entity.Db().Model(&entity.PhotoLabel{}).Where("photo_id = ? AND label_src = ?", targetID, entity.SrcOllama).Count(&labelCount).Error)
assert.Zero(t, labelCount)
}