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:
+39
-14
@@ -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"])
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user