Make tests almost work again

This commit is contained in:
Lucas BEE 2016-12-08 16:07:24 +00:00
parent ab7503997f
commit 56617e3e32
4 changed files with 189 additions and 21 deletions

View File

@ -37,13 +37,13 @@ func TestAddExternalMedias(t *testing.T) {
}
// 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)
}
// Update the IDs
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)
}

View File

@ -1,6 +1,7 @@
package movies
import (
"database/sql"
"fmt"
"os"
"testing"
@ -11,7 +12,9 @@ import (
_ "github.com/mattes/migrate/driver/postgres"
"github.com/odwrtw/polochon/lib"
"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
@ -31,6 +34,15 @@ func init() {
func TestIntegrate(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)
polochonConfig := polochon.MovieConfig{
Detailers: []polochon.Detailer{
@ -41,11 +53,11 @@ func TestIntegrate(t *testing.T) {
Movie: polochon.Movie{
MovieConfig: polochonConfig,
ImdbID: "tt12345",
Genres: []string{},
},
}
log := logrus.NewEntry(logrus.New())
err := movie.GetDetails(db, log)
err := movie.GetDetails(env, false)
if err != nil {
t.Fatal(err)
}
@ -57,7 +69,7 @@ func TestIntegrate(t *testing.T) {
ImdbID: "tt12345",
},
}
err = movie.Get(db)
err = movie.Get(env)
if err != nil {
t.Fatal(err)
}
@ -72,8 +84,8 @@ func TestIntegrate(t *testing.T) {
}
// Get it again
err = movie.Get(db)
if err != ErrNotFound {
err = movie.Get(env)
if err != sql.ErrNoRows {
t.Fatalf("Unexpected error: %q", err)
}
})

View File

@ -5,15 +5,16 @@ import (
"os"
"testing"
"gitlab.quimbo.fr/odwrtw/canape-sql/sqly"
"gitlab.quimbo.fr/odwrtw/canape-sql/users"
"github.com/Sirupsen/logrus"
"github.com/jmoiron/sqlx"
_ "github.com/lib/pq"
_ "github.com/mattes/migrate/driver/postgres"
"github.com/odwrtw/polochon/lib"
"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
@ -89,8 +90,40 @@ func TestIntegrate(t *testing.T) {
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) {
sqly.RunWithLastestMigration(db, pgdsn, t, func(db *sqlx.DB, t *testing.T) {
detailer, _ := mock.NewDetailer(nil)
@ -113,6 +146,18 @@ func TestTrackedShow(t *testing.T) {
}
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)
if err != nil {
t.Fatal(err)

View File

@ -5,8 +5,11 @@ import (
"os"
"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/lib/pq"
_ "github.com/mattes/migrate/driver/postgres"
@ -32,7 +35,19 @@ func TestUser(t *testing.T) {
// Add a new user
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 {
t.Fatal(err)
}
@ -99,7 +114,19 @@ func TestTokenAddDelete(t *testing.T) {
sqly.RunWithLastestMigration(db, pgdsn, t, func(db *sqlx.DB, t *testing.T) {
// Add a new user
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 {
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) {
sqly.RunWithLastestMigration(db, pgdsn, t, func(db *sqlx.DB, t *testing.T) {
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)
if err != nil {
t.Fatal(err)
}
ok, err := u.CheckToken(db, token.Value)
if err != nil {
@ -183,10 +259,29 @@ func TestTokenCheck(t *testing.T) {
func TestAutoUpdateCols(t *testing.T) {
sqly.RunWithLastestMigration(db, pgdsn, t, func(db *sqlx.DB, t *testing.T) {
u := &User{Name: "plop", Hash: "plop"}
u.Add(db)
u := &User{Name: "plop"}
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.Update(db)
err = u.Update(db)
if err != nil {
t.Fatal(err)
}
if !u.Created.Before(u.Updated) {
t.Fatalf("colum updated not auto updated on table users")
@ -197,9 +292,25 @@ func TestAutoUpdateCols(t *testing.T) {
func TestConfig(t *testing.T) {
sqly.RunWithLastestMigration(db, pgdsn, t, func(db *sqlx.DB, t *testing.T) {
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 {
t.Fatal(err)
}