Fix exif circular imports in tests

This commit is contained in:
viktorstrate
2021-11-06 13:01:01 +01:00
parent 3040daafb6
commit c48ede175a
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.True(t, success)
assert.Equal(t, responseMessage, "success")
assert.Equal(t, responseStatus, http.StatusAccepted)
assert.Equal(t, "success", responseMessage)
assert.Equal(t, http.StatusAccepted, responseStatus)
})
})
@@ -103,8 +103,8 @@ func TestAuthenticateRoute(t *testing.T) {
assert.NoError(t, err)
assert.True(t, success)
assert.Equal(t, responseMessage, "success")
assert.Equal(t, responseStatus, http.StatusAccepted)
assert.Equal(t, "success", responseMessage)
assert.Equal(t, http.StatusAccepted, responseStatus)
})
t.Run("Request without access token", func(t *testing.T) {
@@ -114,8 +114,8 @@ func TestAuthenticateRoute(t *testing.T) {
assert.Error(t, err)
assert.False(t, success)
assert.Equal(t, responseMessage, "unauthorized")
assert.Equal(t, responseStatus, http.StatusForbidden)
assert.Equal(t, "unauthorized", responseMessage)
assert.Equal(t, http.StatusForbidden, responseStatus)
})
expire := time.Now().Add(time.Hour * 24 * 30)
@@ -139,8 +139,8 @@ func TestAuthenticateRoute(t *testing.T) {
assert.NoError(t, err)
assert.True(t, success)
assert.Equal(t, responseMessage, "success")
assert.Equal(t, responseStatus, http.StatusAccepted)
assert.Equal(t, "success", responseMessage)
assert.Equal(t, http.StatusAccepted, responseStatus)
})
})

View File

@@ -9,19 +9,19 @@ import (
"github.com/photoview/photoview/api/graphql/models"
)
type exifParser interface {
type ExifParser interface {
ParseExif(media_path string) (*models.MediaEXIF, error)
}
var globalExifParser exifParser
var globalExifParser ExifParser
func InitializeEXIFParser() {
// Decide between internal or external Exif parser
exiftoolParser, err := newExiftoolParser()
exiftoolParser, err := NewExiftoolParser()
if err != nil {
log.Printf("Failed to get exiftool, using internal exif parser instead: %v\n", err)
globalExifParser = &internalExifParser{}
globalExifParser = NewInternalExifParser()
} else {
log.Println("Found exiftool")
globalExifParser = exiftoolParser

View File

@@ -15,7 +15,7 @@ type externalExifParser struct {
dataLoader *dataloader.ExiftoolLoader
}
func newExiftoolParser() (*externalExifParser, error) {
func NewExiftoolParser() (ExifParser, error) {
et, err := exiftool.NewExiftool(exiftool.NoPrintConversion())
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
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)
if err != nil {
return nil, err

View File

@@ -1,4 +1,4 @@
package exif
package exif_test
import (
"fmt"
@@ -9,6 +9,7 @@ import (
"github.com/barasher/go-exiftool"
"github.com/photoview/photoview/api/graphql/models"
"github.com/photoview/photoview/api/scanner/exif"
"github.com/photoview/photoview/api/test_utils"
"github.com/stretchr/testify/assert"
)
@@ -22,18 +23,18 @@ func TestExifParsers(t *testing.T) {
parsers := []struct {
name string
parser exifParser
parser exif.ExifParser
}{
{
name: "internal",
parser: &internalExifParser{},
parser: exif.NewInternalExifParser(),
},
}
if externalParser, err := newExiftoolParser(); err == nil {
if externalParser, err := exif.NewExiftoolParser(); err == nil {
parsers = append(parsers, struct {
name string
parser exifParser
parser exif.ExifParser
}{
name: "external",
parser: externalParser,