@@ -2,30 +2,49 @@ package gohive
2
2
3
3
import (
4
4
"database/sql"
5
+ "fmt"
6
+ "os"
5
7
"reflect"
6
8
"testing"
7
9
8
10
"github.com/stretchr/testify/assert"
9
11
)
10
12
13
+ var username = "sqlflow"
14
+ var password = "sqlflow"
15
+
16
+ func newDB (dbName string ) (* sql.DB , error ) {
17
+ connStr := "127.0.0.1:10000"
18
+ pamAuth := os .Getenv ("WITH_HS2_PAM_AUTH" )
19
+ if dbName != "" {
20
+ connStr = fmt .Sprintf ("%s/%s" , connStr , dbName )
21
+ }
22
+ if pamAuth == "ON" {
23
+ connStr = fmt .Sprintf ("%s:%s@%s?auth=PLAIN" , username , password , connStr )
24
+ }
25
+ return sql .Open ("hive" , connStr )
26
+ }
27
+
11
28
func TestOpenConnection (t * testing.T ) {
12
- db , err := sql . Open ( "hive" , "127.0.0.1:10000 " )
29
+ db , err := newDB ( " " )
13
30
assert .Nil (t , err )
14
31
defer db .Close ()
15
32
}
16
33
17
34
func TestOpenConnectionAgainstAuth (t * testing.T ) {
18
- db , _ := sql .Open ("hive" , "127.0.0.1:10000/churn?auth=PLAIN" )
19
- rows , err := db .Query ("SELECT customerID, gender FROM train" )
20
- assert .EqualError (t , err , "Bad SASL negotiation status: 4 ()" )
21
- defer db .Close ()
22
- if err == nil {
23
- defer rows .Close ()
35
+ if os .Getenv ("WITH_HS2_PAM_AUTH" ) != "ON" {
36
+ db , _ := sql .Open ("hive" , "127.0.0.1:10000/churn?auth=PLAIN" )
37
+ rows , err := db .Query ("SELECT customerID, gender FROM train" )
38
+ assert .EqualError (t , err , "Bad SASL negotiation status: 4 ()" )
39
+ defer db .Close ()
40
+ if err == nil {
41
+ defer rows .Close ()
42
+ }
24
43
}
25
44
}
26
45
27
46
func TestQuery (t * testing.T ) {
28
- db , _ := sql . Open ( "hive" , "127.0.0.1:10000/ churn" )
47
+ db , _ := newDB ( " churn" )
29
48
rows , err := db .Query ("SELECT customerID, gender FROM train" )
30
49
assert .Nil (t , err )
31
50
defer db .Close ()
@@ -45,7 +64,7 @@ func TestQuery(t *testing.T) {
45
64
46
65
func TestColumnName (t * testing.T ) {
47
66
a := assert .New (t )
48
- db , _ := sql . Open ( "hive" , "127.0.0.1:10000/ churn" )
67
+ db , _ := newDB ( " churn" )
49
68
rows , err := db .Query ("SELECT customerID, gender FROM train;" )
50
69
assert .Nil (t , err )
51
70
defer db .Close ()
@@ -58,7 +77,7 @@ func TestColumnName(t *testing.T) {
58
77
59
78
func TestColumnTypeName (t * testing.T ) {
60
79
a := assert .New (t )
61
- db , _ := sql . Open ( "hive" , "127.0.0.1:10000/ churn" )
80
+ db , _ := newDB ( " churn" )
62
81
rows , err := db .Query ("SELECT customerID, gender FROM train" )
63
82
assert .Nil (t , err )
64
83
defer db .Close ()
@@ -73,7 +92,7 @@ func TestColumnTypeName(t *testing.T) {
73
92
74
93
func TestColumnType (t * testing.T ) {
75
94
a := assert .New (t )
76
- db , _ := sql . Open ( "hive" , "127.0.0.1:10000/ churn" )
95
+ db , _ := newDB ( " churn" )
77
96
rows , err := db .Query ("SELECT customerID, gender FROM train" )
78
97
79
98
defer db .Close ()
@@ -88,7 +107,7 @@ func TestColumnType(t *testing.T) {
88
107
89
108
func TestShowCreateTable (t * testing.T ) {
90
109
a := assert .New (t )
91
- db , _ := sql . Open ( "hive" , "127.0.0.1:10000/ churn" )
110
+ db , _ := newDB ( " churn" )
92
111
rows , err := db .Query ("show create table train" )
93
112
94
113
defer db .Close ()
@@ -103,7 +122,7 @@ func TestShowCreateTable(t *testing.T) {
103
122
104
123
func TestDescribeTable (t * testing.T ) {
105
124
a := assert .New (t )
106
- db , _ := sql . Open ( "hive" , "127.0.0.1:10000/ churn" )
125
+ db , _ := newDB ( " churn" )
107
126
rows , err := db .Query ("describe train" )
108
127
109
128
defer db .Close ()
@@ -118,7 +137,7 @@ func TestDescribeTable(t *testing.T) {
118
137
119
138
func TestShowDatabases (t * testing.T ) {
120
139
a := assert .New (t )
121
- db , _ := sql . Open ( "hive" , "127.0.0.1:10000 " )
140
+ db , _ := newDB ( " " )
122
141
rows , err := db .Query ("show databases" )
123
142
124
143
defer db .Close ()
@@ -132,14 +151,14 @@ func TestShowDatabases(t *testing.T) {
132
151
}
133
152
134
153
func TestPing (t * testing.T ) {
135
- db , _ := sql . Open ( "hive" , "127.0.0.1:10000/ churn" )
154
+ db , _ := newDB ( " churn" )
136
155
err := db .Ping ()
137
156
assert .Nil (t , err )
138
157
}
139
158
140
159
func TestExec (t * testing.T ) {
141
160
a := assert .New (t )
142
- db , _ := sql . Open ( "hive" , "127.0.0.1:10000/ churn" )
161
+ db , _ := newDB ( " churn" )
143
162
_ , err := db .Exec ("insert into churn.test (gender) values ('Female')" )
144
163
defer db .Close ()
145
164
a .NoError (err )
0 commit comments