|
|
|
|
@ -2,6 +2,7 @@ package influxdb |
|
|
|
|
|
|
|
|
|
import ( |
|
|
|
|
"encoding/json" |
|
|
|
|
"fmt" |
|
|
|
|
"testing" |
|
|
|
|
|
|
|
|
|
"github.com/grafana/grafana/pkg/setting" |
|
|
|
|
@ -172,5 +173,55 @@ func TestInfluxdbResponseParser(t *testing.T) { |
|
|
|
|
}) |
|
|
|
|
}) |
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
Convey("Response parser with errors", func() { |
|
|
|
|
parser := &ResponseParser{} |
|
|
|
|
|
|
|
|
|
cfg := setting.NewCfg() |
|
|
|
|
err := cfg.Load(&setting.CommandLineArgs{ |
|
|
|
|
HomePath: "../../../", |
|
|
|
|
}) |
|
|
|
|
So(err, ShouldBeNil) |
|
|
|
|
|
|
|
|
|
response := &Response{ |
|
|
|
|
Results: []Result{ |
|
|
|
|
{ |
|
|
|
|
Series: []Row{ |
|
|
|
|
{ |
|
|
|
|
Name: "cpu", |
|
|
|
|
Columns: []string{"time", "mean", "sum"}, |
|
|
|
|
Tags: map[string]string{"datacenter": "America"}, |
|
|
|
|
Values: [][]interface{}{ |
|
|
|
|
{json.Number("111"), json.Number("222"), json.Number("333")}, |
|
|
|
|
{json.Number("111"), json.Number("222"), json.Number("333")}, |
|
|
|
|
{json.Number("111"), json.Number("null"), json.Number("333")}, |
|
|
|
|
}, |
|
|
|
|
}, |
|
|
|
|
}, |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
Err: fmt.Errorf("query-timeout limit exceeded"), |
|
|
|
|
}, |
|
|
|
|
}, |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
query := &Query{} |
|
|
|
|
|
|
|
|
|
result := parser.Parse(response, query) |
|
|
|
|
|
|
|
|
|
Convey("can parse all series", func() { |
|
|
|
|
So(len(result.Series), ShouldEqual, 2) |
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
Convey("can parse all points", func() { |
|
|
|
|
So(len(result.Series[0].Points), ShouldEqual, 3) |
|
|
|
|
So(len(result.Series[1].Points), ShouldEqual, 3) |
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
Convey("can parse errors ", func() { |
|
|
|
|
So(result.Error, ShouldNotBeNil) |
|
|
|
|
So(result.Error.Error(), ShouldEqual, "query-timeout limit exceeded") |
|
|
|
|
}) |
|
|
|
|
}) |
|
|
|
|
}) |
|
|
|
|
} |
|
|
|
|
|