From 61335700d31d42df7709c1fa8c5f9bcef62a16df Mon Sep 17 00:00:00 2001 From: "Grot (@grafanabot)" <43478413+grafanabot@users.noreply.github.com> Date: Thu, 3 Mar 2022 08:04:30 -0500 Subject: [PATCH] Unexport mocks, use aws-sdk-go helpers, rename test utilities file (#46107) (#46144) (cherry picked from commit 1255f8a76a2302647e9b43874a2bd352a1bd3558) Co-authored-by: Shirley <4163034+fridgepoet@users.noreply.github.com> --- pkg/tsdb/cloudwatch/annotation_query_test.go | 12 +++--- pkg/tsdb/cloudwatch/log_actions_test.go | 42 +++++++++---------- pkg/tsdb/cloudwatch/metric_find_query_test.go | 16 +++---- pkg/tsdb/cloudwatch/time_series_query_test.go | 4 +- .../{test_utils.go => utils_test.go} | 31 ++++++-------- 5 files changed, 49 insertions(+), 56 deletions(-) rename pkg/tsdb/cloudwatch/{test_utils.go => utils_test.go} (87%) diff --git a/pkg/tsdb/cloudwatch/annotation_query_test.go b/pkg/tsdb/cloudwatch/annotation_query_test.go index ad947c538c9..4463975bf59 100644 --- a/pkg/tsdb/cloudwatch/annotation_query_test.go +++ b/pkg/tsdb/cloudwatch/annotation_query_test.go @@ -22,13 +22,13 @@ func TestQuery_AnnotationQuery(t *testing.T) { NewCWClient = origNewCWClient }) - var client FakeCWAnnotationsClient + var client fakeCWAnnotationsClient NewCWClient = func(sess *session.Session) cloudwatchiface.CloudWatchAPI { return &client } t.Run("DescribeAlarmsForMetric is called with minimum parameters", func(t *testing.T) { - client = FakeCWAnnotationsClient{describeAlarmsForMetricOutput: &cloudwatch.DescribeAlarmsForMetricOutput{}} + client = fakeCWAnnotationsClient{describeAlarmsForMetricOutput: &cloudwatch.DescribeAlarmsForMetricOutput{}} im := datasource.NewInstanceManager(func(s backend.DataSourceInstanceSettings) (instancemgmt.Instance, error) { return datasourceInfo{}, nil }) @@ -62,7 +62,7 @@ func TestQuery_AnnotationQuery(t *testing.T) { }) t.Run("DescribeAlarms is called when prefixMatching is true", func(t *testing.T) { - client = FakeCWAnnotationsClient{describeAlarmsOutput: &cloudwatch.DescribeAlarmsOutput{}} + client = fakeCWAnnotationsClient{describeAlarmsOutput: &cloudwatch.DescribeAlarmsOutput{}} im := datasource.NewInstanceManager(func(s backend.DataSourceInstanceSettings) (instancemgmt.Instance, error) { return datasourceInfo{}, nil }) @@ -91,9 +91,9 @@ func TestQuery_AnnotationQuery(t *testing.T) { require.Len(t, client.calls.describeAlarms, 1) assert.Equal(t, &cloudwatch.DescribeAlarmsInput{ - MaxRecords: pointerInt64(100), - ActionPrefix: pointerString("some_action_prefix"), - AlarmNamePrefix: pointerString("some_alarm_name_prefix"), + MaxRecords: aws.Int64(100), + ActionPrefix: aws.String("some_action_prefix"), + AlarmNamePrefix: aws.String("some_alarm_name_prefix"), }, client.calls.describeAlarms[0]) }) } diff --git a/pkg/tsdb/cloudwatch/log_actions_test.go b/pkg/tsdb/cloudwatch/log_actions_test.go index bfe6780a52f..8a641c1b9b7 100644 --- a/pkg/tsdb/cloudwatch/log_actions_test.go +++ b/pkg/tsdb/cloudwatch/log_actions_test.go @@ -25,14 +25,14 @@ func TestQuery_DescribeLogGroups(t *testing.T) { NewCWLogsClient = origNewCWLogsClient }) - var cli FakeCWLogsClient + var cli fakeCWLogsClient NewCWLogsClient = func(sess *session.Session) cloudwatchlogsiface.CloudWatchLogsAPI { return &cli } t.Run("Empty log group name prefix", func(t *testing.T) { - cli = FakeCWLogsClient{ + cli = fakeCWLogsClient{ logGroups: cloudwatchlogs.DescribeLogGroupsOutput{ LogGroups: []*cloudwatchlogs.LogGroup{ { @@ -88,7 +88,7 @@ func TestQuery_DescribeLogGroups(t *testing.T) { }) t.Run("Non-empty log group name prefix", func(t *testing.T) { - cli = FakeCWLogsClient{ + cli = fakeCWLogsClient{ logGroups: cloudwatchlogs.DescribeLogGroupsOutput{ LogGroups: []*cloudwatchlogs.LogGroup{ { @@ -152,13 +152,13 @@ func TestQuery_GetLogGroupFields(t *testing.T) { NewCWLogsClient = origNewCWLogsClient }) - var cli FakeCWLogsClient + var cli fakeCWLogsClient NewCWLogsClient = func(sess *session.Session) cloudwatchlogsiface.CloudWatchLogsAPI { return &cli } - cli = FakeCWLogsClient{ + cli = fakeCWLogsClient{ logGroupFields: cloudwatchlogs.GetLogGroupFieldsOutput{ LogGroupFields: []*cloudwatchlogs.LogGroupField{ { @@ -229,14 +229,14 @@ func TestQuery_StartQuery(t *testing.T) { NewCWLogsClient = origNewCWLogsClient }) - var cli FakeCWLogsClient + var cli fakeCWLogsClient NewCWLogsClient = func(sess *session.Session) cloudwatchlogsiface.CloudWatchLogsAPI { return &cli } t.Run("invalid time range", func(t *testing.T) { - cli = FakeCWLogsClient{ + cli = fakeCWLogsClient{ logGroupFields: cloudwatchlogs.GetLogGroupFieldsOutput{ LogGroupFields: []*cloudwatchlogs.LogGroupField{ { @@ -289,7 +289,7 @@ func TestQuery_StartQuery(t *testing.T) { t.Run("valid time range", func(t *testing.T) { const refID = "A" - cli = FakeCWLogsClient{ + cli = fakeCWLogsClient{ logGroupFields: cloudwatchlogs.GetLogGroupFieldsOutput{ LogGroupFields: []*cloudwatchlogs.LogGroupField{ { @@ -363,14 +363,14 @@ func Test_executeStartQuery(t *testing.T) { NewCWLogsClient = origNewCWLogsClient }) - var cli FakeCWLogsClient + var cli fakeCWLogsClient NewCWLogsClient = func(sess *session.Session) cloudwatchlogsiface.CloudWatchLogsAPI { return &cli } t.Run("successfully parses information from JSON to StartQueryWithContext", func(t *testing.T) { - cli = FakeCWLogsClient{} + cli = fakeCWLogsClient{} im := datasource.NewInstanceManager(func(s backend.DataSourceInstanceSettings) (instancemgmt.Instance, error) { return datasourceInfo{}, nil }) @@ -396,17 +396,17 @@ func Test_executeStartQuery(t *testing.T) { assert.NoError(t, err) assert.Equal(t, []*cloudwatchlogs.StartQueryInput{ { - StartTime: pointerInt64(0), - EndTime: pointerInt64(1), - Limit: pointerInt64(12), - QueryString: pointerString("fields @timestamp,ltrim(@log) as __log__grafana_internal__,ltrim(@logStream) as __logstream__grafana_internal__|fields @message"), - LogGroupNames: []*string{pointerString("some name"), pointerString("another name")}, + StartTime: aws.Int64(0), + EndTime: aws.Int64(1), + Limit: aws.Int64(12), + QueryString: aws.String("fields @timestamp,ltrim(@log) as __log__grafana_internal__,ltrim(@logStream) as __logstream__grafana_internal__|fields @message"), + LogGroupNames: []*string{aws.String("some name"), aws.String("another name")}, }, }, cli.calls.startQueryWithContext) }) t.Run("cannot parse limit as float", func(t *testing.T) { - cli = FakeCWLogsClient{} + cli = fakeCWLogsClient{} im := datasource.NewInstanceManager(func(s backend.DataSourceInstanceSettings) (instancemgmt.Instance, error) { return datasourceInfo{}, nil }) @@ -433,7 +433,7 @@ func Test_executeStartQuery(t *testing.T) { }) t.Run("does not populate StartQueryInput.limit when no limit provided", func(t *testing.T) { - cli = FakeCWLogsClient{} + cli = fakeCWLogsClient{} im := datasource.NewInstanceManager(func(s backend.DataSourceInstanceSettings) (instancemgmt.Instance, error) { return datasourceInfo{}, nil }) @@ -465,13 +465,13 @@ func TestQuery_StopQuery(t *testing.T) { NewCWLogsClient = origNewCWLogsClient }) - var cli FakeCWLogsClient + var cli fakeCWLogsClient NewCWLogsClient = func(sess *session.Session) cloudwatchlogsiface.CloudWatchLogsAPI { return &cli } - cli = FakeCWLogsClient{ + cli = fakeCWLogsClient{ logGroupFields: cloudwatchlogs.GetLogGroupFieldsOutput{ LogGroupFields: []*cloudwatchlogs.LogGroupField{ { @@ -537,14 +537,14 @@ func TestQuery_GetQueryResults(t *testing.T) { NewCWLogsClient = origNewCWLogsClient }) - var cli FakeCWLogsClient + var cli fakeCWLogsClient NewCWLogsClient = func(sess *session.Session) cloudwatchlogsiface.CloudWatchLogsAPI { return &cli } const refID = "A" - cli = FakeCWLogsClient{ + cli = fakeCWLogsClient{ queryResults: cloudwatchlogs.GetQueryResultsOutput{ Results: [][]*cloudwatchlogs.ResultField{ { diff --git a/pkg/tsdb/cloudwatch/metric_find_query_test.go b/pkg/tsdb/cloudwatch/metric_find_query_test.go index 705bb04c328..17ed1f26191 100644 --- a/pkg/tsdb/cloudwatch/metric_find_query_test.go +++ b/pkg/tsdb/cloudwatch/metric_find_query_test.go @@ -29,14 +29,14 @@ func TestQuery_Metrics(t *testing.T) { NewCWClient = origNewCWClient }) - var cwClient FakeCWClient + var cwClient fakeCWClient NewCWClient = func(sess *session.Session) cloudwatchiface.CloudWatchAPI { return cwClient } t.Run("Custom metrics", func(t *testing.T) { - cwClient = FakeCWClient{ + cwClient = fakeCWClient{ Metrics: []*cloudwatch.Metric{ { MetricName: aws.String("Test_MetricName"), @@ -91,7 +91,7 @@ func TestQuery_Metrics(t *testing.T) { }) t.Run("Dimension keys for custom metrics", func(t *testing.T) { - cwClient = FakeCWClient{ + cwClient = fakeCWClient{ Metrics: []*cloudwatch.Metric{ { MetricName: aws.String("Test_MetricName"), @@ -503,7 +503,7 @@ func TestQuery_GetDimensionKeys(t *testing.T) { NewCWClient = origNewCWClient }) - var client FakeCWClient + var client fakeCWClient NewCWClient = func(sess *session.Session) cloudwatchiface.CloudWatchAPI { return client @@ -521,7 +521,7 @@ func TestQuery_GetDimensionKeys(t *testing.T) { } t.Run("should fetch dimension keys from list metrics api and return unique dimensions when a dimension filter is specified", func(t *testing.T) { - client = FakeCWClient{Metrics: metrics, MetricsPerPage: 2} + client = fakeCWClient{Metrics: metrics, MetricsPerPage: 2} im := datasource.NewInstanceManager(func(s backend.DataSourceInstanceSettings) (instancemgmt.Instance, error) { return datasourceInfo{}, nil }) @@ -662,7 +662,7 @@ func TestQuery_ListMetricsPagination(t *testing.T) { NewCWClient = origNewCWClient }) - var client FakeCWClient + var client fakeCWClient NewCWClient = func(sess *session.Session) cloudwatchiface.CloudWatchAPI { return client @@ -682,7 +682,7 @@ func TestQuery_ListMetricsPagination(t *testing.T) { } t.Run("List Metrics and page limit is reached", func(t *testing.T) { - client = FakeCWClient{Metrics: metrics, MetricsPerPage: 2} + client = fakeCWClient{Metrics: metrics, MetricsPerPage: 2} im := datasource.NewInstanceManager(func(s backend.DataSourceInstanceSettings) (instancemgmt.Instance, error) { return datasourceInfo{}, nil }) @@ -697,7 +697,7 @@ func TestQuery_ListMetricsPagination(t *testing.T) { }) t.Run("List Metrics and page limit is not reached", func(t *testing.T) { - client = FakeCWClient{Metrics: metrics, MetricsPerPage: 2} + client = fakeCWClient{Metrics: metrics, MetricsPerPage: 2} im := datasource.NewInstanceManager(func(s backend.DataSourceInstanceSettings) (instancemgmt.Instance, error) { return datasourceInfo{}, nil }) diff --git a/pkg/tsdb/cloudwatch/time_series_query_test.go b/pkg/tsdb/cloudwatch/time_series_query_test.go index 8e5c8d1535d..c9aeddb8872 100644 --- a/pkg/tsdb/cloudwatch/time_series_query_test.go +++ b/pkg/tsdb/cloudwatch/time_series_query_test.go @@ -27,14 +27,14 @@ func TestTimeSeriesQuery(t *testing.T) { NewCWClient = origNewCWClient }) - var cwClient FakeCWClient + var cwClient fakeCWClient NewCWClient = func(sess *session.Session) cloudwatchiface.CloudWatchAPI { return cwClient } t.Run("Custom metrics", func(t *testing.T) { - cwClient = FakeCWClient{ + cwClient = fakeCWClient{ CloudWatchAPI: nil, GetMetricDataOutput: cloudwatch.GetMetricDataOutput{ NextToken: nil, diff --git a/pkg/tsdb/cloudwatch/test_utils.go b/pkg/tsdb/cloudwatch/utils_test.go similarity index 87% rename from pkg/tsdb/cloudwatch/test_utils.go rename to pkg/tsdb/cloudwatch/utils_test.go index d8c8ce1f07a..377170a940c 100644 --- a/pkg/tsdb/cloudwatch/test_utils.go +++ b/pkg/tsdb/cloudwatch/utils_test.go @@ -18,7 +18,7 @@ import ( "github.com/grafana/grafana/pkg/setting" ) -type FakeCWLogsClient struct { +type fakeCWLogsClient struct { cloudwatchlogsiface.CloudWatchLogsAPI calls logsQueryCalls @@ -32,11 +32,11 @@ type logsQueryCalls struct { startQueryWithContext []*cloudwatchlogs.StartQueryInput } -func (m *FakeCWLogsClient) GetQueryResultsWithContext(ctx context.Context, input *cloudwatchlogs.GetQueryResultsInput, option ...request.Option) (*cloudwatchlogs.GetQueryResultsOutput, error) { +func (m *fakeCWLogsClient) GetQueryResultsWithContext(ctx context.Context, input *cloudwatchlogs.GetQueryResultsInput, option ...request.Option) (*cloudwatchlogs.GetQueryResultsOutput, error) { return &m.queryResults, nil } -func (m *FakeCWLogsClient) StartQueryWithContext(ctx context.Context, input *cloudwatchlogs.StartQueryInput, option ...request.Option) (*cloudwatchlogs.StartQueryOutput, error) { +func (m *fakeCWLogsClient) StartQueryWithContext(ctx context.Context, input *cloudwatchlogs.StartQueryInput, option ...request.Option) (*cloudwatchlogs.StartQueryOutput, error) { m.calls.startQueryWithContext = append(m.calls.startQueryWithContext, input) return &cloudwatchlogs.StartQueryOutput{ @@ -44,21 +44,21 @@ func (m *FakeCWLogsClient) StartQueryWithContext(ctx context.Context, input *clo }, nil } -func (m *FakeCWLogsClient) StopQueryWithContext(ctx context.Context, input *cloudwatchlogs.StopQueryInput, option ...request.Option) (*cloudwatchlogs.StopQueryOutput, error) { +func (m *fakeCWLogsClient) StopQueryWithContext(ctx context.Context, input *cloudwatchlogs.StopQueryInput, option ...request.Option) (*cloudwatchlogs.StopQueryOutput, error) { return &cloudwatchlogs.StopQueryOutput{ Success: aws.Bool(true), }, nil } -func (m *FakeCWLogsClient) DescribeLogGroupsWithContext(ctx context.Context, input *cloudwatchlogs.DescribeLogGroupsInput, option ...request.Option) (*cloudwatchlogs.DescribeLogGroupsOutput, error) { +func (m *fakeCWLogsClient) DescribeLogGroupsWithContext(ctx context.Context, input *cloudwatchlogs.DescribeLogGroupsInput, option ...request.Option) (*cloudwatchlogs.DescribeLogGroupsOutput, error) { return &m.logGroups, nil } -func (m *FakeCWLogsClient) GetLogGroupFieldsWithContext(ctx context.Context, input *cloudwatchlogs.GetLogGroupFieldsInput, option ...request.Option) (*cloudwatchlogs.GetLogGroupFieldsOutput, error) { +func (m *fakeCWLogsClient) GetLogGroupFieldsWithContext(ctx context.Context, input *cloudwatchlogs.GetLogGroupFieldsInput, option ...request.Option) (*cloudwatchlogs.GetLogGroupFieldsOutput, error) { return &m.logGroupFields, nil } -type FakeCWClient struct { +type fakeCWClient struct { cloudwatchiface.CloudWatchAPI cloudwatch.GetMetricDataOutput @@ -67,11 +67,11 @@ type FakeCWClient struct { MetricsPerPage int } -func (c FakeCWClient) GetMetricDataWithContext(aws.Context, *cloudwatch.GetMetricDataInput, ...request.Option) (*cloudwatch.GetMetricDataOutput, error) { +func (c fakeCWClient) GetMetricDataWithContext(aws.Context, *cloudwatch.GetMetricDataInput, ...request.Option) (*cloudwatch.GetMetricDataOutput, error) { return &c.GetMetricDataOutput, nil } -func (c FakeCWClient) ListMetricsPages(input *cloudwatch.ListMetricsInput, fn func(*cloudwatch.ListMetricsOutput, bool) bool) error { +func (c fakeCWClient) ListMetricsPages(input *cloudwatch.ListMetricsInput, fn func(*cloudwatch.ListMetricsOutput, bool) bool) error { if c.MetricsPerPage == 0 { c.MetricsPerPage = 1000 } @@ -88,7 +88,7 @@ func (c FakeCWClient) ListMetricsPages(input *cloudwatch.ListMetricsInput, fn fu return nil } -type FakeCWAnnotationsClient struct { +type fakeCWAnnotationsClient struct { cloudwatchiface.CloudWatchAPI calls annontationsQueryCalls @@ -101,13 +101,13 @@ type annontationsQueryCalls struct { describeAlarms []*cloudwatch.DescribeAlarmsInput } -func (c *FakeCWAnnotationsClient) DescribeAlarmsForMetric(params *cloudwatch.DescribeAlarmsForMetricInput) (*cloudwatch.DescribeAlarmsForMetricOutput, error) { +func (c *fakeCWAnnotationsClient) DescribeAlarmsForMetric(params *cloudwatch.DescribeAlarmsForMetricInput) (*cloudwatch.DescribeAlarmsForMetricOutput, error) { c.calls.describeAlarmsForMetric = append(c.calls.describeAlarmsForMetric, params) return c.describeAlarmsForMetricOutput, nil } -func (c *FakeCWAnnotationsClient) DescribeAlarms(params *cloudwatch.DescribeAlarmsInput) (*cloudwatch.DescribeAlarmsOutput, error) { +func (c *fakeCWAnnotationsClient) DescribeAlarms(params *cloudwatch.DescribeAlarmsInput) (*cloudwatch.DescribeAlarmsOutput, error) { c.calls.describeAlarms = append(c.calls.describeAlarms, params) return c.describeAlarmsOutput, nil @@ -201,10 +201,3 @@ func (s fakeSessionCache) GetSession(c awsds.SessionConfig) (*session.Session, e Config: &aws.Config{}, }, nil } - -func pointerString(s string) *string { - return &s -} -func pointerInt64(i int64) *int64 { - return &i -}