mirror of
https://github.com/DATA-DOG/go-sqlmock.git
synced 2025-03-17 20:48:01 +02:00
fixes csv parse errors being silently ignored
This commit is contained in:
parent
44e746a20e
commit
a1ad26d110
8
rows.go
8
rows.go
@ -4,6 +4,7 @@ import (
|
|||||||
"bytes"
|
"bytes"
|
||||||
"database/sql/driver"
|
"database/sql/driver"
|
||||||
"encoding/csv"
|
"encoding/csv"
|
||||||
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
"strings"
|
"strings"
|
||||||
@ -208,8 +209,11 @@ func (r *Rows) FromCSVString(s string) *Rows {
|
|||||||
|
|
||||||
for {
|
for {
|
||||||
res, err := csvReader.Read()
|
res, err := csvReader.Read()
|
||||||
if err != nil || res == nil {
|
if err != nil {
|
||||||
break
|
if errors.Is(err, io.EOF) {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
panic(fmt.Sprintf("Parsing CSV string failed: %s", err.Error()))
|
||||||
}
|
}
|
||||||
|
|
||||||
row := make([]driver.Value, len(r.cols))
|
row := make([]driver.Value, len(r.cols))
|
||||||
|
@ -461,6 +461,15 @@ func TestCSVRowParser(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestCSVParserInvalidInput(t *testing.T) {
|
||||||
|
defer func() {
|
||||||
|
recover()
|
||||||
|
}()
|
||||||
|
_ = NewRows([]string{"col1", "col2"}).FromCSVString("a,\"NULL\"\"")
|
||||||
|
// shouldn't reach here
|
||||||
|
t.Error("expected panic from parsing invalid CSV")
|
||||||
|
}
|
||||||
|
|
||||||
func TestWrongNumberOfValues(t *testing.T) {
|
func TestWrongNumberOfValues(t *testing.T) {
|
||||||
// Open new mock database
|
// Open new mock database
|
||||||
db, mock, err := New()
|
db, mock, err := New()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user