diff options
-rw-r--r-- | db/setup.go | 27 | ||||
-rw-r--r-- | db/setup_test.go | 29 | ||||
-rw-r--r-- | db/testdata/test.db | bin | 0 -> 12288 bytes | |||
-rw-r--r-- | reader/reader.go | 17 | ||||
-rw-r--r-- | reader/reader_test.go | 28 |
5 files changed, 56 insertions, 45 deletions
diff --git a/db/setup.go b/db/setup.go new file mode 100644 index 0000000..5cd1041 --- /dev/null +++ b/db/setup.go @@ -0,0 +1,27 @@ +package db + +import ( + "database/sql" + "errors" + "log" + "os" + + _ "github.com/mattn/go-sqlite3" +) + +func SetupDB(path string) (*sql.DB, error) { + os.Create(path) + db, err := sql.Open("sqlite3", path) + if err != nil { + return db, errors.New("Cannot open that damn database file") + } + stmt := `drop table if exists datamap; + create table datamap(id integer no null primary key, name text); + ` + _, err = db.Exec(stmt) + if err != nil { + log.Printf("%q: %s\n", err, stmt) + } + + return db, nil +} diff --git a/db/setup_test.go b/db/setup_test.go new file mode 100644 index 0000000..e256f9c --- /dev/null +++ b/db/setup_test.go @@ -0,0 +1,29 @@ +package db + +import "testing" + +func TestOpenSQLiteFile(t *testing.T) { + // db, err := sql.Open("sqlite3", "testdata/test.db") + db, err := SetupDB("./testdata/test.db") + defer db.Close() + if err != nil { + t.Fatal("Expected to be able to set up the database.") + } + stmt := `insert into datamap(id, name) values(1,'cock')` + _, err = db.Exec(stmt) + if err != nil { + t.Errorf("Cannot add record to db") + } + rows, err := db.Query("select name from datamap") + if err != nil { + t.Errorf("Cannot run select statement") + } + defer rows.Close() + for rows.Next() { + var name string + err = rows.Scan(&name) + if err != nil { + t.Errorf("Cannot scan resulting row") + } + } +} diff --git a/db/testdata/test.db b/db/testdata/test.db Binary files differnew file mode 100644 index 0000000..8a7fa2f --- /dev/null +++ b/db/testdata/test.db diff --git a/reader/reader.go b/reader/reader.go index d99f2a8..bdca4dc 100644 --- a/reader/reader.go +++ b/reader/reader.go @@ -1,7 +1,6 @@ package reader import ( - "database/sql" "encoding/csv" "errors" "fmt" @@ -41,22 +40,6 @@ type ExtractedCell struct { Value string } -func SetupDB(path string) (*sql.DB, error) { - db, err := sql.Open("sqlite3", path) - if err != nil { - return db, errors.New("Cannot open that damn database file") - } - stmt := `drop table if exists datamap; - create table datamap(id integer no null primary key, name text); - ` - _, err = db.Exec(stmt) - if err != nil { - log.Printf("%q: %s\n", err, stmt) - } - - return db, nil -} - //sheetInSlice is a helper which returns true // if a string is in a slice of strings. func sheetInSlice(list []string, key string) bool { diff --git a/reader/reader_test.go b/reader/reader_test.go index 0335b03..ca886bc 100644 --- a/reader/reader_test.go +++ b/reader/reader_test.go @@ -1,37 +1,9 @@ package reader import ( - "fmt" "testing" ) -func TestOpenSQLiteFile(t *testing.T) { - // db, err := sql.Open("sqlite3", "testdata/test.db") - db, err := SetupDB("testdata/test.db") - defer db.Close() - if err != nil { - t.Fatal("Expected to be able to set up the database.") - } - stmt := `insert into datamap(id, name) values(1,'cock')` - _, err = db.Exec(stmt) - if err != nil { - t.Errorf("Cannot add record to db") - } - rows, err := db.Query("select name from datamap") - if err != nil { - t.Errorf("Cannot run select statement") - } - defer rows.Close() - for rows.Next() { - var name string - err = rows.Scan(&name) - if err != nil { - t.Errorf("Cannot scan resulting row") - } - fmt.Println(name) - } -} - func TestReadDML(t *testing.T) { d, _ := ReadDML("testdata/datamap.csv") cases := []struct { |