[Files Refactor] Import export fixup (#2763)

* Adjust json schema
* Remove mappings file from export
* Import file/folder support
* Update documentation
* Make gallery filenames unique
This commit is contained in:
WithoutPants
2022-08-30 12:17:15 +10:00
parent 1222b7b87b
commit 0b534d89c6
35 changed files with 3315 additions and 3146 deletions

View File

@@ -1,171 +1,162 @@
package gallery
// import (
// "errors"
import (
"errors"
// "github.com/stashapp/stash/pkg/models"
// "github.com/stashapp/stash/pkg/models/json"
// "github.com/stashapp/stash/pkg/models/jsonschema"
// "github.com/stashapp/stash/pkg/models/mocks"
// "github.com/stretchr/testify/assert"
"github.com/stashapp/stash/pkg/models"
"github.com/stashapp/stash/pkg/models/json"
"github.com/stashapp/stash/pkg/models/jsonschema"
"github.com/stashapp/stash/pkg/models/mocks"
"github.com/stretchr/testify/assert"
// "testing"
// "time"
// )
"testing"
"time"
)
// const (
// galleryID = 1
const (
galleryID = 1
// studioID = 4
// missingStudioID = 5
// errStudioID = 6
studioID = 4
missingStudioID = 5
errStudioID = 6
// // noTagsID = 11
// )
// noTagsID = 11
)
// var (
// path = "path"
// isZip = true
// url = "url"
// checksum = "checksum"
// title = "title"
// date = "2001-01-01"
// dateObj = models.NewDate(date)
// rating = 5
// organized = true
// details = "details"
// )
var (
url = "url"
title = "title"
date = "2001-01-01"
dateObj = models.NewDate(date)
rating = 5
organized = true
details = "details"
)
// const (
// studioName = "studioName"
// )
const (
studioName = "studioName"
)
// var (
// createTime = time.Date(2001, 01, 01, 0, 0, 0, 0, time.UTC)
// updateTime = time.Date(2002, 01, 01, 0, 0, 0, 0, time.UTC)
// )
var (
createTime = time.Date(2001, 01, 01, 0, 0, 0, 0, time.UTC)
updateTime = time.Date(2002, 01, 01, 0, 0, 0, 0, time.UTC)
)
// func createFullGallery(id int) models.Gallery {
// return models.Gallery{
// ID: id,
// Path: &path,
// Zip: isZip,
// Title: title,
// Checksum: checksum,
// Date: &dateObj,
// Details: details,
// Rating: &rating,
// Organized: organized,
// URL: url,
// CreatedAt: createTime,
// UpdatedAt: updateTime,
// }
// }
func createFullGallery(id int) models.Gallery {
return models.Gallery{
ID: id,
Title: title,
Date: &dateObj,
Details: details,
Rating: &rating,
Organized: organized,
URL: url,
CreatedAt: createTime,
UpdatedAt: updateTime,
}
}
// func createFullJSONGallery() *jsonschema.Gallery {
// return &jsonschema.Gallery{
// Title: title,
// Path: path,
// Zip: isZip,
// Checksum: checksum,
// Date: date,
// Details: details,
// Rating: rating,
// Organized: organized,
// URL: url,
// CreatedAt: json.JSONTime{
// Time: createTime,
// },
// UpdatedAt: json.JSONTime{
// Time: updateTime,
// },
// }
// }
func createFullJSONGallery() *jsonschema.Gallery {
return &jsonschema.Gallery{
Title: title,
Date: date,
Details: details,
Rating: rating,
Organized: organized,
URL: url,
CreatedAt: json.JSONTime{
Time: createTime,
},
UpdatedAt: json.JSONTime{
Time: updateTime,
},
}
}
// type basicTestScenario struct {
// input models.Gallery
// expected *jsonschema.Gallery
// err bool
// }
type basicTestScenario struct {
input models.Gallery
expected *jsonschema.Gallery
err bool
}
// var scenarios = []basicTestScenario{
// {
// createFullGallery(galleryID),
// createFullJSONGallery(),
// false,
// },
// }
var scenarios = []basicTestScenario{
{
createFullGallery(galleryID),
createFullJSONGallery(),
false,
},
}
// func TestToJSON(t *testing.T) {
// for i, s := range scenarios {
// gallery := s.input
// json, err := ToBasicJSON(&gallery)
func TestToJSON(t *testing.T) {
for i, s := range scenarios {
gallery := s.input
json, err := ToBasicJSON(&gallery)
// switch {
// case !s.err && err != nil:
// t.Errorf("[%d] unexpected error: %s", i, err.Error())
// case s.err && err == nil:
// t.Errorf("[%d] expected error not returned", i)
// default:
// assert.Equal(t, s.expected, json, "[%d]", i)
// }
// }
// }
switch {
case !s.err && err != nil:
t.Errorf("[%d] unexpected error: %s", i, err.Error())
case s.err && err == nil:
t.Errorf("[%d] expected error not returned", i)
default:
assert.Equal(t, s.expected, json, "[%d]", i)
}
}
}
// func createStudioGallery(studioID int) models.Gallery {
// return models.Gallery{
// StudioID: &studioID,
// }
// }
func createStudioGallery(studioID int) models.Gallery {
return models.Gallery{
StudioID: &studioID,
}
}
// type stringTestScenario struct {
// input models.Gallery
// expected string
// err bool
// }
type stringTestScenario struct {
input models.Gallery
expected string
err bool
}
// var getStudioScenarios = []stringTestScenario{
// {
// createStudioGallery(studioID),
// studioName,
// false,
// },
// {
// createStudioGallery(missingStudioID),
// "",
// false,
// },
// {
// createStudioGallery(errStudioID),
// "",
// true,
// },
// }
var getStudioScenarios = []stringTestScenario{
{
createStudioGallery(studioID),
studioName,
false,
},
{
createStudioGallery(missingStudioID),
"",
false,
},
{
createStudioGallery(errStudioID),
"",
true,
},
}
// func TestGetStudioName(t *testing.T) {
// mockStudioReader := &mocks.StudioReaderWriter{}
func TestGetStudioName(t *testing.T) {
mockStudioReader := &mocks.StudioReaderWriter{}
// studioErr := errors.New("error getting image")
studioErr := errors.New("error getting image")
// mockStudioReader.On("Find", testCtx, studioID).Return(&models.Studio{
// Name: models.NullString(studioName),
// }, nil).Once()
// mockStudioReader.On("Find", testCtx, missingStudioID).Return(nil, nil).Once()
// mockStudioReader.On("Find", testCtx, errStudioID).Return(nil, studioErr).Once()
mockStudioReader.On("Find", testCtx, studioID).Return(&models.Studio{
Name: models.NullString(studioName),
}, nil).Once()
mockStudioReader.On("Find", testCtx, missingStudioID).Return(nil, nil).Once()
mockStudioReader.On("Find", testCtx, errStudioID).Return(nil, studioErr).Once()
// for i, s := range getStudioScenarios {
// gallery := s.input
// json, err := GetStudioName(testCtx, mockStudioReader, &gallery)
for i, s := range getStudioScenarios {
gallery := s.input
json, err := GetStudioName(testCtx, mockStudioReader, &gallery)
// switch {
// case !s.err && err != nil:
// t.Errorf("[%d] unexpected error: %s", i, err.Error())
// case s.err && err == nil:
// t.Errorf("[%d] expected error not returned", i)
// default:
// assert.Equal(t, s.expected, json, "[%d]", i)
// }
// }
switch {
case !s.err && err != nil:
t.Errorf("[%d] unexpected error: %s", i, err.Error())
case s.err && err == nil:
t.Errorf("[%d] expected error not returned", i)
default:
assert.Equal(t, s.expected, json, "[%d]", i)
}
}
// mockStudioReader.AssertExpectations(t)
// }
mockStudioReader.AssertExpectations(t)
}