Select db connect string according to execution environment

Signed-off-by: Maximilian Seifert <max.seifert@drglitch.net>
This commit is contained in:
Maximilian Seifert 2019-03-27 19:58:39 +01:00
parent c5f7000361
commit 4017ff2871
2 changed files with 56 additions and 8 deletions

View file

@ -5,12 +5,36 @@ import (
"fmt" "fmt"
"github.com/matrix-org/dendrite/clientapi/auth/authtypes" "github.com/matrix-org/dendrite/clientapi/auth/authtypes"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
"os"
"strings"
"testing" "testing"
) )
const dataSourceName = "postgres://dendrite:itsasecret@postgres/dendrite_device?sslmode=disable" var dataSource string
var insideCi = false
var insideDocker = false
//const dataSourceLocal = "postgres://dendrite:itsasecret@localhost:15432/dendrite_device?sslmode=disable" func init() {
for _, val := range os.Environ() {
tokens := strings.Split(val, "=")
if tokens[0] == "CI" && tokens[1] == "true" {
insideCi = true
}
}
if !insideCi {
if _, err := os.Open("/.dockerenv"); err == nil {
insideDocker = true
}
}
if insideCi {
dataSource = "postgres://postgres@postgres/dendrite_device?sslmode=disable"
} else if insideDocker {
dataSource = "postgres://dendrite:itsasecret@postgres/dendrite_device?sslmode=disable"
} else {
dataSource = "postgres://dendrite:itsasecret@localhost:15432/dendrite_device?sslmode=disable"
}
}
type deviceSpec struct { type deviceSpec struct {
localPart string localPart string
@ -20,7 +44,7 @@ type deviceSpec struct {
} }
func TestDatabase_GetDevicesByLocalpart(t *testing.T) { func TestDatabase_GetDevicesByLocalpart(t *testing.T) {
db, err := NewDatabase(dataSourceName, "localhost") db, err := NewDatabase(dataSource, "localhost")
assert.Nil(t, err) assert.Nil(t, err)
devSpec := deviceSpec{ devSpec := deviceSpec{
@ -59,7 +83,7 @@ func TestDatabase_CreateDevice(t *testing.T) {
// create a number of device entries in the database, using ``devSpecScheme`` as the creation pattern. // create a number of device entries in the database, using ``devSpecScheme`` as the creation pattern.
func createTestDevice(devSpecScheme *deviceSpec, count int) (devices []*authtypes.Device, err error) { func createTestDevice(devSpecScheme *deviceSpec, count int) (devices []*authtypes.Device, err error) {
db, err := NewDatabase(dataSourceName, "localhost") db, err := NewDatabase(dataSource, "localhost")
if err != nil { if err != nil {
fmt.Println(err) fmt.Println(err)
} }

View file

@ -5,18 +5,42 @@ import (
"github.com/matrix-org/dendrite/roomserver/api" "github.com/matrix-org/dendrite/roomserver/api"
"github.com/matrix-org/gomatrixserverlib" "github.com/matrix-org/gomatrixserverlib"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
"os"
"strings"
"testing" "testing"
"time" "time"
) )
const dataSourceName = "postgres://dendrite:itsasecret@postgres/dendrite_syncapi?sslmode=disable" var dataSource string
var insideCi = false
var insideDocker = false
//const dataSourceName = "postgres://dendrite:itsasecret@localhost:15432/dendrite_syncapi?sslmode=disable" func init() {
for _, val := range os.Environ() {
tokens := strings.Split(val, "=")
if tokens[0] == "CI" && tokens[1] == "true" {
insideCi = true
}
}
if !insideCi {
if _, err := os.Open("/.dockerenv"); err == nil {
insideDocker = true
}
}
if insideCi {
dataSource = "postgres://postgres@postgres/dendrite_syncapi?sslmode=disable"
} else if insideDocker {
dataSource = "postgres://dendrite:itsasecret@postgres/dendrite_syncapi?sslmode=disable"
} else {
dataSource = "postgres://dendrite:itsasecret@localhost:15432/dendrite_syncapi?sslmode=disable"
}
}
const testEventId = "test-event-id" const testEventId = "test-event-id"
func Test_sanityCheckOutputRoomEvents(t *testing.T) { func Test_sanityCheckOutputRoomEvents(t *testing.T) {
db, err := NewSyncServerDatabase(dataSourceName) db, err := NewSyncServerDatabase(dataSource)
assert.Nil(t, err) assert.Nil(t, err)
err = db.events.prepare(db.db) err = db.events.prepare(db.db)
@ -29,7 +53,7 @@ func Test_sanityCheckOutputRoomEvents(t *testing.T) {
} }
func TestSyncServerDatabase_selectEventsWithEventIDs(t *testing.T) { func TestSyncServerDatabase_selectEventsWithEventIDs(t *testing.T) {
db, err := NewSyncServerDatabase(dataSourceName) db, err := NewSyncServerDatabase(dataSource)
assert.Nil(t, err) assert.Nil(t, err)
insertTestEvent(t, db) insertTestEvent(t, db)
ctx := context.Background() ctx := context.Background()