mirror of
https://github.com/woodpecker-ci/woodpecker.git
synced 2024-12-23 17:00:30 +00:00
ability to drive database test connections from env variables
This commit is contained in:
parent
d36f82784c
commit
ae95232419
3 changed files with 24 additions and 3 deletions
|
@ -2,6 +2,7 @@ package database
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"database/sql"
|
"database/sql"
|
||||||
|
"os"
|
||||||
|
|
||||||
"github.com/drone/drone/server/datastore"
|
"github.com/drone/drone/server/datastore"
|
||||||
"github.com/drone/drone/server/datastore/database/migrate"
|
"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
|
// 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.
|
// database schema. An error causes a panic.
|
||||||
func MustConnect(driver, datasource string) *sql.DB {
|
func MustConnect(driver, datasource string) *sql.DB {
|
||||||
db, err := Connect(driver, datasource)
|
db, err := Connect(driver, datasource)
|
||||||
|
@ -51,6 +52,26 @@ func MustConnect(driver, datasource string) *sql.DB {
|
||||||
return 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
|
// New returns a new DataStore
|
||||||
func New(db *sql.DB) datastore.Datastore {
|
func New(db *sql.DB) datastore.Datastore {
|
||||||
return struct {
|
return struct {
|
||||||
|
|
|
@ -8,7 +8,7 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestRepostore(t *testing.T) {
|
func TestRepostore(t *testing.T) {
|
||||||
db := MustConnect("sqlite3", ":memory:")
|
db := mustConnectTest()
|
||||||
rs := NewRepostore(db)
|
rs := NewRepostore(db)
|
||||||
ps := NewPermstore(db)
|
ps := NewPermstore(db)
|
||||||
defer db.Close()
|
defer db.Close()
|
||||||
|
|
|
@ -8,7 +8,7 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestUserstore(t *testing.T) {
|
func TestUserstore(t *testing.T) {
|
||||||
db := MustConnect("sqlite3", ":memory:")
|
db := mustConnectTest()
|
||||||
us := NewUserstore(db)
|
us := NewUserstore(db)
|
||||||
defer db.Close()
|
defer db.Close()
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue