MCPcopy
hub / github.com/jackc/pgx / TestCollectOneRowPrefersPostgreSQLErrorOverErrNoRows

Function TestCollectOneRowPrefersPostgreSQLErrorOverErrNoRows

rows_test.go:264–291  ·  view source on GitHub ↗

https://github.com/jackc/pgx/issues/1334

(t *testing.T)

Source from the content-addressed store, hash-verified

262
263// https://github.com/jackc/pgx/issues/1334
264func TestCollectOneRowPrefersPostgreSQLErrorOverErrNoRows(t *testing.T) {
265 defaultConnTestRunner.RunTest(context.Background(), t, func(ctx context.Context, t testing.TB, conn *pgx.Conn) {
266 _, err := conn.Exec(ctx, `create temporary table t (name text not null unique)`)
267 require.NoError(t, err)
268
269 var name string
270 rows, _ := conn.Query(ctx, `insert into t (name) values ('foo') returning name`)
271 name, err = pgx.CollectOneRow(rows, func(row pgx.CollectableRow) (string, error) {
272 var n string
273 err := row.Scan(&n)
274 return n, err
275 })
276 require.NoError(t, err)
277 require.Equal(t, "foo", name)
278
279 rows, _ = conn.Query(ctx, `insert into t (name) values ('foo') returning name`)
280 name, err = pgx.CollectOneRow(rows, func(row pgx.CollectableRow) (string, error) {
281 var n string
282 err := row.Scan(&n)
283 return n, err
284 })
285 require.Error(t, err)
286 var pgErr *pgconn.PgError
287 require.ErrorAs(t, err, &pgErr)
288 require.Equal(t, "23505", pgErr.Code)
289 require.Equal(t, "", name)
290 })
291}
292
293func TestCollectExactlyOneRow(t *testing.T) {
294 defaultConnTestRunner.RunTest(context.Background(), t, func(ctx context.Context, t testing.TB, conn *pgx.Conn) {

Callers

nothing calls this directly

Calls 5

RunTestMethod · 0.80
ExecMethod · 0.65
QueryMethod · 0.65
ScanMethod · 0.65
ErrorMethod · 0.45

Tested by

no test coverage detected