mirror of
https://github.com/DATA-DOG/go-sqlmock.git
synced 2025-03-19 20:57:50 +02:00
Merge pull request #315 from IvoGoman/fix/invalidcsvstring
fixes csv parse errors being silently ignored
This commit is contained in:
commit
3476f31d8f
6
rows.go
6
rows.go
@ -4,6 +4,7 @@ import (
|
||||
"bytes"
|
||||
"database/sql/driver"
|
||||
"encoding/csv"
|
||||
"errors"
|
||||
"fmt"
|
||||
"io"
|
||||
"strings"
|
||||
@ -208,9 +209,12 @@ func (r *Rows) FromCSVString(s string) *Rows {
|
||||
|
||||
for {
|
||||
res, err := csvReader.Read()
|
||||
if err != nil || res == nil {
|
||||
if err != nil {
|
||||
if errors.Is(err, io.EOF) {
|
||||
break
|
||||
}
|
||||
panic(fmt.Sprintf("Parsing CSV string failed: %s", err.Error()))
|
||||
}
|
||||
|
||||
row := make([]driver.Value, len(r.cols))
|
||||
for i, v := range res {
|
||||
|
@ -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) {
|
||||
// Open new mock database
|
||||
db, mock, err := New()
|
||||
|
Loading…
x
Reference in New Issue
Block a user