Skip to content

Commit 6a7e550

Browse files
committed
Added tests for wrong login/password
1 parent 35c2fa4 commit 6a7e550

File tree

1 file changed

+116
-77
lines changed

1 file changed

+116
-77
lines changed

tests/integration/driver_test.go

Lines changed: 116 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ import (
3030

3131
"github.com/ydb-platform/ydb-go-sdk/v3"
3232
"github.com/ydb-platform/ydb-go-sdk/v3/config"
33+
"github.com/ydb-platform/ydb-go-sdk/v3/internal/credentials"
3334
"github.com/ydb-platform/ydb-go-sdk/v3/internal/meta"
3435
"github.com/ydb-platform/ydb-go-sdk/v3/internal/version"
3536
"github.com/ydb-platform/ydb-go-sdk/v3/internal/xtest"
@@ -193,94 +194,132 @@ func TestDriver(sourceTest *testing.T) {
193194
require.NoError(t, err)
194195
}()
195196
t.RunSynced("UsingConnectionString", func(t *xtest.SyncedTest) {
196-
u, err := url.Parse(os.Getenv("YDB_CONNECTION_STRING"))
197-
require.NoError(t, err)
198-
u.User = url.UserPassword("test", "password")
199-
t.Log(u.String())
200-
db, err := ydb.Open(ctx,
201-
u.String(),
202-
)
203-
require.NoError(t, err)
204-
defer func() {
205-
_ = db.Close(ctx)
206-
}()
207-
row, err := db.Query().QueryRow(ctx, `SELECT 1`)
208-
require.NoError(t, err)
209-
var v int
210-
err = row.Scan(&v)
211-
require.NoError(t, err)
212-
tableName := path.Join(db.Name(), t.Name(), "test")
213-
t.RunSynced("CreateTable", func(t *xtest.SyncedTest) {
214-
err := db.Query().Exec(ctx, fmt.Sprintf(`
215-
CREATE TABLE IF NOT EXISTS %s (
216-
id Uint64,
217-
value Utf8,
218-
PRIMARY KEY (id)
219-
)`, "`"+tableName+"`"),
220-
)
197+
t.RunSynced("HappyWay", func(t *xtest.SyncedTest) {
198+
u, err := url.Parse(os.Getenv("YDB_CONNECTION_STRING"))
221199
require.NoError(t, err)
222-
})
223-
t.RunSynced("DescribeTable", func(t *xtest.SyncedTest) {
224-
var d options.Description
225-
err := db.Table().Do(ctx, func(ctx context.Context, s table.Session) error {
226-
d, err = s.DescribeTable(ctx, tableName)
227-
if err != nil {
228-
return err
229-
}
200+
u.User = url.UserPassword("test", "password")
201+
t.Log(u.String())
202+
db, err := ydb.Open(ctx, u.String())
203+
require.NoError(t, err)
204+
defer func() {
205+
_ = db.Close(ctx)
206+
}()
207+
row, err := db.Query().QueryRow(ctx, `SELECT 1`)
208+
require.NoError(t, err)
209+
var v int
210+
err = row.Scan(&v)
211+
require.NoError(t, err)
212+
tableName := path.Join(db.Name(), t.Name(), "test")
213+
t.RunSynced("CreateTable", func(t *xtest.SyncedTest) {
214+
err := db.Query().Exec(ctx, fmt.Sprintf(`
215+
CREATE TABLE IF NOT EXISTS %s (
216+
id Uint64,
217+
value Utf8,
218+
PRIMARY KEY (id)
219+
)`, "`"+tableName+"`"),
220+
)
221+
require.NoError(t, err)
222+
})
223+
t.RunSynced("DescribeTable", func(t *xtest.SyncedTest) {
224+
var d options.Description
225+
err := db.Table().Do(ctx, func(ctx context.Context, s table.Session) error {
226+
d, err = s.DescribeTable(ctx, tableName)
227+
if err != nil {
228+
return err
229+
}
230230

231-
return nil
231+
return nil
232+
})
233+
require.NoError(t, err)
234+
require.Equal(t, "test", d.Name)
235+
require.Equal(t, 2, len(d.Columns))
236+
require.Equal(t, "id", d.Columns[0].Name)
237+
require.Equal(t, "value", d.Columns[1].Name)
238+
require.Equal(t, []string{"id"}, d.PrimaryKey)
232239
})
240+
})
241+
t.RunSynced("WrongLogin", func(t *xtest.SyncedTest) {
242+
u, err := url.Parse(os.Getenv("YDB_CONNECTION_STRING"))
243+
require.NoError(t, err)
244+
u.User = url.UserPassword("wrong_login", "password")
245+
db, err := ydb.Open(ctx, u.String())
246+
require.Error(t, err)
247+
require.Nil(t, db)
248+
require.True(t, credentials.IsAccessError(err))
249+
})
250+
t.RunSynced("WrongPassword", func(t *xtest.SyncedTest) {
251+
u, err := url.Parse(os.Getenv("YDB_CONNECTION_STRING"))
233252
require.NoError(t, err)
234-
require.Equal(t, "test", d.Name)
235-
require.Equal(t, 2, len(d.Columns))
236-
require.Equal(t, "id", d.Columns[0].Name)
237-
require.Equal(t, "value", d.Columns[1].Name)
238-
require.Equal(t, []string{"id"}, d.PrimaryKey)
253+
u.User = url.UserPassword("test", "wrong_password")
254+
db, err := ydb.Open(ctx, u.String())
255+
require.Error(t, err)
256+
require.Nil(t, db)
257+
require.True(t, credentials.IsAccessError(err))
239258
})
240259
})
241260
t.RunSynced("UsingExplicitStaticCredentials", func(t *xtest.SyncedTest) {
242-
db, err := ydb.Open(ctx,
243-
os.Getenv("YDB_CONNECTION_STRING"),
244-
ydb.WithStaticCredentials("test", "password"),
245-
)
246-
require.NoError(t, err)
247-
defer func() {
248-
_ = db.Close(ctx)
249-
}()
250-
tableName := path.Join(db.Name(), t.Name(), "test")
251-
t.RunSynced("CreateTable", func(t *xtest.SyncedTest) {
252-
err := db.Query().Exec(ctx, fmt.Sprintf(`
253-
CREATE TABLE IF NOT EXISTS %s (
254-
id Uint64,
255-
value Utf8,
256-
PRIMARY KEY (id)
257-
)`, "`"+tableName+"`"),
261+
t.RunSynced("HappyWay", func(t *xtest.SyncedTest) {
262+
db, err := ydb.Open(ctx,
263+
os.Getenv("YDB_CONNECTION_STRING"),
264+
ydb.WithStaticCredentials("test", "password"),
258265
)
259266
require.NoError(t, err)
260-
})
261-
t.RunSynced("Query", func(t *xtest.SyncedTest) {
262-
row, err := db.Query().QueryRow(ctx, `SELECT 1`)
263-
require.NoError(t, err)
264-
var v int
265-
err = row.Scan(&v)
266-
require.NoError(t, err)
267-
})
268-
t.RunSynced("DescribeTable", func(t *xtest.SyncedTest) {
269-
var d options.Description
270-
err := db.Table().Do(ctx, func(ctx context.Context, s table.Session) error {
271-
d, err = s.DescribeTable(ctx, tableName)
272-
if err != nil {
273-
return err
274-
}
267+
defer func() {
268+
_ = db.Close(ctx)
269+
}()
270+
tableName := path.Join(db.Name(), t.Name(), "test")
271+
t.RunSynced("CreateTable", func(t *xtest.SyncedTest) {
272+
err := db.Query().Exec(ctx, fmt.Sprintf(`
273+
CREATE TABLE IF NOT EXISTS %s (
274+
id Uint64,
275+
value Utf8,
276+
PRIMARY KEY (id)
277+
)`, "`"+tableName+"`"),
278+
)
279+
require.NoError(t, err)
280+
})
281+
t.RunSynced("Query", func(t *xtest.SyncedTest) {
282+
row, err := db.Query().QueryRow(ctx, `SELECT 1`)
283+
require.NoError(t, err)
284+
var v int
285+
err = row.Scan(&v)
286+
require.NoError(t, err)
287+
})
288+
t.RunSynced("DescribeTable", func(t *xtest.SyncedTest) {
289+
var d options.Description
290+
err := db.Table().Do(ctx, func(ctx context.Context, s table.Session) error {
291+
d, err = s.DescribeTable(ctx, tableName)
292+
if err != nil {
293+
return err
294+
}
275295

276-
return nil
296+
return nil
297+
})
298+
require.NoError(t, err)
299+
require.Equal(t, "test", d.Name)
300+
require.Equal(t, 2, len(d.Columns))
301+
require.Equal(t, "id", d.Columns[0].Name)
302+
require.Equal(t, "value", d.Columns[1].Name)
303+
require.Equal(t, []string{"id"}, d.PrimaryKey)
277304
})
278-
require.NoError(t, err)
279-
require.Equal(t, "test", d.Name)
280-
require.Equal(t, 2, len(d.Columns))
281-
require.Equal(t, "id", d.Columns[0].Name)
282-
require.Equal(t, "value", d.Columns[1].Name)
283-
require.Equal(t, []string{"id"}, d.PrimaryKey)
305+
})
306+
t.RunSynced("WrongLogin", func(t *xtest.SyncedTest) {
307+
db, err := ydb.Open(ctx,
308+
os.Getenv("YDB_CONNECTION_STRING"),
309+
ydb.WithStaticCredentials("wrong_user", "password"),
310+
)
311+
require.Error(t, err)
312+
require.Nil(t, db)
313+
require.True(t, credentials.IsAccessError(err))
314+
})
315+
t.RunSynced("WrongPassword", func(t *xtest.SyncedTest) {
316+
db, err := ydb.Open(ctx,
317+
os.Getenv("YDB_CONNECTION_STRING"),
318+
ydb.WithStaticCredentials("test", "wrong_password"),
319+
)
320+
require.Error(t, err)
321+
require.Nil(t, db)
322+
require.True(t, credentials.IsAccessError(err))
284323
})
285324
})
286325
})

0 commit comments

Comments
 (0)