mirror of
https://git.vectorsigma.ru/public/photoview.git
synced 2026-08-03 21:09:05 +00:00
Fix exif circular imports in tests
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user