Make tests almost work again
This commit is contained in:
parent
ab7503997f
commit
56617e3e32
@ -37,13 +37,13 @@ func TestAddExternalMedias(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Add it
|
// Add it
|
||||||
if err := media.Add(db); err != nil {
|
if err := media.Upsert(db); err != nil {
|
||||||
t.Fatalf("failed to add external media: %q", err)
|
t.Fatalf("failed to add external media: %q", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Update the IDs
|
// Update the IDs
|
||||||
media.IDs = []string{"1", "2", "3", "4"}
|
media.IDs = []string{"1", "2", "3", "4"}
|
||||||
if err := media.Update(db); err != nil {
|
if err := media.Upsert(db); err != nil {
|
||||||
t.Fatalf("failed to update the external media: %q", err)
|
t.Fatalf("failed to update the external media: %q", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package movies
|
package movies
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"database/sql"
|
||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
"os"
|
||||||
"testing"
|
"testing"
|
||||||
@ -11,7 +12,9 @@ import (
|
|||||||
_ "github.com/mattes/migrate/driver/postgres"
|
_ "github.com/mattes/migrate/driver/postgres"
|
||||||
"github.com/odwrtw/polochon/lib"
|
"github.com/odwrtw/polochon/lib"
|
||||||
"github.com/odwrtw/polochon/modules/mock"
|
"github.com/odwrtw/polochon/modules/mock"
|
||||||
"gitlab.quimbo.fr/odwrtw/canape-sql/sqly"
|
"gitlab.quimbo.fr/odwrtw/canape-sql/src/internal/config"
|
||||||
|
"gitlab.quimbo.fr/odwrtw/canape-sql/src/internal/sqly"
|
||||||
|
"gitlab.quimbo.fr/odwrtw/canape-sql/src/internal/web"
|
||||||
)
|
)
|
||||||
|
|
||||||
var db *sqlx.DB
|
var db *sqlx.DB
|
||||||
@ -31,6 +34,15 @@ func init() {
|
|||||||
|
|
||||||
func TestIntegrate(t *testing.T) {
|
func TestIntegrate(t *testing.T) {
|
||||||
sqly.RunWithLastestMigration(db, pgdsn, t, func(db *sqlx.DB, t *testing.T) {
|
sqly.RunWithLastestMigration(db, pgdsn, t, func(db *sqlx.DB, t *testing.T) {
|
||||||
|
log := logrus.NewEntry(logrus.New())
|
||||||
|
env := web.NewEnv(web.EnvParams{
|
||||||
|
Database: db,
|
||||||
|
// Auth: authorizer,
|
||||||
|
Log: log,
|
||||||
|
Config: &config.Config{
|
||||||
|
PublicDir: "/tmp",
|
||||||
|
},
|
||||||
|
})
|
||||||
detailer, _ := mock.NewDetailer(nil)
|
detailer, _ := mock.NewDetailer(nil)
|
||||||
polochonConfig := polochon.MovieConfig{
|
polochonConfig := polochon.MovieConfig{
|
||||||
Detailers: []polochon.Detailer{
|
Detailers: []polochon.Detailer{
|
||||||
@ -41,11 +53,11 @@ func TestIntegrate(t *testing.T) {
|
|||||||
Movie: polochon.Movie{
|
Movie: polochon.Movie{
|
||||||
MovieConfig: polochonConfig,
|
MovieConfig: polochonConfig,
|
||||||
ImdbID: "tt12345",
|
ImdbID: "tt12345",
|
||||||
|
Genres: []string{},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
log := logrus.NewEntry(logrus.New())
|
err := movie.GetDetails(env, false)
|
||||||
err := movie.GetDetails(db, log)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
@ -57,7 +69,7 @@ func TestIntegrate(t *testing.T) {
|
|||||||
ImdbID: "tt12345",
|
ImdbID: "tt12345",
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
err = movie.Get(db)
|
err = movie.Get(env)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
@ -72,8 +84,8 @@ func TestIntegrate(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Get it again
|
// Get it again
|
||||||
err = movie.Get(db)
|
err = movie.Get(env)
|
||||||
if err != ErrNotFound {
|
if err != sql.ErrNoRows {
|
||||||
t.Fatalf("Unexpected error: %q", err)
|
t.Fatalf("Unexpected error: %q", err)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
@ -5,15 +5,16 @@ import (
|
|||||||
"os"
|
"os"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"gitlab.quimbo.fr/odwrtw/canape-sql/sqly"
|
|
||||||
"gitlab.quimbo.fr/odwrtw/canape-sql/users"
|
|
||||||
|
|
||||||
"github.com/Sirupsen/logrus"
|
"github.com/Sirupsen/logrus"
|
||||||
"github.com/jmoiron/sqlx"
|
"github.com/jmoiron/sqlx"
|
||||||
_ "github.com/lib/pq"
|
_ "github.com/lib/pq"
|
||||||
_ "github.com/mattes/migrate/driver/postgres"
|
_ "github.com/mattes/migrate/driver/postgres"
|
||||||
"github.com/odwrtw/polochon/lib"
|
"github.com/odwrtw/polochon/lib"
|
||||||
"github.com/odwrtw/polochon/modules/mock"
|
"github.com/odwrtw/polochon/modules/mock"
|
||||||
|
"gitlab.quimbo.fr/odwrtw/canape-sql/src/internal/auth"
|
||||||
|
"gitlab.quimbo.fr/odwrtw/canape-sql/src/internal/sqly"
|
||||||
|
"gitlab.quimbo.fr/odwrtw/canape-sql/src/internal/users"
|
||||||
|
"gitlab.quimbo.fr/odwrtw/canape-sql/src/internal/web"
|
||||||
)
|
)
|
||||||
|
|
||||||
var db *sqlx.DB
|
var db *sqlx.DB
|
||||||
@ -89,8 +90,40 @@ func TestIntegrate(t *testing.T) {
|
|||||||
t.Fatalf("Unexpected error: %q", err)
|
t.Fatalf("Unexpected error: %q", err)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// UserBackend represents the data backend to get the user
|
||||||
|
type UserBackend struct {
|
||||||
|
Database *sqlx.DB
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get gets the username from the UserBackend
|
||||||
|
func (b *UserBackend) Get(username string) (auth.User, error) {
|
||||||
|
return users.Get(b.Database, username)
|
||||||
|
}
|
||||||
|
|
||||||
|
func getEnv(db *sqlx.DB) *web.Env {
|
||||||
|
uBackend := &UserBackend{Database: db}
|
||||||
|
|
||||||
|
authParams := auth.Params{
|
||||||
|
Backend: uBackend,
|
||||||
|
Pepper: "pepper",
|
||||||
|
Cost: 10,
|
||||||
|
Secret: "secret",
|
||||||
|
}
|
||||||
|
authorizer := auth.New(authParams)
|
||||||
|
|
||||||
|
log := logrus.NewEntry(logrus.New())
|
||||||
|
env := web.NewEnv(web.EnvParams{
|
||||||
|
Database: db,
|
||||||
|
Auth: authorizer,
|
||||||
|
Log: log,
|
||||||
|
// Config: cf,
|
||||||
|
})
|
||||||
|
|
||||||
|
return env
|
||||||
|
}
|
||||||
|
|
||||||
func TestTrackedShow(t *testing.T) {
|
func TestTrackedShow(t *testing.T) {
|
||||||
sqly.RunWithLastestMigration(db, pgdsn, t, func(db *sqlx.DB, t *testing.T) {
|
sqly.RunWithLastestMigration(db, pgdsn, t, func(db *sqlx.DB, t *testing.T) {
|
||||||
detailer, _ := mock.NewDetailer(nil)
|
detailer, _ := mock.NewDetailer(nil)
|
||||||
@ -113,6 +146,18 @@ func TestTrackedShow(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
u := &users.User{Name: "plop"}
|
u := &users.User{Name: "plop"}
|
||||||
|
env := getEnv(db)
|
||||||
|
|
||||||
|
u.Hash, err = env.Auth.GenHash("pass")
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
err = u.NewConfig()
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
err = u.Add(db)
|
err = u.Add(db)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
|
@ -5,8 +5,11 @@ import (
|
|||||||
"os"
|
"os"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"gitlab.quimbo.fr/odwrtw/canape-sql/sqly"
|
"gitlab.quimbo.fr/odwrtw/canape-sql/src/internal/auth"
|
||||||
|
"gitlab.quimbo.fr/odwrtw/canape-sql/src/internal/sqly"
|
||||||
|
"gitlab.quimbo.fr/odwrtw/canape-sql/src/internal/web"
|
||||||
|
|
||||||
|
"github.com/Sirupsen/logrus"
|
||||||
"github.com/jmoiron/sqlx"
|
"github.com/jmoiron/sqlx"
|
||||||
"github.com/lib/pq"
|
"github.com/lib/pq"
|
||||||
_ "github.com/mattes/migrate/driver/postgres"
|
_ "github.com/mattes/migrate/driver/postgres"
|
||||||
@ -32,7 +35,19 @@ func TestUser(t *testing.T) {
|
|||||||
|
|
||||||
// Add a new user
|
// Add a new user
|
||||||
u := &User{Name: "plop", Hash: "plop"}
|
u := &User{Name: "plop", Hash: "plop"}
|
||||||
err := u.Add(db)
|
var err error
|
||||||
|
env := getEnv(db)
|
||||||
|
|
||||||
|
u.Hash, err = env.Auth.GenHash("test")
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
err = u.NewConfig()
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
err = u.Add(db)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
@ -99,7 +114,19 @@ func TestTokenAddDelete(t *testing.T) {
|
|||||||
sqly.RunWithLastestMigration(db, pgdsn, t, func(db *sqlx.DB, t *testing.T) {
|
sqly.RunWithLastestMigration(db, pgdsn, t, func(db *sqlx.DB, t *testing.T) {
|
||||||
// Add a new user
|
// Add a new user
|
||||||
u := &User{Name: "plop", Hash: "plop"}
|
u := &User{Name: "plop", Hash: "plop"}
|
||||||
err := u.Add(db)
|
var err error
|
||||||
|
env := getEnv(db)
|
||||||
|
|
||||||
|
u.Hash, err = env.Auth.GenHash("test")
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
err = u.NewConfig()
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
err = u.Add(db)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
@ -155,11 +182,60 @@ func TestTokenAddDelete(t *testing.T) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// UserBackend represents the data backend to get the user
|
||||||
|
type UserBackend struct {
|
||||||
|
Database *sqlx.DB
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get gets the username from the UserBackend
|
||||||
|
func (b *UserBackend) Get(username string) (auth.User, error) {
|
||||||
|
return Get(b.Database, username)
|
||||||
|
}
|
||||||
|
|
||||||
|
func getEnv(db *sqlx.DB) *web.Env {
|
||||||
|
uBackend := &UserBackend{Database: db}
|
||||||
|
|
||||||
|
authParams := auth.Params{
|
||||||
|
Backend: uBackend,
|
||||||
|
Pepper: "pepper",
|
||||||
|
Cost: 10,
|
||||||
|
Secret: "secret",
|
||||||
|
}
|
||||||
|
authorizer := auth.New(authParams)
|
||||||
|
|
||||||
|
log := logrus.NewEntry(logrus.New())
|
||||||
|
env := web.NewEnv(web.EnvParams{
|
||||||
|
Database: db,
|
||||||
|
Auth: authorizer,
|
||||||
|
Log: log,
|
||||||
|
// Config: cf,
|
||||||
|
})
|
||||||
|
|
||||||
|
return env
|
||||||
|
}
|
||||||
|
|
||||||
func TestTokenCheck(t *testing.T) {
|
func TestTokenCheck(t *testing.T) {
|
||||||
sqly.RunWithLastestMigration(db, pgdsn, t, func(db *sqlx.DB, t *testing.T) {
|
sqly.RunWithLastestMigration(db, pgdsn, t, func(db *sqlx.DB, t *testing.T) {
|
||||||
u := &User{Name: "plop", Hash: "plop"}
|
u := &User{Name: "plop", Hash: "plop"}
|
||||||
u.Add(db)
|
var err error
|
||||||
|
env := getEnv(db)
|
||||||
|
|
||||||
|
u.Hash, err = env.Auth.GenHash("test")
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
err = u.NewConfig()
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
if err = u.Add(db); err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
token, err := u.NewToken(db)
|
token, err := u.NewToken(db)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
ok, err := u.CheckToken(db, token.Value)
|
ok, err := u.CheckToken(db, token.Value)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -183,10 +259,29 @@ func TestTokenCheck(t *testing.T) {
|
|||||||
|
|
||||||
func TestAutoUpdateCols(t *testing.T) {
|
func TestAutoUpdateCols(t *testing.T) {
|
||||||
sqly.RunWithLastestMigration(db, pgdsn, t, func(db *sqlx.DB, t *testing.T) {
|
sqly.RunWithLastestMigration(db, pgdsn, t, func(db *sqlx.DB, t *testing.T) {
|
||||||
u := &User{Name: "plop", Hash: "plop"}
|
u := &User{Name: "plop"}
|
||||||
u.Add(db)
|
var err error
|
||||||
|
env := getEnv(db)
|
||||||
|
|
||||||
|
u.Hash, err = env.Auth.GenHash("pass")
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
err = u.NewConfig()
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
err = u.Add(db)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
u.Name = "toto"
|
u.Name = "toto"
|
||||||
u.Update(db)
|
err = u.Update(db)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
if !u.Created.Before(u.Updated) {
|
if !u.Created.Before(u.Updated) {
|
||||||
t.Fatalf("colum updated not auto updated on table users")
|
t.Fatalf("colum updated not auto updated on table users")
|
||||||
@ -197,9 +292,25 @@ func TestAutoUpdateCols(t *testing.T) {
|
|||||||
func TestConfig(t *testing.T) {
|
func TestConfig(t *testing.T) {
|
||||||
sqly.RunWithLastestMigration(db, pgdsn, t, func(db *sqlx.DB, t *testing.T) {
|
sqly.RunWithLastestMigration(db, pgdsn, t, func(db *sqlx.DB, t *testing.T) {
|
||||||
u := &User{Name: "plop", Hash: "plop"}
|
u := &User{Name: "plop", Hash: "plop"}
|
||||||
u.Add(db)
|
env := getEnv(db)
|
||||||
|
|
||||||
u, err := Get(db, "plop")
|
var err error
|
||||||
|
u.Hash, err = env.Auth.GenHash("pass")
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
err = u.NewConfig()
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
err = u.Add(db)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
u, err = Get(db, "plop")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user