1
0

Task Attachments (#104)

This commit is contained in:
konrad
2019-10-16 20:52:29 +00:00
committed by Gitea
parent e2f481a6e5
commit 2169464983
349 changed files with 22540 additions and 5267 deletions

View File

@ -19,23 +19,16 @@ package models
import (
"code.vikunja.io/api/pkg/config"
_ "code.vikunja.io/api/pkg/config" // To trigger its init() which initializes the config
"code.vikunja.io/api/pkg/db"
"code.vikunja.io/api/pkg/log"
"code.vikunja.io/api/pkg/mail"
"fmt"
"github.com/go-xorm/core"
"github.com/go-xorm/xorm"
"gopkg.in/testfixtures.v2"
"os"
"path/filepath"
"testing"
)
// MainTest creates the test engine
func MainTest(m *testing.M, pathToRoot string) {
SetupTests(pathToRoot)
os.Exit(m.Run())
}
// SetupTests takes care of seting up the db, fixtures etc.
// This is an extra function to be able to call the fixtures setup from the integration tests.
func SetupTests(pathToRoot string) {
@ -49,7 +42,7 @@ func SetupTests(pathToRoot string) {
mail.StartMailDaemon()
// Create test database
if err = LoadFixtures(); err != nil {
if err = db.LoadFixtures(); err != nil {
log.Fatalf("Error preparing test database: %v", err.Error())
}
}
@ -59,13 +52,12 @@ func createTestEngine(fixturesDir string) error {
var fixturesHelper testfixtures.Helper = &testfixtures.SQLite{}
// If set, use the config we provided instead of normal
if os.Getenv("VIKUNJA_TESTS_USE_CONFIG") == "1" {
config.InitConfig()
err = SetEngine()
x, err = db.CreateTestEngine()
if err != nil {
return err
return fmt.Errorf("error getting test engine: %v", err)
}
err = x.Sync2(GetTables()...)
err = initSchema(x)
if err != nil {
return err
}
@ -74,23 +66,21 @@ func createTestEngine(fixturesDir string) error {
fixturesHelper = &testfixtures.MySQL{}
}
} else {
x, err = xorm.NewEngine("sqlite3", "file::memory:?cache=shared")
x, err = db.CreateTestEngine()
if err != nil {
return err
return fmt.Errorf("error getting test engine: %v", err)
}
x.SetMapper(core.GonicMapper{})
// Sync dat shit
if err := x.Sync2(GetTables()...); err != nil {
err = initSchema(x)
if err != nil {
return fmt.Errorf("sync database struct error: %v", err)
}
// Show SQL-Queries if necessary
if os.Getenv("UNIT_TESTS_VERBOSE") == "1" {
x.ShowSQL(true)
}
}
return InitFixtures(fixturesHelper, fixturesDir)
return db.InitFixtures(fixturesHelper, fixturesDir)
}
func initSchema(tx *xorm.Engine) error {
return tx.Sync2(GetTables()...)
}