photoprism/internal/repo/photo_test.go

303 lines
5.2 KiB
Go
Raw Normal View History

package repo
import (
"testing"
"github.com/stretchr/testify/assert"
"github.com/photoprism/photoprism/internal/config"
"github.com/photoprism/photoprism/internal/form"
)
2018-09-13 18:54:34 +00:00
func TestSearch_Photos_Query(t *testing.T) {
2019-07-04 07:52:30 +00:00
conf := config.TestConfig()
2019-07-04 07:52:30 +00:00
conf.CreateDirectories()
search := New(conf.OriginalsPath(), conf.Db())
2019-07-08 15:25:51 +00:00
t.Run("normal query", func(t *testing.T) {
var f form.PhotoSearch
f.Query = "animal"
f.Count = 3
f.Offset = 0
photos, err := search.Photos(f)
2019-07-08 15:25:51 +00:00
if err != nil {
t.Fatal(err)
}
t.Logf("results: %+v", photos)
2019-07-08 15:25:51 +00:00
})
t.Run("label query", func(t *testing.T) {
var f form.PhotoSearch
f.Query = "label:dog"
f.Count = 3
f.Offset = 0
photos, err := search.Photos(f)
2018-09-13 18:54:34 +00:00
2019-07-08 15:25:51 +00:00
if err != nil {
// TODO: Add database fixtures to avoid failing queries
t.Logf("query failed: %s", err.Error())
2019-07-08 15:25:51 +00:00
}
2018-09-13 18:54:34 +00:00
t.Logf("results: %+v", photos)
2019-07-08 15:25:51 +00:00
})
t.Run("invalid label query", func(t *testing.T) {
var f form.PhotoSearch
f.Query = "label:xxx"
f.Count = 3
f.Offset = 0
2018-09-13 18:54:34 +00:00
photos, err := search.Photos(f)
2018-09-13 18:54:34 +00:00
2019-07-08 15:25:51 +00:00
assert.Equal(t, err.Error(), "label \"xxx\" not found")
2018-09-13 18:54:34 +00:00
t.Logf("results: %+v", photos)
2019-07-08 15:25:51 +00:00
})
t.Run("form.location true", func(t *testing.T) {
var f form.PhotoSearch
f.Query = ""
f.Count = 3
f.Offset = 0
f.Location = true
2018-09-13 18:54:34 +00:00
photos, err := search.Photos(f)
2018-09-13 18:54:34 +00:00
2019-07-08 15:25:51 +00:00
if err != nil {
t.Fatal(err)
}
t.Logf("results: %+v", photos)
2019-07-08 15:25:51 +00:00
})
t.Run("form.camera", func(t *testing.T) {
var f form.PhotoSearch
f.Query = ""
f.Count = 3
f.Offset = 0
f.Camera = 2
2019-07-08 15:25:51 +00:00
photos, err := search.Photos(f)
2019-07-08 15:25:51 +00:00
if err != nil {
t.Fatal(err)
}
t.Logf("results: %+v", photos)
2019-07-08 15:25:51 +00:00
})
t.Run("form.color", func(t *testing.T) {
var f form.PhotoSearch
f.Query = ""
f.Count = 3
f.Offset = 0
f.Color = "blue"
2019-07-08 15:25:51 +00:00
photos, err := search.Photos(f)
2019-07-08 15:25:51 +00:00
if err != nil {
t.Fatal(err)
}
t.Logf("results: %+v", photos)
2019-07-08 15:25:51 +00:00
})
t.Run("form.favorites", func(t *testing.T) {
var f form.PhotoSearch
f.Query = "favorites:true"
f.Count = 3
f.Offset = 0
2019-07-08 15:25:51 +00:00
photos, err := search.Photos(f)
2019-07-08 15:25:51 +00:00
if err != nil {
t.Fatal(err)
}
t.Logf("results: %+v", photos)
2019-07-08 15:25:51 +00:00
})
t.Run("form.country", func(t *testing.T) {
var f form.PhotoSearch
f.Query = "country:de"
f.Count = 3
f.Offset = 0
2019-07-08 15:25:51 +00:00
photos, err := search.Photos(f)
2019-07-08 15:25:51 +00:00
if err != nil {
t.Fatal(err)
}
t.Logf("results: %+v", photos)
2019-07-08 15:25:51 +00:00
})
t.Run("form.title", func(t *testing.T) {
var f form.PhotoSearch
f.Query = "title:Pug Dog"
f.Count = 3
f.Offset = 0
2019-07-08 15:25:51 +00:00
photos, err := search.Photos(f)
2019-07-08 15:25:51 +00:00
if err != nil {
t.Fatal(err)
}
t.Logf("results: %+v", photos)
2019-07-08 15:25:51 +00:00
})
t.Run("form.description", func(t *testing.T) {
var f form.PhotoSearch
f.Query = "description:xxx"
f.Count = 3
f.Offset = 0
2019-07-08 15:25:51 +00:00
photos, err := search.Photos(f)
2019-07-08 15:25:51 +00:00
if err != nil {
t.Fatal(err)
}
t.Logf("results: %+v", photos)
2019-07-08 15:25:51 +00:00
})
t.Run("form.notes", func(t *testing.T) {
var f form.PhotoSearch
f.Query = "notes:xxx"
f.Count = 3
f.Offset = 0
2019-07-08 15:25:51 +00:00
photos, err := search.Photos(f)
2019-07-08 15:25:51 +00:00
if err != nil {
t.Fatal(err)
}
t.Logf("results: %+v", photos)
2019-07-08 15:25:51 +00:00
})
t.Run("form.hash", func(t *testing.T) {
var f form.PhotoSearch
f.Query = "hash:xxx"
f.Count = 3
f.Offset = 0
2019-07-08 15:25:51 +00:00
photos, err := search.Photos(f)
2019-07-08 15:25:51 +00:00
if err != nil {
t.Fatal(err)
}
t.Logf("results: %+v", photos)
2019-07-08 15:25:51 +00:00
})
t.Run("form.duplicate", func(t *testing.T) {
var f form.PhotoSearch
f.Query = "duplicate:true"
f.Count = 3
f.Offset = 0
2019-07-08 15:25:51 +00:00
photos, err := search.Photos(f)
2019-07-08 15:25:51 +00:00
if err != nil {
t.Fatal(err)
}
t.Logf("results: %+v", photos)
2019-07-08 15:25:51 +00:00
})
t.Run("form.portrait", func(t *testing.T) {
var f form.PhotoSearch
f.Query = "portrait:true"
f.Count = 3
f.Offset = 0
2019-07-08 15:25:51 +00:00
photos, err := search.Photos(f)
2019-07-08 15:25:51 +00:00
if err != nil {
t.Fatal(err)
}
t.Logf("results: %+v", photos)
2019-07-08 15:25:51 +00:00
})
t.Run("form.mono", func(t *testing.T) {
var f form.PhotoSearch
f.Query = "mono:true"
f.Count = 3
f.Offset = 0
2019-07-08 15:25:51 +00:00
photos, err := search.Photos(f)
2019-07-08 15:25:51 +00:00
if err != nil {
t.Fatal(err)
}
t.Logf("results: %+v", photos)
2019-07-08 15:25:51 +00:00
})
t.Run("form.chroma", func(t *testing.T) {
var f form.PhotoSearch
f.Query = "chroma:50"
f.Count = 3
f.Offset = 0
2019-07-08 15:25:51 +00:00
photos, err := search.Photos(f)
2019-07-08 15:25:51 +00:00
if err != nil {
t.Fatal(err)
}
t.Logf("results: %+v", photos)
2019-07-08 15:25:51 +00:00
})
2019-07-08 15:42:06 +00:00
t.Run("form.fmin and Order:oldest", func(t *testing.T) {
var f form.PhotoSearch
f.Query = "Fmin:5 Order:oldest"
f.Count = 3
f.Offset = 0
2019-07-08 15:25:51 +00:00
photos, err := search.Photos(f)
2019-07-08 15:25:51 +00:00
if err != nil {
t.Fatal(err)
}
t.Logf("results: %+v", photos)
2019-07-08 15:25:51 +00:00
})
2019-07-08 15:42:06 +00:00
t.Run("form.fmax and Order:newest", func(t *testing.T) {
var f form.PhotoSearch
f.Query = "Fmax:2 Order:newest"
f.Count = 3
f.Offset = 0
2019-07-08 15:25:51 +00:00
photos, err := search.Photos(f)
2019-07-08 15:25:51 +00:00
if err != nil {
t.Fatal(err)
}
t.Logf("results: %+v", photos)
2019-07-08 15:25:51 +00:00
})
t.Run("form.Lat and form.Lng and Order:imported", func(t *testing.T) {
var f form.PhotoSearch
f.Query = "Lat:33.45343166666667 Lng:25.764711666666667 Dist:2000 Order:imported"
f.Count = 3
f.Offset = 0
2019-07-08 15:25:51 +00:00
photos, err := search.Photos(f)
2019-07-08 15:25:51 +00:00
if err != nil {
t.Fatal(err)
}
2018-09-13 18:54:34 +00:00
t.Logf("results: %+v", photos)
2019-07-08 15:25:51 +00:00
})
t.Run("form.Before and form.After", func(t *testing.T) {
var f form.PhotoSearch
f.Query = "Before:2005-01-01 After:2003-01-01"
f.Count = 5000
f.Offset = 0
2018-09-13 18:54:34 +00:00
photos, err := search.Photos(f)
2018-09-13 18:54:34 +00:00
2019-07-08 15:25:51 +00:00
if err != nil {
t.Fatal(err)
}
2018-09-13 18:54:34 +00:00
t.Logf("results: %+v", photos)
2019-07-08 15:25:51 +00:00
})
2018-09-13 18:54:34 +00:00
2018-09-17 16:40:57 +00:00
}