1
Fork 0

Fix exif circular imports in tests

This commit is contained in:
viktorstrate 2021-11-06 13:01:01 +01:00
parent 3040daafb6
commit c48ede175a
No known key found for this signature in database
GPG Key ID: 3F855605109C1E8A
5 changed files with 24 additions and 19 deletions

View File

@ -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)
}) })
}) })

View File

@ -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

View File

@ -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 {

View File

@ -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

View File

@ -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,