2
0

Add RegisterConnConfig to stdlib

This restored functionality lost in the v3 to v4 transition when
RegisterDriverConfig was removed.

fixes #617
This commit is contained in:
Jack Christensen
2019-11-16 11:06:57 -06:00
parent f3a3ee1a0e
commit 69e9c33daf
2 changed files with 89 additions and 39 deletions
+39 -14
View File
@@ -15,6 +15,8 @@ import (
"github.com/jackc/pgconn"
"github.com/jackc/pgx/v4"
"github.com/jackc/pgx/v4/stdlib"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func closeDB(t *testing.T, db *sql.DB) {
@@ -288,20 +290,6 @@ func TestConnQuery(t *testing.T) {
ensureConnValid(t, db)
}
type testLog struct {
lvl pgx.LogLevel
msg string
data map[string]interface{}
}
type testLogger struct {
logs []testLog
}
func (l *testLogger) Log(lvl pgx.LogLevel, msg string, data map[string]interface{}) {
l.logs = append(l.logs, testLog{lvl: lvl, msg: msg, data: data})
}
func TestConnQueryNull(t *testing.T) {
db := openDB(t)
defer closeDB(t, db)
@@ -1132,3 +1120,40 @@ func TestScanJSONIntoJSONRawMessage(t *testing.T) {
ensureConnValid(t, db)
}
type testLog struct {
lvl pgx.LogLevel
msg string
data map[string]interface{}
}
type testLogger struct {
logs []testLog
}
func (l *testLogger) Log(ctx context.Context, lvl pgx.LogLevel, msg string, data map[string]interface{}) {
l.logs = append(l.logs, testLog{lvl: lvl, msg: msg, data: data})
}
func TestRegisterConnConfig(t *testing.T) {
connConfig, err := pgx.ParseConfig(os.Getenv("PGX_TEST_DATABASE"))
require.NoError(t, err)
logger := &testLogger{}
connConfig.Logger = logger
connStr := stdlib.RegisterConnConfig(connConfig)
defer stdlib.UnregisterConnConfig(connStr)
db, err := sql.Open("pgx", connStr)
require.NoError(t, err)
defer closeDB(t, db)
var n int64
err = db.QueryRow("select 1").Scan(&n)
require.NoError(t, err)
l := logger.logs[len(logger.logs)-1]
assert.Equal(t, "Query", l.msg)
assert.Equal(t, "select 1", l.data["sql"])
}