diff options
author | Jacob Vosmaer <jacob@gitlab.com> | 2020-03-09 16:14:07 +0300 |
---|---|---|
committer | Jacob Vosmaer <jacob@gitlab.com> | 2020-03-09 16:14:07 +0300 |
commit | 12420dd6f5e216b6d70af50129e37cd1e7186fe1 (patch) | |
tree | ffe4facf727dd5ec447040c266baaed8a6225c29 | |
parent | bedcf592fcafad2da8b3afad3b40d8ce21ba13a6 (diff) |
Automatically fetch PG_ env vars from GDK
-rw-r--r-- | internal/praefect/datastore/glsql/postgres_test.go | 2 | ||||
-rw-r--r-- | internal/praefect/datastore/glsql/testing.go | 26 |
2 files changed, 28 insertions, 0 deletions
diff --git a/internal/praefect/datastore/glsql/postgres_test.go b/internal/praefect/datastore/glsql/postgres_test.go index 586375c65..54fcba8ae 100644 --- a/internal/praefect/datastore/glsql/postgres_test.go +++ b/internal/praefect/datastore/glsql/postgres_test.go @@ -19,6 +19,8 @@ import ( ) func TestOpenDB(t *testing.T) { + getEnvFromGDK(t) + dbCfg := config.DB{ Host: os.Getenv("PGHOST"), Port: func() int { diff --git a/internal/praefect/datastore/glsql/testing.go b/internal/praefect/datastore/glsql/testing.go index eba642c65..f05fd7051 100644 --- a/internal/praefect/datastore/glsql/testing.go +++ b/internal/praefect/datastore/glsql/testing.go @@ -5,6 +5,7 @@ import ( "errors" "fmt" "os" + "os/exec" "strconv" "strings" "sync" @@ -80,6 +81,8 @@ func GetDB(t testing.TB) DB { func initGitalyTestDB(t testing.TB) *sql.DB { t.Helper() + getEnvFromGDK(t) + host, hostFound := os.LookupEnv("PGHOST") require.True(t, hostFound, "PGHOST env var expected to be provided to connect to Postgres database") @@ -124,3 +127,26 @@ func Clean() error { } return nil } + +func getEnvFromGDK(t testing.TB) { + gdkEnv, err := exec.Command("gdk", "env").Output() + if err != nil { + // Assume we are not in a GDK setup; this is not an error so just return. + return + } + + for _, line := range strings.Split(string(gdkEnv), "\n") { + const prefix = "export " + if !strings.HasPrefix(line, prefix) { + continue + } + + split := strings.SplitN(strings.TrimPrefix(line, prefix), "=", 2) + if len(split) != 2 { + continue + } + key, value := split[0], split[1] + + require.NoError(t, os.Setenv(key, value), "set env var %v", key) + } +} |