From cb9d9fe07576b275e06dcbc7092f9768513e5199 Mon Sep 17 00:00:00 2001 From: Joshua Powers Date: Tue, 24 May 2022 09:30:19 -0600 Subject: [PATCH] test: migrate redis to test-containers (#11174) --- docker-compose.yml | 4 ---- plugins/inputs/redis/redis_test.go | 16 ++++++++++++++-- .../inputs/redis_sentinel/redis_sentinel_test.go | 16 ++++++++++++++-- 3 files changed, 28 insertions(+), 8 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 2790c6975..79981c12a 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -56,10 +56,6 @@ services: ports: - "15672:15672" - "5672:5672" - redis: - image: redis:alpine - ports: - - "6379:6379" nsq: image: nsqio/nsq ports: diff --git a/plugins/inputs/redis/redis_test.go b/plugins/inputs/redis/redis_test.go index a7ca994c5..06332d63b 100644 --- a/plugins/inputs/redis/redis_test.go +++ b/plugins/inputs/redis/redis_test.go @@ -9,6 +9,7 @@ import ( "github.com/go-redis/redis" "github.com/stretchr/testify/require" + "github.com/testcontainers/testcontainers-go/wait" "github.com/influxdata/telegraf/testutil" ) @@ -33,7 +34,18 @@ func TestRedisConnectIntegration(t *testing.T) { t.Skip("Skipping integration test in short mode") } - addr := fmt.Sprintf(testutil.GetLocalHost() + ":6379") + container := testutil.Container{ + Image: "redis:alpine", + ExposedPorts: []string{"6379"}, + WaitingFor: wait.ForListeningPort("6379/tcp"), + } + err := container.Start() + require.NoError(t, err, "failed to start container") + defer func() { + require.NoError(t, container.Terminate(), "terminating container failed") + }() + + addr := fmt.Sprintf("%s:%s", container.Address, container.Port) r := &Redis{ Log: testutil.Logger{}, @@ -42,7 +54,7 @@ func TestRedisConnectIntegration(t *testing.T) { var acc testutil.Accumulator - err := acc.GatherError(r.Gather) + err = acc.GatherError(r.Gather) require.NoError(t, err) } diff --git a/plugins/inputs/redis_sentinel/redis_sentinel_test.go b/plugins/inputs/redis_sentinel/redis_sentinel_test.go index 0cc8c1551..e845218f1 100644 --- a/plugins/inputs/redis_sentinel/redis_sentinel_test.go +++ b/plugins/inputs/redis_sentinel/redis_sentinel_test.go @@ -10,6 +10,7 @@ import ( "github.com/influxdata/telegraf" "github.com/influxdata/telegraf/testutil" + "github.com/testcontainers/testcontainers-go/wait" "github.com/stretchr/testify/require" ) @@ -21,7 +22,18 @@ func TestRedisSentinelConnect(t *testing.T) { t.Skip("Skipping integration test in short mode") } - addr := fmt.Sprintf("tcp://" + testutil.GetLocalHost() + ":26379") + container := testutil.Container{ + Image: "redis:alpine", + ExposedPorts: []string{"6379"}, + WaitingFor: wait.ForListeningPort("6379/tcp"), + } + err := container.Start() + require.NoError(t, err, "failed to start container") + defer func() { + require.NoError(t, container.Terminate(), "terminating container failed") + }() + + addr := fmt.Sprintf("tcp://%s:%s", container.Address, container.Port) r := &RedisSentinel{ Servers: []string{addr}, @@ -29,7 +41,7 @@ func TestRedisSentinelConnect(t *testing.T) { var acc testutil.Accumulator - err := acc.GatherError(r.Gather) + err = acc.GatherError(r.Gather) require.NoError(t, err) }