diff --git a/server/datastore/database/database.go b/server/datastore/database/database.go index ce9de04b2..164639320 100644 --- a/server/datastore/database/database.go +++ b/server/datastore/database/database.go @@ -2,6 +2,7 @@ package database import ( "database/sql" + "os" "github.com/drone/drone/server/datastore" "github.com/drone/drone/server/datastore/database/migrate" @@ -41,7 +42,7 @@ func Connect(driver, datasource string) (*sql.DB, error) { } // MustConnect is a helper function that creates a -// new database commention and auto-generates the +// new database connection and auto-generates the // database schema. An error causes a panic. func MustConnect(driver, datasource string) *sql.DB { db, err := Connect(driver, datasource) @@ -51,6 +52,26 @@ func MustConnect(driver, datasource string) *sql.DB { return db } +// mustConnectTest is a helper function that creates a +// new database connection using environment variables. +// If not environment varaibles are found, the default +// in-memory SQLite database is used. +func mustConnectTest() *sql.DB { + var ( + driver = os.Getenv("TEST_DRIVER") + datasource = os.Getenv("TEST_DATASOURCE") + ) + if len(driver) == 0 { + driver = driverSqlite + datasource = ":memory:" + } + db, err := Connect(driver, datasource) + if err != nil { + panic(err) + } + return db +} + // New returns a new DataStore func New(db *sql.DB) datastore.Datastore { return struct { diff --git a/server/datastore/database/repo_test.go b/server/datastore/database/repo_test.go index c4252b2fc..af9f4ba63 100644 --- a/server/datastore/database/repo_test.go +++ b/server/datastore/database/repo_test.go @@ -8,7 +8,7 @@ import ( ) func TestRepostore(t *testing.T) { - db := MustConnect("sqlite3", ":memory:") + db := mustConnectTest() rs := NewRepostore(db) ps := NewPermstore(db) defer db.Close() diff --git a/server/datastore/database/user_test.go b/server/datastore/database/user_test.go index e0518b75e..11205def8 100644 --- a/server/datastore/database/user_test.go +++ b/server/datastore/database/user_test.go @@ -8,7 +8,7 @@ import ( ) func TestUserstore(t *testing.T) { - db := MustConnect("sqlite3", ":memory:") + db := mustConnectTest() us := NewUserstore(db) defer db.Close()