From f2b393a45377b1773deaad3af226f01f1c693bcf Mon Sep 17 00:00:00 2001 From: Las Zenow Date: Sun, 8 Apr 2018 22:11:19 +0000 Subject: [PATCH] Make the tests pass --- lib/database/books_test.go | 2 +- lib/database/database.go | 17 +++++++++++------ lib/database/database_test.go | 21 +++++---------------- 3 files changed, 17 insertions(+), 23 deletions(-) diff --git a/lib/database/books_test.go b/lib/database/books_test.go index 1036867..8cb5b87 100644 --- a/lib/database/books_test.go +++ b/lib/database/books_test.go @@ -4,7 +4,7 @@ import "testing" var book = Book{ ID: "r_m-IOzzIbA6QK5w", - Title: "some title", + Title: "a famous book", Authors: []string{"Alice", "Bob"}, } diff --git a/lib/database/database.go b/lib/database/database.go index 2224270..6c67624 100644 --- a/lib/database/database.go +++ b/lib/database/database.go @@ -66,6 +66,16 @@ type Options struct { // Init the database connection func Init(options Options) (DB, error) { + db, err := _init(options) + if err != nil { + return nil, err + } + go db.frontPageUpdater() + + return db, nil +} + +func _init(options Options) (*pgDB, error) { network := "tcp" if options.Addr[0] == '/' { network = "unix" @@ -82,12 +92,7 @@ func Init(options Options) (DB, error) { db.sql = sql err := db.create() - if err != nil { - return nil, err - } - go db.frontPageUpdater() - - return &db, nil + return &db, err } // Close the database connection diff --git a/lib/database/database_test.go b/lib/database/database_test.go index 2b5900e..2626b13 100644 --- a/lib/database/database_test.go +++ b/lib/database/database_test.go @@ -1,13 +1,13 @@ package database import ( - "io/ioutil" "testing" ) func testDbInit(t *testing.T) (DB, func()) { - db, err := Init(Options{ + db, err := _init(Options{ Name: "test_trantor", + Addr: "/var/run/postgresql/.s.PGSQL.5433", // TODO: can it be done with a local user? User: "trantor", Password: "trantor", @@ -15,17 +15,6 @@ func testDbInit(t *testing.T) (DB, func()) { if err != nil { t.Fatal("Init() return an error: ", err) } - pgdb, _ := db.(*pgDB) - - buf, err := ioutil.ReadFile("../../createdb.sql") - if err != nil { - t.Fatal("error reading sql schema: ", err) - } - schema := string(buf) - _, err = pgdb.sql.Exec(schema) - if err != nil { - t.Fatal("error setting up sql schema: ", err) - } cleanFn := func() { entities := []struct { @@ -38,18 +27,18 @@ func testDbInit(t *testing.T) (DB, func()) { FROM pg_catalog.pg_namespace n JOIN pg_catalog.pg_proc p ON p.pronamespace = n.oid - WHERE n.nspname = 'public'`}, + WHERE n.nspname = 'public' AND p.proowner != 10`}, {"trigger", "select tgname from pg_trigger"}, } for _, entity := range entities { var items []string - _, err = pgdb.sql.Query(&items, entity.query) + _, err = db.sql.Query(&items, entity.query) if err != nil { t.Error("get the list of "+entity.name+"return an error: ", err) } for _, item := range items { - _, err = pgdb.sql.Exec("drop " + entity.name + " " + item + " cascade") + _, err = db.sql.Exec("drop " + entity.name + " " + item + " cascade") if err != nil { t.Error("drop ", entity.name, " ", item, " return an error: ", err) }