Remove botched tests

Signed-off-by: Maximilian Seifert <max.seifert@drglitch.net>
This commit is contained in:
Maximilian Seifert 2020-01-05 18:31:58 +01:00
parent a657ca4978
commit 7b025e4fde
3 changed files with 0 additions and 298 deletions

View file

@ -1,134 +0,0 @@
package devices
import (
"context"
"database/sql"
"fmt"
"os"
"os/exec"
"strings"
"testing"
"github.com/matrix-org/dendrite/clientapi/auth/authtypes"
"github.com/stretchr/testify/assert"
)
var dataSource string
var insideCi = false
var insideDocker = false
const dbName = "dendrite_device"
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 {
localPart string
devID string
accessToken string
displayName string
}
func TestDatabase_GetDevicesByLocalpart(t *testing.T) {
dropTable(dataSource)
db, err := NewDatabase(dataSource, "localhost")
assert.Nil(t, err)
devSpec := deviceSpec{
localPart: "get-device-test-local-part",
devID: "get-device-test-device-id",
accessToken: "get-device-test-access-token",
displayName: "get-device-test-display-name",
}
dev, err := createTestDevice(&devSpec, 5)
assert.Nil(t, err)
for _, d := range dev {
assert.Contains(t, d.ID, "get-device-test-device-id")
assert.Contains(t, d.AccessToken, "get-device-test-access-token")
}
ctx := context.Background()
devices, err := db.GetDevicesByLocalpart(ctx, "get-device-test-local-part0")
assert.Nil(t, err)
assert.Contains(t, devices[0].UserID, "get-device-test-local-part0")
}
func TestDatabase_CreateDevice(t *testing.T) {
devSpec := deviceSpec{
localPart: "create-test-local-part",
devID: "create-test-device-id",
accessToken: "create-test-access-token",
displayName: "create-test-display-name",
}
dev, err := createTestDevice(&devSpec, 5)
assert.Nil(t, err)
for _, d := range dev {
assert.Contains(t, d.AccessToken, "create-test-access-token")
assert.Contains(t, d.ID, "create-test-device-id")
}
}
// 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) {
db, err := NewDatabase(dataSource, "localhost")
if err != nil {
fmt.Println(err)
return nil, err
}
for i := 0; i < count; i++ {
devID := fmt.Sprintf("%s%d", devSpecScheme.devID, i)
displayName := fmt.Sprintf("%s%d", devSpecScheme.displayName, i)
if device, err := db.CreateDevice(
context.Background(),
fmt.Sprintf("%s%d", devSpecScheme.localPart, i),
&devID,
fmt.Sprintf("%s%d", devSpecScheme.accessToken, i),
&displayName); err != nil {
fmt.Println(err)
} else {
devices = append(devices, device)
}
}
return devices, nil
}
func dropTable(dataSource string) {
if db, err := sql.Open("postgres", dataSource); err == nil && db != nil {
_, _ = db.Exec("DROP TABLE device_devices;")
} else {
panic("Error! Unable to refresh the database!")
}
}

View file

@ -158,8 +158,6 @@ services:
POSTGRES_USER: dendrite POSTGRES_USER: dendrite
networks: networks:
- internal - internal
ports:
- "15432:5432"
zookeeper: zookeeper:
container_name: dendrite_zk container_name: dendrite_zk

View file

@ -1,162 +0,0 @@
package storage
import (
"context"
"database/sql"
"fmt"
"os"
"os/exec"
"strings"
"testing"
"time"
"github.com/matrix-org/dendrite/roomserver/api"
"github.com/matrix-org/gomatrixserverlib"
"github.com/stretchr/testify/assert"
)
var dataSource string
var insideCi = false
var insideDocker = false
const dbName = "dendrite_syncapi"
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_syncapi"
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()
}
}
const testEventID = "$test-event-id:test-domain.example.com"
func Test_sanityCheckOutputRoomEvents(t *testing.T) {
dropTable(dataSource)
db, err := NewSyncServerDatasource(dataSource)
assert.Nil(t, err)
err = db.events.prepare(db.db)
assert.Nil(t, err)
truncateTable(t, db)
insertTestEvent(t, db)
selectTestEvent(t, db)
truncateTable(t, db)
}
func TestSyncServerDatasource_selectEventsWithEventIDs(t *testing.T) {
db, err := NewSyncServerDatasource(dataSource)
assert.Nil(t, err)
truncateTable(t, db)
insertTestEvent(t, db)
ctx := context.Background()
txn, err := db.db.Begin()
assert.Nil(t, err)
var eventIDs = []string{testEventID}
events, err := db.fetchMissingStateEvents(ctx, txn, eventIDs)
assert.Nil(t, err)
assert.NotNil(t, events)
assert.Condition(t, func() bool {
return len(events) > 0
})
err = txn.Commit()
assert.Nil(t, err)
}
func insertTestEvent(t *testing.T, db *SyncServerDatasource) {
txn, err := db.db.Begin()
assert.Nil(t, err)
keyBytes := []byte("1122334455667788112233445566778811223344556677881122334455667788")
eventBuilder := gomatrixserverlib.EventBuilder{
RoomID: "!test_room_id:test-domain.example.com",
Content: []byte(`{"RawContent": "test-raw-content"}`),
Sender: "@test-user:test-domain.example.com",
}
event, err := eventBuilder.Build(
testEventID,
time.Now(),
"test-domain.example.com",
"test-key-id",
keyBytes)
assert.Nil(t, err)
var addState, removeState []string
transactionID := api.TransactionID{
SessionID: 0x11223344,
TransactionID: "test-transaction-id",
}
newEventID, err := db.events.insertEvent(
context.Background(),
txn,
&event,
addState,
removeState,
&transactionID)
assert.Nil(t, err)
err = txn.Commit()
assert.Nil(t, err)
assert.Condition(t, func() bool {
return newEventID > 0
})
}
func selectTestEvent(t *testing.T, db *SyncServerDatasource) {
ctx := context.Background()
var eventIDs = []string{testEventID}
res, err := db.Events(ctx, eventIDs)
assert.Nil(t, err)
assert.NotNil(t, res)
assert.Condition(t, func() bool {
return len(res) > 0
})
}
func dropTable(dataSource string) {
if db, err := sql.Open("postgres", dataSource); err == nil && db != nil {
_, _ = db.Exec("DROP TABLE syncapi_output_room_events;")
} else {
panic("Error! Unable to refresh the database!")
}
}
func truncateTable(t *testing.T, db *SyncServerDatasource) {
_, err := db.db.Exec("TRUNCATE syncapi_output_room_events")
assert.Nil(t, err)
}