debian-forge-composer/cmd/osbuild-composer-dbjobqueue-tests/main_test.go
Lars Karlitski 9c2c92f729 jobqueue: Introduce jobqueue backed by a postgres database
Co-authored-by: sanne <sanne.raymaekers@gmail.com>
2021-07-28 21:52:31 +01:00

47 lines
1.1 KiB
Go

// +build integration
package main
import (
"context"
"fmt"
"testing"
"github.com/jackc/pgx/v4"
"github.com/osbuild/osbuild-composer/internal/jobqueue"
"github.com/osbuild/osbuild-composer/internal/jobqueue/dbjobqueue"
"github.com/osbuild/osbuild-composer/internal/jobqueue/jobqueuetest"
)
func TestJobQueueInterface(t *testing.T) {
jobqueuetest.TestJobQueue(t, func() (jobqueue.JobQueue, func(), error) {
url := "postgres://postgres:foobar@localhost:5432/osbuildcomposer"
// clear db before each run
conn, err := pgx.Connect(context.Background(), url)
if err != nil {
return nil, nil, err
}
defer conn.Close(context.Background())
for _, table := range []string{"job_dependencies", "heartbeats", "jobs"} {
_, err = conn.Exec(context.Background(), fmt.Sprintf("DELETE FROM %s", table))
if err != nil {
return nil, nil, err
}
}
err = conn.Close(context.Background())
if err != nil {
return nil, nil, err
}
q, err := dbjobqueue.New(url)
if err != nil {
return nil, nil, err
}
stop := func() {
q.Close()
}
return q, stop, nil
})
}