Chore: Rewrite opentsdb test to standard library (#29792)

This commit is contained in:
Emil Hessman
2020-12-14 09:33:25 +01:00
committed by GitHub
parent 2b5a88bf8c
commit cedaf41a36

View File

@ -5,14 +5,13 @@ import (
"github.com/grafana/grafana/pkg/components/simplejson" "github.com/grafana/grafana/pkg/components/simplejson"
"github.com/grafana/grafana/pkg/tsdb" "github.com/grafana/grafana/pkg/tsdb"
. "github.com/smartystreets/goconvey/convey" "github.com/stretchr/testify/require"
) )
func TestOpenTsdbExecutor(t *testing.T) { func TestOpenTsdbExecutor(t *testing.T) {
Convey("OpenTsdb query testing", t, func() {
exec := &OpenTsdbExecutor{} exec := &OpenTsdbExecutor{}
Convey("Build metric with downsampling enabled", func() { t.Run("Build metric with downsampling enabled", func(t *testing.T) {
query := &tsdb.Query{ query := &tsdb.Query{
Model: simplejson.New(), Model: simplejson.New(),
} }
@ -26,13 +25,13 @@ func TestOpenTsdbExecutor(t *testing.T) {
metric := exec.buildMetric(query) metric := exec.buildMetric(query)
So(len(metric), ShouldEqual, 3) require.Len(t, metric, 3)
So(metric["metric"], ShouldEqual, "cpu.average.percent") require.Equal(t, "cpu.average.percent", metric["metric"])
So(metric["aggregator"], ShouldEqual, "avg") require.Equal(t, "avg", metric["aggregator"])
So(metric["downsample"], ShouldEqual, "1m-avg") require.Equal(t, "1m-avg", metric["downsample"])
}) })
Convey("Build metric with downsampling disabled", func() { t.Run("Build metric with downsampling disabled", func(t *testing.T) {
query := &tsdb.Query{ query := &tsdb.Query{
Model: simplejson.New(), Model: simplejson.New(),
} }
@ -46,12 +45,12 @@ func TestOpenTsdbExecutor(t *testing.T) {
metric := exec.buildMetric(query) metric := exec.buildMetric(query)
So(len(metric), ShouldEqual, 2) require.Len(t, metric, 2)
So(metric["metric"], ShouldEqual, "cpu.average.percent") require.Equal(t, "cpu.average.percent", metric["metric"])
So(metric["aggregator"], ShouldEqual, "avg") require.Equal(t, "avg", metric["aggregator"])
}) })
Convey("Build metric with downsampling enabled with params", func() { t.Run("Build metric with downsampling enabled with params", func(t *testing.T) {
query := &tsdb.Query{ query := &tsdb.Query{
Model: simplejson.New(), Model: simplejson.New(),
} }
@ -65,13 +64,13 @@ func TestOpenTsdbExecutor(t *testing.T) {
metric := exec.buildMetric(query) metric := exec.buildMetric(query)
So(len(metric), ShouldEqual, 3) require.Len(t, metric, 3)
So(metric["metric"], ShouldEqual, "cpu.average.percent") require.Equal(t, "cpu.average.percent", metric["metric"])
So(metric["aggregator"], ShouldEqual, "avg") require.Equal(t, "avg", metric["aggregator"])
So(metric["downsample"], ShouldEqual, "5m-sum-null") require.Equal(t, "5m-sum-null", metric["downsample"])
}) })
Convey("Build metric with tags with downsampling disabled", func() { t.Run("Build metric with tags with downsampling disabled", func(t *testing.T) {
query := &tsdb.Query{ query := &tsdb.Query{
Model: simplejson.New(), Model: simplejson.New(),
} }
@ -90,17 +89,19 @@ func TestOpenTsdbExecutor(t *testing.T) {
metric := exec.buildMetric(query) metric := exec.buildMetric(query)
So(len(metric), ShouldEqual, 3) require.Len(t, metric, 3)
So(metric["metric"], ShouldEqual, "cpu.average.percent") require.Equal(t, "cpu.average.percent", metric["metric"])
So(metric["aggregator"], ShouldEqual, "avg") require.Equal(t, "avg", metric["aggregator"])
So(metric["downsample"], ShouldEqual, nil) require.Nil(t, metric["downsample"])
So(len(metric["tags"].(map[string]interface{})), ShouldEqual, 2)
So(metric["tags"].(map[string]interface{})["env"], ShouldEqual, "prod") metricTags := metric["tags"].(map[string]interface{})
So(metric["tags"].(map[string]interface{})["app"], ShouldEqual, "grafana") require.Len(t, metricTags, 2)
So(metric["tags"].(map[string]interface{})["ip"], ShouldEqual, nil) require.Equal(t, "prod", metricTags["env"])
require.Equal(t, "grafana", metricTags["app"])
require.Nil(t, metricTags["ip"])
}) })
Convey("Build metric with rate enabled but counter disabled", func() { t.Run("Build metric with rate enabled but counter disabled", func(t *testing.T) {
query := &tsdb.Query{ query := &tsdb.Query{
Model: simplejson.New(), Model: simplejson.New(),
} }
@ -118,18 +119,21 @@ func TestOpenTsdbExecutor(t *testing.T) {
metric := exec.buildMetric(query) metric := exec.buildMetric(query)
So(len(metric), ShouldEqual, 5) require.Len(t, metric, 5)
So(metric["metric"], ShouldEqual, "cpu.average.percent") require.Equal(t, "cpu.average.percent", metric["metric"])
So(metric["aggregator"], ShouldEqual, "avg") require.Equal(t, "avg", metric["aggregator"])
So(len(metric["tags"].(map[string]interface{})), ShouldEqual, 2)
So(metric["tags"].(map[string]interface{})["env"], ShouldEqual, "prod") metricTags := metric["tags"].(map[string]interface{})
So(metric["tags"].(map[string]interface{})["app"], ShouldEqual, "grafana") require.Len(t, metricTags, 2)
So(metric["tags"].(map[string]interface{})["ip"], ShouldEqual, nil) require.Equal(t, "prod", metricTags["env"])
So(metric["rate"], ShouldEqual, true) require.Equal(t, "grafana", metricTags["app"])
So(metric["rateOptions"].(map[string]interface{})["counter"], ShouldEqual, false) require.Nil(t, metricTags["ip"])
require.True(t, metric["rate"].(bool))
require.False(t, metric["rateOptions"].(map[string]interface{})["counter"].(bool))
}) })
Convey("Build metric with rate and counter enabled", func() { t.Run("Build metric with rate and counter enabled", func(t *testing.T) {
query := &tsdb.Query{ query := &tsdb.Query{
Model: simplejson.New(), Model: simplejson.New(),
} }
@ -149,18 +153,21 @@ func TestOpenTsdbExecutor(t *testing.T) {
metric := exec.buildMetric(query) metric := exec.buildMetric(query)
So(len(metric), ShouldEqual, 5) require.Len(t, metric, 5)
So(metric["metric"], ShouldEqual, "cpu.average.percent") require.Equal(t, "cpu.average.percent", metric["metric"])
So(metric["aggregator"], ShouldEqual, "avg") require.Equal(t, "avg", metric["aggregator"])
So(len(metric["tags"].(map[string]interface{})), ShouldEqual, 2)
So(metric["tags"].(map[string]interface{})["env"], ShouldEqual, "prod") metricTags := metric["tags"].(map[string]interface{})
So(metric["tags"].(map[string]interface{})["app"], ShouldEqual, "grafana") require.Len(t, metricTags, 2)
So(metric["tags"].(map[string]interface{})["ip"], ShouldEqual, nil) require.Equal(t, "prod", metricTags["env"])
So(metric["rate"], ShouldEqual, true) require.Equal(t, "grafana", metricTags["app"])
So(len(metric["rateOptions"].(map[string]interface{})), ShouldEqual, 3) require.Nil(t, metricTags["ip"])
So(metric["rateOptions"].(map[string]interface{})["counter"], ShouldEqual, true)
So(metric["rateOptions"].(map[string]interface{})["counterMax"], ShouldEqual, 45) require.True(t, metric["rate"].(bool))
So(metric["rateOptions"].(map[string]interface{})["resetValue"], ShouldEqual, 60) metricRateOptions := metric["rateOptions"].(map[string]interface{})
}) require.Len(t, metricRateOptions, 3)
require.True(t, metricRateOptions["counter"].(bool))
require.Equal(t, float64(45), metricRateOptions["counterMax"])
require.Equal(t, float64(60), metricRateOptions["resetValue"])
}) })
} }