mirror of https://github.com/jackc/pgx.git
Simplify config tests by using T.Setenv, T.TempDir
parent
c81bba8690
commit
0080acf318
|
@ -6,6 +6,7 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
"os"
|
||||||
"os/user"
|
"os/user"
|
||||||
|
"path/filepath"
|
||||||
"runtime"
|
"runtime"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
|
@ -933,19 +934,6 @@ func TestParseConfigEnvLibpq(t *testing.T) {
|
||||||
|
|
||||||
pgEnvvars := []string{"PGHOST", "PGPORT", "PGDATABASE", "PGUSER", "PGPASSWORD", "PGAPPNAME", "PGSSLMODE", "PGCONNECT_TIMEOUT", "PGSSLSNI"}
|
pgEnvvars := []string{"PGHOST", "PGPORT", "PGDATABASE", "PGUSER", "PGPASSWORD", "PGAPPNAME", "PGSSLMODE", "PGCONNECT_TIMEOUT", "PGSSLSNI"}
|
||||||
|
|
||||||
savedEnv := make(map[string]string)
|
|
||||||
for _, n := range pgEnvvars {
|
|
||||||
savedEnv[n] = os.Getenv(n)
|
|
||||||
}
|
|
||||||
defer func() {
|
|
||||||
for k, v := range savedEnv {
|
|
||||||
err := os.Setenv(k, v)
|
|
||||||
if err != nil {
|
|
||||||
t.Fatalf("Unable to restore environment: %v", err)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}()
|
|
||||||
|
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
name string
|
name string
|
||||||
envvars map[string]string
|
envvars map[string]string
|
||||||
|
@ -1021,8 +1009,7 @@ func TestParseConfigEnvLibpq(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
for k, v := range tt.envvars {
|
for k, v := range tt.envvars {
|
||||||
err := os.Setenv(k, v)
|
t.Setenv(k, v)
|
||||||
require.NoError(t, err)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
config, err := pgconn.ParseConfig("")
|
config, err := pgconn.ParseConfig("")
|
||||||
|
@ -1038,16 +1025,11 @@ func TestParseConfigReadsPgPassfile(t *testing.T) {
|
||||||
skipOnWindows(t)
|
skipOnWindows(t)
|
||||||
t.Parallel()
|
t.Parallel()
|
||||||
|
|
||||||
tf, err := os.CreateTemp("", "")
|
tfName := filepath.Join(t.TempDir(), "config")
|
||||||
|
err := os.WriteFile(tfName, []byte("test1:5432:curlydb:curly:nyuknyuknyuk"), 0600)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
defer tf.Close()
|
connString := fmt.Sprintf("postgres://curly@test1:5432/curlydb?sslmode=disable&passfile=%s", tfName)
|
||||||
defer os.Remove(tf.Name())
|
|
||||||
|
|
||||||
_, err = tf.Write([]byte("test1:5432:curlydb:curly:nyuknyuknyuk"))
|
|
||||||
require.NoError(t, err)
|
|
||||||
|
|
||||||
connString := fmt.Sprintf("postgres://curly@test1:5432/curlydb?sslmode=disable&passfile=%s", tf.Name())
|
|
||||||
expected := &pgconn.Config{
|
expected := &pgconn.Config{
|
||||||
User: "curly",
|
User: "curly",
|
||||||
Password: "nyuknyuknyuk",
|
Password: "nyuknyuknyuk",
|
||||||
|
@ -1068,13 +1050,9 @@ func TestParseConfigReadsPgServiceFile(t *testing.T) {
|
||||||
skipOnWindows(t)
|
skipOnWindows(t)
|
||||||
t.Parallel()
|
t.Parallel()
|
||||||
|
|
||||||
tf, err := os.CreateTemp("", "")
|
tfName := filepath.Join(t.TempDir(), "config")
|
||||||
require.NoError(t, err)
|
|
||||||
|
|
||||||
defer tf.Close()
|
err := os.WriteFile(tfName, []byte(`
|
||||||
defer os.Remove(tf.Name())
|
|
||||||
|
|
||||||
_, err = tf.Write([]byte(`
|
|
||||||
[abc]
|
[abc]
|
||||||
host=abc.example.com
|
host=abc.example.com
|
||||||
port=9999
|
port=9999
|
||||||
|
@ -1086,7 +1064,7 @@ host = def.example.com
|
||||||
dbname = defdb
|
dbname = defdb
|
||||||
user = defuser
|
user = defuser
|
||||||
application_name = spaced string
|
application_name = spaced string
|
||||||
`))
|
`), 0600)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
defaultPort := getDefaultPort(t)
|
defaultPort := getDefaultPort(t)
|
||||||
|
@ -1098,7 +1076,7 @@ application_name = spaced string
|
||||||
}{
|
}{
|
||||||
{
|
{
|
||||||
name: "abc",
|
name: "abc",
|
||||||
connString: fmt.Sprintf("postgres:///?servicefile=%s&service=%s", tf.Name(), "abc"),
|
connString: fmt.Sprintf("postgres:///?servicefile=%s&service=%s", tfName, "abc"),
|
||||||
config: &pgconn.Config{
|
config: &pgconn.Config{
|
||||||
Host: "abc.example.com",
|
Host: "abc.example.com",
|
||||||
Database: "abcdb",
|
Database: "abcdb",
|
||||||
|
@ -1120,7 +1098,7 @@ application_name = spaced string
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "def",
|
name: "def",
|
||||||
connString: fmt.Sprintf("postgres:///?servicefile=%s&service=%s", tf.Name(), "def"),
|
connString: fmt.Sprintf("postgres:///?servicefile=%s&service=%s", tfName, "def"),
|
||||||
config: &pgconn.Config{
|
config: &pgconn.Config{
|
||||||
Host: "def.example.com",
|
Host: "def.example.com",
|
||||||
Port: defaultPort,
|
Port: defaultPort,
|
||||||
|
@ -1142,7 +1120,7 @@ application_name = spaced string
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "conn string has precedence",
|
name: "conn string has precedence",
|
||||||
connString: fmt.Sprintf("postgres://other.example.com:7777/?servicefile=%s&service=%s&sslmode=disable", tf.Name(), "abc"),
|
connString: fmt.Sprintf("postgres://other.example.com:7777/?servicefile=%s&service=%s&sslmode=disable", tfName, "abc"),
|
||||||
config: &pgconn.Config{
|
config: &pgconn.Config{
|
||||||
Host: "other.example.com",
|
Host: "other.example.com",
|
||||||
Database: "abcdb",
|
Database: "abcdb",
|
||||||
|
|
Loading…
Reference in New Issue