mirror of
https://github.com/matrix-org/dendrite.git
synced 2025-12-16 19:33:09 -06:00
Add test cases for CreateDevice and GetDevicesByLocalpart
Signed-off-by: Maximilian Seifert <max.seifert@drglitch.net>
This commit is contained in:
parent
433526b010
commit
ab8e687ca0
|
|
@ -5,67 +5,27 @@ 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"
|
|
||||||
"os/exec"
|
|
||||||
"strings"
|
|
||||||
"testing"
|
"testing"
|
||||||
)
|
)
|
||||||
|
|
||||||
var dataSource string
|
const dataSourceName = "postgres://dendrite:itsasecret@postgres/dendrite_device?sslmode=disable"
|
||||||
var insideCi = false
|
|
||||||
var insideDocker = false
|
|
||||||
|
|
||||||
const dbName = "dendrite_device"
|
//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 = fmt.Sprintf("postgres://postgres@localhost/%s?sslmode=disable", dbName)
|
|
||||||
} else if insideDocker {
|
|
||||||
dataSource = fmt.Sprintf("postgres://dendrite:itsasecret@postgres/%s?sslmode=disable", dbName)
|
|
||||||
} else {
|
|
||||||
dataSource = fmt.Sprintf("postgres://dendrite:itsasecret@localhost:15432/%s?sslmode=disable", dbName)
|
|
||||||
}
|
|
||||||
|
|
||||||
if insideCi {
|
|
||||||
database := "dendrite_device"
|
|
||||||
cmd := exec.Command("psql", "postgres")
|
|
||||||
cmd.Stdin = strings.NewReader(
|
|
||||||
fmt.Sprintf("DROP DATABASE IF EXISTS %s; CREATE DATABASE %s;", database, database),
|
|
||||||
)
|
|
||||||
// Send stdout and stderr to our stderr so that we see error messages from
|
|
||||||
// the psql process
|
|
||||||
cmd.Stdout = os.Stderr
|
|
||||||
cmd.Stderr = os.Stderr
|
|
||||||
_ = cmd.Run()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
type deviceSpec struct {
|
type deviceSpec struct {
|
||||||
localPart string
|
localPart string
|
||||||
devID string
|
devId string
|
||||||
accessToken string
|
accessToken string
|
||||||
displayName string
|
displayName string
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestDatabase_GetDevicesByLocalpart(t *testing.T) {
|
func TestDatabase_GetDevicesByLocalpart(t *testing.T) {
|
||||||
db, err := NewDatabase(dataSource, "localhost")
|
db, err := NewDatabase(dataSourceName, "localhost")
|
||||||
assert.Nil(t, err)
|
assert.Nil(t, err)
|
||||||
|
|
||||||
devSpec := deviceSpec{
|
devSpec := deviceSpec{
|
||||||
localPart: "get-device-test-local-part",
|
localPart: "get-device-test-local-part",
|
||||||
devID: "get-device-test-device-id",
|
devId: "get-device-test-device-id",
|
||||||
accessToken: "get-device-test-access-token",
|
accessToken: "get-device-test-access-token",
|
||||||
displayName: "get-device-test-display-name",
|
displayName: "get-device-test-display-name",
|
||||||
}
|
}
|
||||||
|
|
@ -85,7 +45,7 @@ func TestDatabase_GetDevicesByLocalpart(t *testing.T) {
|
||||||
func TestDatabase_CreateDevice(t *testing.T) {
|
func TestDatabase_CreateDevice(t *testing.T) {
|
||||||
devSpec := deviceSpec{
|
devSpec := deviceSpec{
|
||||||
localPart: "create-test-local-part",
|
localPart: "create-test-local-part",
|
||||||
devID: "create-test-device-id",
|
devId: "create-test-device-id",
|
||||||
accessToken: "create-test-access-token",
|
accessToken: "create-test-access-token",
|
||||||
displayName: "create-test-display-name",
|
displayName: "create-test-display-name",
|
||||||
}
|
}
|
||||||
|
|
@ -99,21 +59,22 @@ 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(dataSource, "localhost")
|
db, err := NewDatabase(dataSourceName, "localhost")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Println(err)
|
fmt.Println(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
for i := 0; i < count; i++ {
|
for i := 0; i < count; i++ {
|
||||||
devID := fmt.Sprintf("%s%d", devSpecScheme.devID, i)
|
devId := fmt.Sprintf("%s%d", devSpecScheme.devId, i)
|
||||||
displayName := fmt.Sprintf("%s%d", devSpecScheme.displayName, i)
|
displayName := fmt.Sprintf("%s%d", devSpecScheme.displayName, i)
|
||||||
if device, err := db.CreateDevice(
|
if device, err := db.CreateDevice(
|
||||||
context.Background(),
|
context.Background(),
|
||||||
fmt.Sprintf("%s%d", devSpecScheme.localPart, i),
|
fmt.Sprintf("%s%d", devSpecScheme.localPart, i),
|
||||||
&devID,
|
&devId,
|
||||||
fmt.Sprintf("%s%d", devSpecScheme.accessToken, i),
|
fmt.Sprintf("%s%d", devSpecScheme.accessToken, i),
|
||||||
&displayName); err != nil {
|
&displayName); err != nil {
|
||||||
fmt.Println(err)
|
fmt.Println(err)
|
||||||
|
return nil, err
|
||||||
} else {
|
} else {
|
||||||
devices = append(devices, device)
|
devices = append(devices, device)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue