Fix exif circular imports in tests
This commit is contained in:
parent
3040daafb6
commit
c48ede175a
|
@ -88,8 +88,8 @@ func TestAuthenticateRoute(t *testing.T) {
|
||||||
|
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.True(t, success)
|
assert.True(t, success)
|
||||||
assert.Equal(t, responseMessage, "success")
|
assert.Equal(t, "success", responseMessage)
|
||||||
assert.Equal(t, responseStatus, http.StatusAccepted)
|
assert.Equal(t, http.StatusAccepted, responseStatus)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -103,8 +103,8 @@ func TestAuthenticateRoute(t *testing.T) {
|
||||||
|
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.True(t, success)
|
assert.True(t, success)
|
||||||
assert.Equal(t, responseMessage, "success")
|
assert.Equal(t, "success", responseMessage)
|
||||||
assert.Equal(t, responseStatus, http.StatusAccepted)
|
assert.Equal(t, http.StatusAccepted, responseStatus)
|
||||||
})
|
})
|
||||||
|
|
||||||
t.Run("Request without access token", func(t *testing.T) {
|
t.Run("Request without access token", func(t *testing.T) {
|
||||||
|
@ -114,8 +114,8 @@ func TestAuthenticateRoute(t *testing.T) {
|
||||||
|
|
||||||
assert.Error(t, err)
|
assert.Error(t, err)
|
||||||
assert.False(t, success)
|
assert.False(t, success)
|
||||||
assert.Equal(t, responseMessage, "unauthorized")
|
assert.Equal(t, "unauthorized", responseMessage)
|
||||||
assert.Equal(t, responseStatus, http.StatusForbidden)
|
assert.Equal(t, http.StatusForbidden, responseStatus)
|
||||||
})
|
})
|
||||||
|
|
||||||
expire := time.Now().Add(time.Hour * 24 * 30)
|
expire := time.Now().Add(time.Hour * 24 * 30)
|
||||||
|
@ -139,8 +139,8 @@ func TestAuthenticateRoute(t *testing.T) {
|
||||||
|
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.True(t, success)
|
assert.True(t, success)
|
||||||
assert.Equal(t, responseMessage, "success")
|
assert.Equal(t, "success", responseMessage)
|
||||||
assert.Equal(t, responseStatus, http.StatusAccepted)
|
assert.Equal(t, http.StatusAccepted, responseStatus)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
|
@ -9,19 +9,19 @@ import (
|
||||||
"github.com/photoview/photoview/api/graphql/models"
|
"github.com/photoview/photoview/api/graphql/models"
|
||||||
)
|
)
|
||||||
|
|
||||||
type exifParser interface {
|
type ExifParser interface {
|
||||||
ParseExif(media_path string) (*models.MediaEXIF, error)
|
ParseExif(media_path string) (*models.MediaEXIF, error)
|
||||||
}
|
}
|
||||||
|
|
||||||
var globalExifParser exifParser
|
var globalExifParser ExifParser
|
||||||
|
|
||||||
func InitializeEXIFParser() {
|
func InitializeEXIFParser() {
|
||||||
// Decide between internal or external Exif parser
|
// Decide between internal or external Exif parser
|
||||||
exiftoolParser, err := newExiftoolParser()
|
exiftoolParser, err := NewExiftoolParser()
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Printf("Failed to get exiftool, using internal exif parser instead: %v\n", err)
|
log.Printf("Failed to get exiftool, using internal exif parser instead: %v\n", err)
|
||||||
globalExifParser = &internalExifParser{}
|
globalExifParser = NewInternalExifParser()
|
||||||
} else {
|
} else {
|
||||||
log.Println("Found exiftool")
|
log.Println("Found exiftool")
|
||||||
globalExifParser = exiftoolParser
|
globalExifParser = exiftoolParser
|
||||||
|
|
|
@ -15,7 +15,7 @@ type externalExifParser struct {
|
||||||
dataLoader *dataloader.ExiftoolLoader
|
dataLoader *dataloader.ExiftoolLoader
|
||||||
}
|
}
|
||||||
|
|
||||||
func newExiftoolParser() (*externalExifParser, error) {
|
func NewExiftoolParser() (ExifParser, error) {
|
||||||
et, err := exiftool.NewExiftool(exiftool.NoPrintConversion())
|
et, err := exiftool.NewExiftool(exiftool.NoPrintConversion())
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
|
@ -16,7 +16,11 @@ import (
|
||||||
// internalExifParser is an exif parser that parses the media without the use of external tools
|
// internalExifParser is an exif parser that parses the media without the use of external tools
|
||||||
type internalExifParser struct{}
|
type internalExifParser struct{}
|
||||||
|
|
||||||
func (p *internalExifParser) ParseExif(media_path string) (returnExif *models.MediaEXIF, returnErr error) {
|
func NewInternalExifParser() ExifParser {
|
||||||
|
return internalExifParser{}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p internalExifParser) ParseExif(media_path string) (returnExif *models.MediaEXIF, returnErr error) {
|
||||||
photoFile, err := os.Open(media_path)
|
photoFile, err := os.Open(media_path)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package exif
|
package exif_test
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
@ -9,6 +9,7 @@ import (
|
||||||
|
|
||||||
"github.com/barasher/go-exiftool"
|
"github.com/barasher/go-exiftool"
|
||||||
"github.com/photoview/photoview/api/graphql/models"
|
"github.com/photoview/photoview/api/graphql/models"
|
||||||
|
"github.com/photoview/photoview/api/scanner/exif"
|
||||||
"github.com/photoview/photoview/api/test_utils"
|
"github.com/photoview/photoview/api/test_utils"
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
)
|
)
|
||||||
|
@ -22,18 +23,18 @@ func TestExifParsers(t *testing.T) {
|
||||||
|
|
||||||
parsers := []struct {
|
parsers := []struct {
|
||||||
name string
|
name string
|
||||||
parser exifParser
|
parser exif.ExifParser
|
||||||
}{
|
}{
|
||||||
{
|
{
|
||||||
name: "internal",
|
name: "internal",
|
||||||
parser: &internalExifParser{},
|
parser: exif.NewInternalExifParser(),
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
if externalParser, err := newExiftoolParser(); err == nil {
|
if externalParser, err := exif.NewExiftoolParser(); err == nil {
|
||||||
parsers = append(parsers, struct {
|
parsers = append(parsers, struct {
|
||||||
name string
|
name string
|
||||||
parser exifParser
|
parser exif.ExifParser
|
||||||
}{
|
}{
|
||||||
name: "external",
|
name: "external",
|
||||||
parser: externalParser,
|
parser: externalParser,
|
||||||
|
|
Loading…
Reference in New Issue