From 83d711df9d4f6184721e412f97b97c1e12298043 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Olivier=20Mengu=C3=A9?= Date: Tue, 12 Mar 2024 00:34:38 +0100 Subject: [PATCH] testing: fix usage of the Testify API Fix incorrect usages of the Testify API, thanks to testifylint. Note: I'm a Testify co-maintainer --- entry_test.go | 12 +-- hook_test.go | 14 +-- hooks/writer/writer_test.go | 4 +- logger_test.go | 4 +- logrus_test.go | 178 ++++++++++++++++++------------------ writer_test.go | 8 +- 6 files changed, 111 insertions(+), 109 deletions(-) diff --git a/entry_test.go b/entry_test.go index d70266104..1b0794faa 100644 --- a/entry_test.go +++ b/entry_test.go @@ -241,20 +241,20 @@ func TestEntryWithIncorrectField(t *testing.T) { eWithFunc := e.WithFields(Fields{"func": fn}) eWithFuncPtr := e.WithFields(Fields{"funcPtr": &fn}) - assert.Equal(eWithFunc.err, `can not add field "func"`) - assert.Equal(eWithFuncPtr.err, `can not add field "funcPtr"`) + assert.Equal(`can not add field "func"`, eWithFunc.err) + assert.Equal(`can not add field "funcPtr"`, eWithFuncPtr.err) eWithFunc = eWithFunc.WithField("not_a_func", "it is a string") eWithFuncPtr = eWithFuncPtr.WithField("not_a_func", "it is a string") - assert.Equal(eWithFunc.err, `can not add field "func"`) - assert.Equal(eWithFuncPtr.err, `can not add field "funcPtr"`) + assert.Equal(`can not add field "func"`, eWithFunc.err) + assert.Equal(`can not add field "funcPtr"`, eWithFuncPtr.err) eWithFunc = eWithFunc.WithTime(time.Now()) eWithFuncPtr = eWithFuncPtr.WithTime(time.Now()) - assert.Equal(eWithFunc.err, `can not add field "func"`) - assert.Equal(eWithFuncPtr.err, `can not add field "funcPtr"`) + assert.Equal(`can not add field "func"`, eWithFunc.err) + assert.Equal(`can not add field "funcPtr"`, eWithFuncPtr.err) } func TestEntryLogfLevel(t *testing.T) { diff --git a/hook_test.go b/hook_test.go index a2becc82a..b4bd88cb5 100644 --- a/hook_test.go +++ b/hook_test.go @@ -41,11 +41,11 @@ func TestHookFires(t *testing.T) { LogAndAssertJSON(t, func(log *Logger) { log.Hooks.Add(hook) - assert.Equal(t, hook.Fired, false) + assert.False(t, hook.Fired) log.Print("test") }, func(fields Fields) { - assert.Equal(t, hook.Fired, true) + assert.True(t, hook.Fired) }) } @@ -76,7 +76,7 @@ func TestHookCanModifyEntry(t *testing.T) { log.Hooks.Add(hook) log.WithField("wow", "elephant").Print("test") }, func(fields Fields) { - assert.Equal(t, fields["wow"], "whale") + assert.Equal(t, "whale", fields["wow"]) }) } @@ -90,8 +90,8 @@ func TestCanFireMultipleHooks(t *testing.T) { log.WithField("wow", "elephant").Print("test") }, func(fields Fields) { - assert.Equal(t, fields["wow"], "whale") - assert.Equal(t, hook2.Fired, true) + assert.Equal(t, "whale", fields["wow"]) + assert.True(t, hook2.Fired) }) } @@ -157,7 +157,7 @@ func TestErrorHookShouldntFireOnInfo(t *testing.T) { log.Hooks.Add(hook) log.Info("test") }, func(fields Fields) { - assert.Equal(t, hook.Fired, false) + assert.False(t, hook.Fired) }) } @@ -168,7 +168,7 @@ func TestErrorHookShouldFireOnError(t *testing.T) { log.Hooks.Add(hook) log.Error("test") }, func(fields Fields) { - assert.Equal(t, hook.Fired, true) + assert.True(t, hook.Fired) }) } diff --git a/hooks/writer/writer_test.go b/hooks/writer/writer_test.go index a30d3b01a..30f6a496f 100644 --- a/hooks/writer/writer_test.go +++ b/hooks/writer/writer_test.go @@ -33,6 +33,6 @@ func TestDifferentLevelsGoToDifferentWriters(t *testing.T) { log.Warn("send to a") log.Info("send to b") - assert.Equal(t, a.String(), "level=warning msg=\"send to a\"\n") - assert.Equal(t, b.String(), "level=info msg=\"send to b\"\n") + assert.Equal(t, "level=warning msg=\"send to a\"\n", a.String()) + assert.Equal(t, "level=info msg=\"send to b\"\n", b.String()) } diff --git a/logger_test.go b/logger_test.go index 595c68214..2256f65d9 100644 --- a/logger_test.go +++ b/logger_test.go @@ -70,7 +70,7 @@ func TestWarninglnNotEqualToWarning(t *testing.T) { type testBufferPool struct { buffers []*bytes.Buffer - get int + get int } func (p *testBufferPool) Get() *bytes.Buffer { @@ -92,6 +92,6 @@ func TestLogger_SetBufferPool(t *testing.T) { l.Info("test") - assert.Equal(t, pool.get, 1, "Logger.SetBufferPool(): The BufferPool.Get() must be called") + assert.Equal(t, 1, pool.get, "Logger.SetBufferPool(): The BufferPool.Get() must be called") assert.Len(t, pool.buffers, 1, "Logger.SetBufferPool(): The BufferPool.Put() must be called") } diff --git a/logrus_test.go b/logrus_test.go index 72a02de1e..f6c2c6eda 100644 --- a/logrus_test.go +++ b/logrus_test.go @@ -30,7 +30,7 @@ func TestReportCallerWhenConfigured(t *testing.T) { }, func(fields Fields) { assert.Equal(t, "testNoCaller", fields["msg"]) assert.Equal(t, "info", fields["level"]) - assert.Equal(t, nil, fields["func"]) + assert.Nil(t, fields["func"]) }) LogAndAssertJSON(t, func(log *Logger) { @@ -82,7 +82,7 @@ func logSomething(t *testing.T, message string) Fields { entry.Info(message) err := json.Unmarshal(buffer.Bytes(), &fields) - assert.Nil(t, err) + require.NoError(t, err) return fields } @@ -204,7 +204,7 @@ func TestWithFieldsShouldAllowAssignments(t *testing.T) { localLog.WithField("key2", "value2").Info("test") err := json.Unmarshal(buffer.Bytes(), &fields) - assert.Nil(t, err) + require.NoError(t, err) assert.Equal(t, "value2", fields["key2"]) assert.Equal(t, "value1", fields["key1"]) @@ -213,10 +213,10 @@ func TestWithFieldsShouldAllowAssignments(t *testing.T) { fields = Fields{} localLog.Info("test") err = json.Unmarshal(buffer.Bytes(), &fields) - assert.Nil(t, err) + require.NoError(t, err) _, ok := fields["key2"] - assert.Equal(t, false, ok) + assert.False(t, ok) assert.Equal(t, "value1", fields["key1"]) } @@ -284,8 +284,8 @@ func TestWithTimeShouldNotOverrideFields(t *testing.T) { LogAndAssertJSON(t, func(log *Logger) { log.WithField("herp", "derp").WithTime(now).Info("blah") }, func(fields Fields) { - assert.Equal(t, fields["time"], now.Format(time.RFC3339)) - assert.Equal(t, fields["herp"], "derp") + assert.Equal(t, now.Format(time.RFC3339), fields["time"]) + assert.Equal(t, "derp", fields["herp"]) }) } @@ -295,8 +295,8 @@ func TestWithFieldShouldNotOverrideTime(t *testing.T) { LogAndAssertJSON(t, func(log *Logger) { log.WithTime(now).WithField("herp", "derp").Info("blah") }, func(fields Fields) { - assert.Equal(t, fields["time"], now.Format(time.RFC3339)) - assert.Equal(t, fields["herp"], "derp") + assert.Equal(t, now.Format(time.RFC3339), fields["time"]) + assert.Equal(t, "derp", fields["herp"]) }) } @@ -314,7 +314,7 @@ func TestTimeOverrideMultipleLogs(t *testing.T) { llog.Info("foo") err := json.Unmarshal(buffer.Bytes(), &firstFields) - assert.NoError(t, err, "should have decoded first message") + require.NoError(t, err, "should have decoded first message") buffer.Reset() @@ -322,7 +322,7 @@ func TestTimeOverrideMultipleLogs(t *testing.T) { llog.Info("bar") err = json.Unmarshal(buffer.Bytes(), &secondFields) - assert.NoError(t, err, "should have decoded second message") + require.NoError(t, err, "should have decoded second message") assert.NotEqual(t, firstFields["time"], secondFields["time"], "timestamps should not be equal") } @@ -341,18 +341,18 @@ func TestDoubleLoggingDoesntPrefixPreviousFields(t *testing.T) { llog.Info("looks delicious") err := json.Unmarshal(buffer.Bytes(), &fields) - assert.NoError(t, err, "should have decoded first message") - assert.Equal(t, len(fields), 4, "should only have msg/time/level/context fields") - assert.Equal(t, fields["msg"], "looks delicious") - assert.Equal(t, fields["context"], "eating raw fish") + require.NoError(t, err, "should have decoded first message") + assert.Equal(t, 4, len(fields), "should only have msg/time/level/context fields") + assert.Equal(t, "looks delicious", fields["msg"]) + assert.Equal(t, "eating raw fish", fields["context"]) buffer.Reset() llog.Warn("omg it is!") err = json.Unmarshal(buffer.Bytes(), &fields) - assert.NoError(t, err, "should have decoded second message") - assert.Equal(t, len(fields), 4, "should only have msg/time/level/context fields") + require.NoError(t, err, "should have decoded second message") + assert.Equal(t, 4, len(fields), "should only have msg/time/level/context fields") assert.Equal(t, "omg it is!", fields["msg"]) assert.Equal(t, "eating raw fish", fields["context"]) assert.Nil(t, fields["fields.msg"], "should not have prefixed previous `msg` entry") @@ -400,7 +400,7 @@ func TestNestedLoggingReportsCorrectCaller(t *testing.T) { _, _, line, _ = runtime.Caller(0) err = json.Unmarshal(buffer.Bytes(), &fields) - assert.NoError(t, err, "should have decoded second message") + require.NoError(t, err, "should have decoded second message") assert.Equal(t, 11, len(fields), "should have all builtin fields plus foo,bar,baz,...") assert.Equal(t, "Stubblefield", fields["Clyde"]) assert.Equal(t, "Starks", fields["Jab'o"]) @@ -476,67 +476,67 @@ func TestConvertLevelToString(t *testing.T) { func TestParseLevel(t *testing.T) { l, err := ParseLevel("panic") - assert.Nil(t, err) + require.NoError(t, err) assert.Equal(t, PanicLevel, l) l, err = ParseLevel("PANIC") - assert.Nil(t, err) + require.NoError(t, err) assert.Equal(t, PanicLevel, l) l, err = ParseLevel("fatal") - assert.Nil(t, err) + require.NoError(t, err) assert.Equal(t, FatalLevel, l) l, err = ParseLevel("FATAL") - assert.Nil(t, err) + require.NoError(t, err) assert.Equal(t, FatalLevel, l) l, err = ParseLevel("error") - assert.Nil(t, err) + require.NoError(t, err) assert.Equal(t, ErrorLevel, l) l, err = ParseLevel("ERROR") - assert.Nil(t, err) + require.NoError(t, err) assert.Equal(t, ErrorLevel, l) l, err = ParseLevel("warn") - assert.Nil(t, err) + require.NoError(t, err) assert.Equal(t, WarnLevel, l) l, err = ParseLevel("WARN") - assert.Nil(t, err) + require.NoError(t, err) assert.Equal(t, WarnLevel, l) l, err = ParseLevel("warning") - assert.Nil(t, err) + require.NoError(t, err) assert.Equal(t, WarnLevel, l) l, err = ParseLevel("WARNING") - assert.Nil(t, err) + require.NoError(t, err) assert.Equal(t, WarnLevel, l) l, err = ParseLevel("info") - assert.Nil(t, err) + require.NoError(t, err) assert.Equal(t, InfoLevel, l) l, err = ParseLevel("INFO") - assert.Nil(t, err) + require.NoError(t, err) assert.Equal(t, InfoLevel, l) l, err = ParseLevel("debug") - assert.Nil(t, err) + require.NoError(t, err) assert.Equal(t, DebugLevel, l) l, err = ParseLevel("DEBUG") - assert.Nil(t, err) + require.NoError(t, err) assert.Equal(t, DebugLevel, l) l, err = ParseLevel("trace") - assert.Nil(t, err) + require.NoError(t, err) assert.Equal(t, TraceLevel, l) l, err = ParseLevel("TRACE") - assert.Nil(t, err) + require.NoError(t, err) assert.Equal(t, TraceLevel, l) _, err = ParseLevel("invalid") @@ -645,12 +645,12 @@ func TestReplaceHooks(t *testing.T) { logger.Info("test") - assert.Equal(t, old.Fired, false) - assert.Equal(t, cur.Fired, true) + assert.False(t, old.Fired) + assert.True(t, cur.Fired) logger.ReplaceHooks(replaced) logger.Info("test") - assert.Equal(t, old.Fired, true) + assert.True(t, old.Fired) } // Compile test @@ -696,75 +696,75 @@ func TestEntryWriter(t *testing.T) { bs := <-cw var fields Fields err = json.Unmarshal(bs, &fields) - assert.Nil(t, err) - assert.Equal(t, fields["foo"], "bar") - assert.Equal(t, fields["level"], "warning") + require.NoError(t, err) + assert.Equal(t, "bar", fields["foo"]) + assert.Equal(t, "warning", fields["level"]) } func TestLogLevelEnabled(t *testing.T) { log := New() log.SetLevel(PanicLevel) - assert.Equal(t, true, log.IsLevelEnabled(PanicLevel)) - assert.Equal(t, false, log.IsLevelEnabled(FatalLevel)) - assert.Equal(t, false, log.IsLevelEnabled(ErrorLevel)) - assert.Equal(t, false, log.IsLevelEnabled(WarnLevel)) - assert.Equal(t, false, log.IsLevelEnabled(InfoLevel)) - assert.Equal(t, false, log.IsLevelEnabled(DebugLevel)) - assert.Equal(t, false, log.IsLevelEnabled(TraceLevel)) + assert.True(t, log.IsLevelEnabled(PanicLevel)) + assert.False(t, log.IsLevelEnabled(FatalLevel)) + assert.False(t, log.IsLevelEnabled(ErrorLevel)) + assert.False(t, log.IsLevelEnabled(WarnLevel)) + assert.False(t, log.IsLevelEnabled(InfoLevel)) + assert.False(t, log.IsLevelEnabled(DebugLevel)) + assert.False(t, log.IsLevelEnabled(TraceLevel)) log.SetLevel(FatalLevel) - assert.Equal(t, true, log.IsLevelEnabled(PanicLevel)) - assert.Equal(t, true, log.IsLevelEnabled(FatalLevel)) - assert.Equal(t, false, log.IsLevelEnabled(ErrorLevel)) - assert.Equal(t, false, log.IsLevelEnabled(WarnLevel)) - assert.Equal(t, false, log.IsLevelEnabled(InfoLevel)) - assert.Equal(t, false, log.IsLevelEnabled(DebugLevel)) - assert.Equal(t, false, log.IsLevelEnabled(TraceLevel)) + assert.True(t, log.IsLevelEnabled(PanicLevel)) + assert.True(t, log.IsLevelEnabled(FatalLevel)) + assert.False(t, log.IsLevelEnabled(ErrorLevel)) + assert.False(t, log.IsLevelEnabled(WarnLevel)) + assert.False(t, log.IsLevelEnabled(InfoLevel)) + assert.False(t, log.IsLevelEnabled(DebugLevel)) + assert.False(t, log.IsLevelEnabled(TraceLevel)) log.SetLevel(ErrorLevel) - assert.Equal(t, true, log.IsLevelEnabled(PanicLevel)) - assert.Equal(t, true, log.IsLevelEnabled(FatalLevel)) - assert.Equal(t, true, log.IsLevelEnabled(ErrorLevel)) - assert.Equal(t, false, log.IsLevelEnabled(WarnLevel)) - assert.Equal(t, false, log.IsLevelEnabled(InfoLevel)) - assert.Equal(t, false, log.IsLevelEnabled(DebugLevel)) - assert.Equal(t, false, log.IsLevelEnabled(TraceLevel)) + assert.True(t, log.IsLevelEnabled(PanicLevel)) + assert.True(t, log.IsLevelEnabled(FatalLevel)) + assert.True(t, log.IsLevelEnabled(ErrorLevel)) + assert.False(t, log.IsLevelEnabled(WarnLevel)) + assert.False(t, log.IsLevelEnabled(InfoLevel)) + assert.False(t, log.IsLevelEnabled(DebugLevel)) + assert.False(t, log.IsLevelEnabled(TraceLevel)) log.SetLevel(WarnLevel) - assert.Equal(t, true, log.IsLevelEnabled(PanicLevel)) - assert.Equal(t, true, log.IsLevelEnabled(FatalLevel)) - assert.Equal(t, true, log.IsLevelEnabled(ErrorLevel)) - assert.Equal(t, true, log.IsLevelEnabled(WarnLevel)) - assert.Equal(t, false, log.IsLevelEnabled(InfoLevel)) - assert.Equal(t, false, log.IsLevelEnabled(DebugLevel)) - assert.Equal(t, false, log.IsLevelEnabled(TraceLevel)) + assert.True(t, log.IsLevelEnabled(PanicLevel)) + assert.True(t, log.IsLevelEnabled(FatalLevel)) + assert.True(t, log.IsLevelEnabled(ErrorLevel)) + assert.True(t, log.IsLevelEnabled(WarnLevel)) + assert.False(t, log.IsLevelEnabled(InfoLevel)) + assert.False(t, log.IsLevelEnabled(DebugLevel)) + assert.False(t, log.IsLevelEnabled(TraceLevel)) log.SetLevel(InfoLevel) - assert.Equal(t, true, log.IsLevelEnabled(PanicLevel)) - assert.Equal(t, true, log.IsLevelEnabled(FatalLevel)) - assert.Equal(t, true, log.IsLevelEnabled(ErrorLevel)) - assert.Equal(t, true, log.IsLevelEnabled(WarnLevel)) - assert.Equal(t, true, log.IsLevelEnabled(InfoLevel)) - assert.Equal(t, false, log.IsLevelEnabled(DebugLevel)) - assert.Equal(t, false, log.IsLevelEnabled(TraceLevel)) + assert.True(t, log.IsLevelEnabled(PanicLevel)) + assert.True(t, log.IsLevelEnabled(FatalLevel)) + assert.True(t, log.IsLevelEnabled(ErrorLevel)) + assert.True(t, log.IsLevelEnabled(WarnLevel)) + assert.True(t, log.IsLevelEnabled(InfoLevel)) + assert.False(t, log.IsLevelEnabled(DebugLevel)) + assert.False(t, log.IsLevelEnabled(TraceLevel)) log.SetLevel(DebugLevel) - assert.Equal(t, true, log.IsLevelEnabled(PanicLevel)) - assert.Equal(t, true, log.IsLevelEnabled(FatalLevel)) - assert.Equal(t, true, log.IsLevelEnabled(ErrorLevel)) - assert.Equal(t, true, log.IsLevelEnabled(WarnLevel)) - assert.Equal(t, true, log.IsLevelEnabled(InfoLevel)) - assert.Equal(t, true, log.IsLevelEnabled(DebugLevel)) - assert.Equal(t, false, log.IsLevelEnabled(TraceLevel)) + assert.True(t, log.IsLevelEnabled(PanicLevel)) + assert.True(t, log.IsLevelEnabled(FatalLevel)) + assert.True(t, log.IsLevelEnabled(ErrorLevel)) + assert.True(t, log.IsLevelEnabled(WarnLevel)) + assert.True(t, log.IsLevelEnabled(InfoLevel)) + assert.True(t, log.IsLevelEnabled(DebugLevel)) + assert.False(t, log.IsLevelEnabled(TraceLevel)) log.SetLevel(TraceLevel) - assert.Equal(t, true, log.IsLevelEnabled(PanicLevel)) - assert.Equal(t, true, log.IsLevelEnabled(FatalLevel)) - assert.Equal(t, true, log.IsLevelEnabled(ErrorLevel)) - assert.Equal(t, true, log.IsLevelEnabled(WarnLevel)) - assert.Equal(t, true, log.IsLevelEnabled(InfoLevel)) - assert.Equal(t, true, log.IsLevelEnabled(DebugLevel)) - assert.Equal(t, true, log.IsLevelEnabled(TraceLevel)) + assert.True(t, log.IsLevelEnabled(PanicLevel)) + assert.True(t, log.IsLevelEnabled(FatalLevel)) + assert.True(t, log.IsLevelEnabled(ErrorLevel)) + assert.True(t, log.IsLevelEnabled(WarnLevel)) + assert.True(t, log.IsLevelEnabled(InfoLevel)) + assert.True(t, log.IsLevelEnabled(DebugLevel)) + assert.True(t, log.IsLevelEnabled(TraceLevel)) } func TestReportCallerOnTextFormatter(t *testing.T) { diff --git a/writer_test.go b/writer_test.go index 5b6261bd1..8a0a75d70 100644 --- a/writer_test.go +++ b/writer_test.go @@ -9,8 +9,10 @@ import ( "testing" "time" - "github.com/sirupsen/logrus" "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + + "github.com/sirupsen/logrus" ) func ExampleLogger_Writer_httpServer() { @@ -53,7 +55,7 @@ func TestWriterSplitNewlines(t *testing.T) { for i := 0; i < logNum; i++ { _, err := writer.Write([]byte("bar\nfoo\n")) - assert.NoError(t, err, "writer.Write failed") + require.NoError(t, err, "writer.Write failed") } writer.Close() // Test is flaky because it writes in another goroutine, @@ -84,7 +86,7 @@ func TestWriterSplitsMax64KB(t *testing.T) { for i := 0; i < 3; i++ { len, err := writer.Write(output) - assert.NoError(t, err, "writer.Write failed") + require.NoError(t, err, "writer.Write failed") assert.Equal(t, bigWriteLen, len, "bytes written") } writer.Close()