aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--db/setup.go27
-rw-r--r--db/setup_test.go29
-rw-r--r--db/testdata/test.dbbin0 -> 12288 bytes
-rw-r--r--reader/reader.go17
-rw-r--r--reader/reader_test.go28
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
new file mode 100644
index 0000000..8a7fa2f
--- /dev/null
+++ b/db/testdata/test.db
Binary files differ
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 {