putting away for now

This commit is contained in:
jms 2020-10-25 10:53:27 -05:00
parent 10cd7eab15
commit 97b4faf605
2 changed files with 34 additions and 18 deletions

View File

@ -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
}

View File

@ -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
}