putting away for now
This commit is contained in:
parent
10cd7eab15
commit
97b4faf605
21
db/db.go
21
db/db.go
@ -3,14 +3,14 @@ package db
|
||||
import (
|
||||
"context"
|
||||
"database/sql"
|
||||
"errors"
|
||||
"fmt"
|
||||
_ "github.com/lib/pq"
|
||||
"os"
|
||||
"pgm/data"
|
||||
"pgm/logger"
|
||||
)
|
||||
|
||||
func DbConn(c data.HostDetails) *sql.DB {
|
||||
func DbConn(c data.HostDetails) (*sql.DB, error) {
|
||||
var h string
|
||||
var u string
|
||||
var pw string
|
||||
@ -32,31 +32,36 @@ func DbConn(c data.HostDetails) *sql.DB {
|
||||
h, 5432, u, pw, dbn)
|
||||
db, err := sql.Open("postgres", psqlInfo)
|
||||
if err != nil {
|
||||
var db *sql.DB
|
||||
switch u {
|
||||
case testUserName:
|
||||
logger.Logger("[ERROR] go tests expects to connect with the docker compose database." +
|
||||
"[ERROR] run \"docker-compose up\" and re-run tests")
|
||||
fmt.Println("local db is closed, please run docker-compose up")
|
||||
os.Exit(1)
|
||||
err := errors.New("unable to ping db" + dbn + "local db is closed, please run docker-compose up")
|
||||
return db, err
|
||||
default:
|
||||
logger.Logger("[ERROR] db error: " + err.Error())
|
||||
return db, err
|
||||
}
|
||||
|
||||
}
|
||||
logger.Logger("[LOG] pinging db " + dbn)
|
||||
ctx := context.Background()
|
||||
err = db.PingContext(ctx)
|
||||
|
||||
if err != nil {
|
||||
var db *sql.DB
|
||||
switch u {
|
||||
case testUserName:
|
||||
logger.Logger("[ERROR] db error, unable to ping: " + err.Error()+
|
||||
"[ERROR] ensure docker database is running and re-run tests")
|
||||
"\n[ERROR] ensure docker database is running and re-run tests")
|
||||
fmt.Println("local db is closed, please run docker-compose up")
|
||||
os.Exit(1)
|
||||
err1 := errors.New("unable to ping db" + dbn)
|
||||
return db, err1
|
||||
default:
|
||||
logger.Logger("[ERROR] db error: " + err.Error())
|
||||
return db, err
|
||||
}
|
||||
}
|
||||
|
||||
return db
|
||||
return db, nil
|
||||
}
|
||||
|
||||
31
main_test.go
31
main_test.go
@ -123,22 +123,32 @@ func TestViperScnConfig(t *testing.T) {
|
||||
|
||||
func TestDbConn(t *testing.T) {
|
||||
t.Parallel()
|
||||
var h data.HostDetails
|
||||
found, c := data.ViperPgmConfig("test_db", "r")
|
||||
testCases := []connTest{
|
||||
{connstring: c, want: nil},
|
||||
}
|
||||
if found != true {
|
||||
logger.Logger("[LOG] failed to find test_db in .pgm.yaml")
|
||||
}
|
||||
err := json.Unmarshal([]byte(c), &h)
|
||||
if err != nil {
|
||||
logger.Logger("[ERROR] db conn test failure: " + err.Error())
|
||||
}
|
||||
got := db.DbConn(h)
|
||||
err = got.Close()
|
||||
if err != nil {
|
||||
t.Errorf("sql function did not test correctly")
|
||||
for _, tc := range testCases {
|
||||
var h data.HostDetails
|
||||
err := json.Unmarshal([]byte(tc.connstring), &h)
|
||||
if err != nil {
|
||||
logger.Logger("[ERROR] db conn test failure: " + err.Error())
|
||||
}
|
||||
got, err := db.DbConn(h)
|
||||
if tc.want != err {
|
||||
t.Error("db conn returned an invalid error for test scenario, see logs")
|
||||
}
|
||||
err = got.Close()
|
||||
if err != nil {
|
||||
logger.Logger("[ERROR] Unable to close connection during test")
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -167,7 +177,8 @@ func TestDbConn(t *testing.T) {
|
||||
//}
|
||||
|
||||
type connTest struct {
|
||||
u string
|
||||
connstring string
|
||||
want error
|
||||
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user