Skip to content

Commit 8af80e3

Browse files
Stop using ioutil package
Signed-off-by: Thomas Poignant <[email protected]>
1 parent 34b159e commit 8af80e3

26 files changed

+77
-87
lines changed

exporter/fileexporter/exporter_test.go

+4-5
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package fileexporter_test
22

33
import (
44
"context"
5-
"io/ioutil"
65
"log"
76
"os"
87
"testing"
@@ -215,7 +214,7 @@ func TestFile_Export(t *testing.T) {
215214
t.Run(tt.name, func(t *testing.T) {
216215
outputDir := tt.fields.OutputDir
217216
if tt.fields.OutputDir == "" {
218-
outputDir, _ = ioutil.TempDir("", "fileExporter")
217+
outputDir, _ = os.MkdirTemp("", "fileExporter")
219218
defer os.Remove(outputDir)
220219
}
221220

@@ -231,12 +230,12 @@ func TestFile_Export(t *testing.T) {
231230
return
232231
}
233232

234-
files, _ := ioutil.ReadDir(outputDir)
233+
files, _ := os.ReadDir(outputDir)
235234
assert.Equal(t, 1, len(files), "Directory %s should have only one file", outputDir)
236235
assert.Regexp(t, tt.expected.fileNameRegex, files[0].Name(), "Invalid file name")
237236

238-
expectedContent, _ := ioutil.ReadFile(tt.expected.content)
239-
gotContent, _ := ioutil.ReadFile(outputDir + "/" + files[0].Name())
237+
expectedContent, _ := os.ReadFile(tt.expected.content)
238+
gotContent, _ := os.ReadFile(outputDir + "/" + files[0].Name())
240239
assert.Equal(t, string(expectedContent), string(gotContent), "Wrong content in the output file")
241240
})
242241
}

exporter/gcstorageexporter/exporter.go

+2-3
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import (
44
"context"
55
"fmt"
66
"io"
7-
"io/ioutil"
87
"log"
98
"os"
109

@@ -64,7 +63,7 @@ func (f *Exporter) Export(ctx context.Context, logger *log.Logger, featureEvents
6463
}
6564

6665
// Create a temp directory to store the file we will produce
67-
outputDir, err := ioutil.TempDir("", "go_feature_flag_GoogleCloudStorage_export")
66+
outputDir, err := os.MkdirTemp("", "go_feature_flag_GoogleCloudStorage_export")
6867
if err != nil {
6968
return err
7069
}
@@ -84,7 +83,7 @@ func (f *Exporter) Export(ctx context.Context, logger *log.Logger, featureEvents
8483
}
8584

8685
// Upload all the files in the folder to google storage
87-
files, err := ioutil.ReadDir(outputDir)
86+
files, err := os.ReadDir(outputDir)
8887
if err != nil {
8988
return err
9089
}

exporter/logsexporter/exporter_test.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ package logsexporter_test
22

33
import (
44
"context"
5-
"io/ioutil"
65
"log"
6+
"os"
77
"testing"
88

99
"github.com/thomaspoignant/go-feature-flag/exporter/logsexporter"
@@ -86,7 +86,7 @@ func TestLog_Export(t *testing.T) {
8686
LogFormat: tt.fields.LogFormat,
8787
}
8888

89-
logFile, _ := ioutil.TempFile("", "")
89+
logFile, _ := os.CreateTemp("", "")
9090
logger := log.New(logFile, "", 0)
9191

9292
err := f.Export(context.Background(), logger, tt.args.featureEvents)
@@ -98,7 +98,7 @@ func TestLog_Export(t *testing.T) {
9898

9999
assert.NoError(t, err, "Exporter exporter should not throw errors")
100100

101-
logContent, _ := ioutil.ReadFile(logFile.Name())
101+
logContent, _ := os.ReadFile(logFile.Name())
102102
assert.Regexp(t, tt.expectedLog, string(logContent))
103103
})
104104
}

exporter/s3exporter/exporter.go

+2-3
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package s3exporter
22

33
import (
44
"context"
5-
"io/ioutil"
65
"log"
76
"os"
87
"sync"
@@ -69,7 +68,7 @@ func (f *Exporter) Export(ctx context.Context, logger *log.Logger, featureEvents
6968
}
7069

7170
// Create a temp directory to store the file we will produce
72-
outputDir, err := ioutil.TempDir("", "go_feature_flag_s3_export")
71+
outputDir, err := os.MkdirTemp("", "go_feature_flag_s3_export")
7372
if err != nil {
7473
return err
7574
}
@@ -89,7 +88,7 @@ func (f *Exporter) Export(ctx context.Context, logger *log.Logger, featureEvents
8988
}
9089

9190
// Upload all the files in the folder to Exporter
92-
files, err := ioutil.ReadDir(outputDir)
91+
files, err := os.ReadDir(outputDir)
9392
if err != nil {
9493
return err
9594
}

exporter/s3exporter/exporter_test.go

+1-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package s3exporter
22

33
import (
44
"context"
5-
"io/ioutil"
65
"log"
76
"os"
87
"testing"
@@ -187,7 +186,7 @@ func TestS3_Export(t *testing.T) {
187186

188187
assert.NoError(t, err, "Export should not error")
189188
assert.Equal(t, 1, len(s3ManagerMock.S3ManagerMockFileSystem), "we should have 1 file in our mock")
190-
expectedContent, _ := ioutil.ReadFile(tt.expectedFile)
189+
expectedContent, _ := os.ReadFile(tt.expectedFile)
191190
for k, v := range s3ManagerMock.S3ManagerMockFileSystem {
192191
assert.Equal(t, string(expectedContent), v, "invalid file content")
193192
assert.Regexp(t, tt.expectedName, k, "invalid file name")

exporter/webhookexporter/exporter.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import (
55
"context"
66
"encoding/json"
77
"fmt"
8-
"io/ioutil"
8+
"io"
99
"log"
1010
"net/http"
1111
"os"
@@ -94,7 +94,7 @@ func (f *Exporter) Export(ctx context.Context, logger *log.Logger, featureEvents
9494
}
9595

9696
request, err := http.NewRequestWithContext(
97-
ctx, http.MethodPost, f.EndpointURL, ioutil.NopCloser(bytes.NewReader(payload)))
97+
ctx, http.MethodPost, f.EndpointURL, io.NopCloser(bytes.NewReader(payload)))
9898
if err != nil {
9999
return err
100100
}

exporter/webhookexporter/exporter_test.go

+1-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ package webhookexporter
33
import (
44
"context"
55
"fmt"
6-
"io/ioutil"
76
"log"
87
"os"
98
"testing"
@@ -166,7 +165,7 @@ func TestWebhook_Export(t *testing.T) {
166165

167166
assert.NoError(t, err)
168167
if tt.expected.bodyFilePath != "" {
169-
c, err := ioutil.ReadFile(tt.expected.bodyFilePath)
168+
c, err := os.ReadFile(tt.expected.bodyFilePath)
170169
fmt.Println(err)
171170
assert.JSONEq(t, string(c), tt.fields.httpClient.Body)
172171
}

feature_flag_bench_test.go

+4-4
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package ffclient_test
33
import (
44
"bytes"
55
"fmt"
6-
"io/ioutil"
6+
"os"
77
"testing"
88
"text/template"
99
"time"
@@ -19,7 +19,7 @@ var client *ffclient.GoFeatureFlag
1919

2020
// init is creating a flag file for this test with the expected date.
2121
func init() {
22-
content, _ := ioutil.ReadFile("testdata/benchmark/flag-config.yaml")
22+
content, _ := os.ReadFile("testdata/benchmark/flag-config.yaml")
2323
t, _ := template.New("example-flag-config").Parse(string(content))
2424

2525
var buf bytes.Buffer
@@ -33,8 +33,8 @@ func init() {
3333
DateAfter: time.Now().Add(3 * time.Second).Format(time.RFC3339),
3434
})
3535

36-
flagFile, _ := ioutil.TempFile("", "")
37-
_ = ioutil.WriteFile(flagFile.Name(), buf.Bytes(), 0o600)
36+
flagFile, _ := os.CreateTemp("", "")
37+
_ = os.WriteFile(flagFile.Name(), buf.Bytes(), 0o600)
3838

3939
client, _ = ffclient.New(ffclient.Config{
4040
PollingInterval: 1 * time.Second,

feature_flag_test.go

+7-8
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package ffclient_test
22

33
import (
4-
"io/ioutil"
54
"log"
65
"os"
76
"testing"
@@ -174,8 +173,8 @@ func TestUpdateFlag(t *testing.T) {
174173
false: false
175174
default: false`
176175

177-
flagFile, _ := ioutil.TempFile("", "")
178-
_ = ioutil.WriteFile(flagFile.Name(), []byte(initialFileContent), 0o600)
176+
flagFile, _ := os.CreateTemp("", "")
177+
_ = os.WriteFile(flagFile.Name(), []byte(initialFileContent), 0o600)
179178

180179
gffClient1, _ := ffclient.New(ffclient.Config{
181180
PollingInterval: 1 * time.Second,
@@ -194,7 +193,7 @@ func TestUpdateFlag(t *testing.T) {
194193
false: false
195194
default: false`
196195

197-
_ = ioutil.WriteFile(flagFile.Name(), []byte(updatedFileContent), 0o600)
196+
_ = os.WriteFile(flagFile.Name(), []byte(updatedFileContent), 0o600)
198197

199198
flagValue, _ = gffClient1.BoolVariation("test-flag", ffuser.NewUser("random-key"), false)
200199
assert.True(t, flagValue)
@@ -213,8 +212,8 @@ func TestImpossibleToLoadfile(t *testing.T) {
213212
false: false
214213
default: false`
215214

216-
flagFile, _ := ioutil.TempFile("", "impossible")
217-
_ = ioutil.WriteFile(flagFile.Name(), []byte(initialFileContent), 0o600)
215+
flagFile, _ := os.CreateTemp("", "impossible")
216+
_ = os.WriteFile(flagFile.Name(), []byte(initialFileContent), 0o600)
218217

219218
gffClient1, _ := ffclient.New(ffclient.Config{
220219
PollingInterval: 1 * time.Second,
@@ -245,7 +244,7 @@ func TestFlagFileUnreachable(t *testing.T) {
245244
false: "false"
246245
default: "false"`
247246

248-
tempDir, _ := ioutil.TempDir("", "")
247+
tempDir, _ := os.MkdirTemp("", "")
249248
defer os.Remove(tempDir)
250249

251250
flagFilePath := tempDir + "_FlagFileUnreachable.yaml"
@@ -262,7 +261,7 @@ func TestFlagFileUnreachable(t *testing.T) {
262261
flagValue, _ := gff.StringVariation("test-flag", ffuser.NewUser("random-key"), "SDKdefault")
263262
assert.Equal(t, "SDKdefault", flagValue, "should use the SDK default value")
264263

265-
_ = ioutil.WriteFile(flagFilePath, []byte(initialFileContent), 0o600)
264+
_ = os.WriteFile(flagFilePath, []byte(initialFileContent), 0o600)
266265
time.Sleep(2 * time.Second)
267266

268267
flagValue, _ = gff.StringVariation("test-flag", ffuser.NewUser("random-key"), "SDKdefault")

internal/dataexporter/data_exporter_test.go

+2-3
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ package dataexporter_test
33
import (
44
"context"
55
"errors"
6-
"io/ioutil"
76
"log"
87
"os"
98
"testing"
@@ -79,7 +78,7 @@ func TestDataExporterScheduler_defaultFlush(t *testing.T) {
7978
func TestDataExporterScheduler_exporterReturnError(t *testing.T) {
8079
mockExporter := mock.Exporter{Err: errors.New("random err"), ExpectedNumberErr: 1, Bulk: true}
8180

82-
file, _ := ioutil.TempFile("", "log")
81+
file, _ := os.CreateTemp("", "log")
8382
defer file.Close()
8483
defer os.Remove(file.Name())
8584
logger := log.New(file, "", 0)
@@ -100,7 +99,7 @@ func TestDataExporterScheduler_exporterReturnError(t *testing.T) {
10099
assert.Equal(t, inputEvents[:201], mockExporter.GetExportedEvents())
101100

102101
// read log
103-
logs, _ := ioutil.ReadFile(file.Name())
102+
logs, _ := os.ReadFile(file.Name())
104103
assert.Regexp(t, "\\["+testutils.RFC3339Regex+"\\] error while exporting data: random err\\n", string(logs))
105104
}
106105

notifier/logsnotifier/notifier_test.go

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package logsnotifier
22

33
import (
4-
"io/ioutil"
54
"log"
65
"os"
76
"sync"
@@ -156,15 +155,15 @@ func TestLogNotifier_Notify(t *testing.T) {
156155
}
157156
for _, tt := range tests {
158157
t.Run(tt.name, func(t *testing.T) {
159-
logOutput, _ := ioutil.TempFile("", "")
158+
logOutput, _ := os.CreateTemp("", "")
160159
defer os.Remove(logOutput.Name())
161160

162161
c := &Notifier{
163162
Logger: log.New(logOutput, "", 0),
164163
}
165164
tt.args.wg.Add(1)
166165
_ = c.Notify(tt.args.diff, tt.args.wg)
167-
log, _ := ioutil.ReadFile(logOutput.Name())
166+
log, _ := os.ReadFile(logOutput.Name())
168167
assert.Regexp(t, tt.expected, string(log))
169168
})
170169
}

notifier/slacknotifier/notifier.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import (
44
"bytes"
55
"encoding/json"
66
"fmt"
7-
"io/ioutil"
7+
"io"
88
"net/http"
99
"net/url"
1010
"os"
@@ -60,7 +60,7 @@ func (c *Notifier) Notify(diff notifier.DiffCache, wg *sync.WaitGroup) error {
6060
request := http.Request{
6161
Method: http.MethodPost,
6262
URL: slackURL,
63-
Body: ioutil.NopCloser(bytes.NewReader(payload)),
63+
Body: io.NopCloser(bytes.NewReader(payload)),
6464
Header: map[string][]string{"Content-type": {"application/json"}},
6565
}
6666
response, err := c.httpClient.Do(&request)

notifier/slacknotifier/notifier_test.go

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package slacknotifier
22

33
import (
4-
"io/ioutil"
54
"net/http"
65
"os"
76
"strings"
@@ -164,7 +163,7 @@ func TestSlackNotifier_Notify(t *testing.T) {
164163
} else {
165164
assert.NoError(t, err)
166165
hostname, _ := os.Hostname()
167-
content, _ := ioutil.ReadFile(tt.expected.bodyPath)
166+
content, _ := os.ReadFile(tt.expected.bodyPath)
168167
expectedContent := strings.ReplaceAll(string(content), "{{hostname}}", hostname)
169168
assert.JSONEq(t, expectedContent, mockHTTPClient.Body)
170169
assert.Equal(t, tt.expected.signature, mockHTTPClient.Signature)

notifier/webhooknotifier/notifier.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import (
44
"bytes"
55
"encoding/json"
66
"fmt"
7-
"io/ioutil"
7+
"io"
88
"net/http"
99
"net/url"
1010
"os"
@@ -133,7 +133,7 @@ func (c *Notifier) Notify(diff notifier.DiffCache, wg *sync.WaitGroup) error {
133133
Method: "POST",
134134
URL: endpointURL,
135135
Header: headers,
136-
Body: ioutil.NopCloser(bytes.NewReader(payload)),
136+
Body: io.NopCloser(bytes.NewReader(payload)),
137137
}
138138
response, err := c.httpClient.Do(&request)
139139
// Log if something went wrong while calling the webhook.

notifier/webhooknotifier/notifier_test.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ package webhooknotifier
22

33
import (
44
"encoding/json"
5-
"io/ioutil"
65
"net/http"
6+
"os"
77
"sync"
88
"testing"
99

@@ -172,7 +172,7 @@ func Test_webhookNotifier_Notify(t *testing.T) {
172172
assert.ErrorContains(t, err, tt.expected.errorMsg)
173173
} else {
174174
assert.NoError(t, err)
175-
content, _ := ioutil.ReadFile(tt.expected.bodyPath)
175+
content, _ := os.ReadFile(tt.expected.bodyPath)
176176
assert.JSONEq(t, string(content), mockHTTPClient.Body)
177177
assert.Equal(t, tt.expected.signature, mockHTTPClient.Signature)
178178
}

retriever/fileretriever/retriever.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package fileretriever
22

33
import (
44
"context"
5-
"io/ioutil"
5+
"os"
66
)
77

88
// Retriever is a configuration struct for a local flat file.
@@ -12,7 +12,7 @@ type Retriever struct {
1212

1313
// Retrieve is reading the file and return the content
1414
func (r *Retriever) Retrieve(ctx context.Context) ([]byte, error) {
15-
content, err := ioutil.ReadFile(r.Path)
15+
content, err := os.ReadFile(r.Path)
1616
if err != nil {
1717
return nil, err
1818
}

0 commit comments

Comments
 (0)