mirror of
https://git.sr.ht/~phw/scotty
synced 2025-04-30 13:47:05 +02:00
Implemented progressbar for export/import
This commit is contained in:
parent
ab04eb1123
commit
6e330daf06
24 changed files with 590 additions and 239 deletions
|
@ -23,12 +23,19 @@ THE SOFTWARE.
|
|||
package backends_test
|
||||
|
||||
import (
|
||||
"reflect"
|
||||
"testing"
|
||||
|
||||
"github.com/spf13/viper"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"go.uploadedlobster.com/scotty/backends"
|
||||
"go.uploadedlobster.com/scotty/backends/dump"
|
||||
"go.uploadedlobster.com/scotty/backends/funkwhale"
|
||||
"go.uploadedlobster.com/scotty/backends/jspf"
|
||||
"go.uploadedlobster.com/scotty/backends/listenbrainz"
|
||||
"go.uploadedlobster.com/scotty/backends/maloja"
|
||||
"go.uploadedlobster.com/scotty/backends/scrobblerlog"
|
||||
"go.uploadedlobster.com/scotty/backends/subsonic"
|
||||
"go.uploadedlobster.com/scotty/models"
|
||||
)
|
||||
|
||||
|
@ -37,7 +44,7 @@ func TestResolveBackend(t *testing.T) {
|
|||
config.Set("backend", "dump")
|
||||
backend, err := backends.ResolveBackend[models.ListensImport](config)
|
||||
assert.NoError(t, err)
|
||||
assert.IsType(t, dump.DumpBackend{}, backend)
|
||||
assert.IsType(t, &dump.DumpBackend{}, backend)
|
||||
}
|
||||
|
||||
func TestResolveBackendUnknown(t *testing.T) {
|
||||
|
@ -69,3 +76,39 @@ func TestGetBackends(t *testing.T) {
|
|||
// If we got here the "dump" backend was not included
|
||||
t.Errorf("GetBackends() did not return expected bacend \"dump\"")
|
||||
}
|
||||
|
||||
func TestImplementsInterfaces(t *testing.T) {
|
||||
expectInterface[models.ListensImport](t, &dump.DumpBackend{})
|
||||
expectInterface[models.LovesImport](t, &dump.DumpBackend{})
|
||||
|
||||
expectInterface[models.ListensExport](t, &funkwhale.FunkwhaleApiBackend{})
|
||||
// expectInterface[models.ListensImport](t, &funkwhale.FunkwhaleApiBackend{})
|
||||
expectInterface[models.LovesExport](t, &funkwhale.FunkwhaleApiBackend{})
|
||||
// expectInterface[models.LovesImport](t, &funkwhale.FunkwhaleApiBackend{})
|
||||
|
||||
// expectInterface[models.ListensExport](t, &jspf.JspfBackend{})
|
||||
// expectInterface[models.ListensImport](t, &jspf.JspfBackend{})
|
||||
// expectInterface[models.LovesExport](t, &jspf.JspfBackend{})
|
||||
expectInterface[models.LovesImport](t, &jspf.JspfBackend{})
|
||||
|
||||
expectInterface[models.ListensExport](t, &listenbrainz.ListenBrainzApiBackend{})
|
||||
// expectInterface[models.ListensImport](t, &listenbrainz.ListenBrainzApiBackend{})
|
||||
expectInterface[models.LovesExport](t, &listenbrainz.ListenBrainzApiBackend{})
|
||||
expectInterface[models.LovesImport](t, &listenbrainz.ListenBrainzApiBackend{})
|
||||
|
||||
expectInterface[models.ListensExport](t, &maloja.MalojaApiBackend{})
|
||||
expectInterface[models.ListensImport](t, &maloja.MalojaApiBackend{})
|
||||
|
||||
expectInterface[models.ListensExport](t, &scrobblerlog.ScrobblerLogBackend{})
|
||||
expectInterface[models.ListensImport](t, &scrobblerlog.ScrobblerLogBackend{})
|
||||
|
||||
expectInterface[models.LovesExport](t, &subsonic.SubsonicApiBackend{})
|
||||
// expectInterface[models.LovesImport](t, &subsonic.SubsonicApiBackend{})
|
||||
}
|
||||
|
||||
func expectInterface[T interface{}](t *testing.T, backend models.Backend) {
|
||||
ok, name := backends.ImplementsInterface[T](&backend)
|
||||
if !ok {
|
||||
t.Errorf("%v expected to implement %v", reflect.TypeOf(backend).Name(), name)
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue