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