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 ( import (
"context" "context"
"database/sql" "database/sql"
"errors"
"fmt" "fmt"
_ "github.com/lib/pq" _ "github.com/lib/pq"
"os"
"pgm/data" "pgm/data"
"pgm/logger" "pgm/logger"
) )
func DbConn(c data.HostDetails) *sql.DB { func DbConn(c data.HostDetails) (*sql.DB, error) {
var h string var h string
var u string var u string
var pw string var pw string
@ -32,31 +32,36 @@ func DbConn(c data.HostDetails) *sql.DB {
h, 5432, u, pw, dbn) h, 5432, u, pw, dbn)
db, err := sql.Open("postgres", psqlInfo) db, err := sql.Open("postgres", psqlInfo)
if err != nil { if err != nil {
var db *sql.DB
switch u { switch u {
case testUserName: case testUserName:
logger.Logger("[ERROR] go tests expects to connect with the docker compose database." + logger.Logger("[ERROR] go tests expects to connect with the docker compose database." +
"[ERROR] run \"docker-compose up\" and re-run tests") "[ERROR] run \"docker-compose up\" and re-run tests")
fmt.Println("local db is closed, please run docker-compose up") err := errors.New("unable to ping db" + dbn + "local db is closed, please run docker-compose up")
os.Exit(1) return db, err
default: default:
logger.Logger("[ERROR] db error: " + err.Error()) logger.Logger("[ERROR] db error: " + err.Error())
return db, err
} }
} }
logger.Logger("[LOG] pinging db " + dbn) logger.Logger("[LOG] pinging db " + dbn)
ctx := context.Background() ctx := context.Background()
err = db.PingContext(ctx) err = db.PingContext(ctx)
if err != nil { if err != nil {
var db *sql.DB
switch u { switch u {
case testUserName: case testUserName:
logger.Logger("[ERROR] db error, unable to ping: " + err.Error()+ 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") 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: default:
logger.Logger("[ERROR] db error: " + err.Error()) logger.Logger("[ERROR] db error: " + err.Error())
return db, err
} }
} }
return db, nil
return db
} }

View File

@ -123,22 +123,32 @@ func TestViperScnConfig(t *testing.T) {
func TestDbConn(t *testing.T) { func TestDbConn(t *testing.T) {
t.Parallel() t.Parallel()
var h data.HostDetails
found, c := data.ViperPgmConfig("test_db", "r") found, c := data.ViperPgmConfig("test_db", "r")
testCases := []connTest{
{connstring: c, want: nil},
}
if found != true { if found != true {
logger.Logger("[LOG] failed to find test_db in .pgm.yaml") logger.Logger("[LOG] failed to find test_db in .pgm.yaml")
} }
err := json.Unmarshal([]byte(c), &h) for _, tc := range testCases {
if err != nil { var h data.HostDetails
logger.Logger("[ERROR] db conn test failure: " + err.Error()) err := json.Unmarshal([]byte(tc.connstring), &h)
} if err != nil {
got := db.DbConn(h) logger.Logger("[ERROR] db conn test failure: " + err.Error())
err = got.Close() }
if err != nil { got, err := db.DbConn(h)
t.Errorf("sql function did not test correctly") 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 { type connTest struct {
u string connstring string
want error
} }