From ba9ef8ebe8960ccd8646e5508cae420bab304cf8 Mon Sep 17 00:00:00 2001 From: Oliver Calder Date: Sat, 8 Feb 2025 00:52:02 -0600 Subject: [PATCH] logger: add function to mock logger with debug enabled (#15050) * logger: add function to mock logger with debug enabled Signed-off-by: Oliver Calder * logger: add test for function which mocks debug logger Signed-off-by: Oliver Calder --------- Signed-off-by: Oliver Calder --- logger/logger.go | 12 +++++++++++- logger/logger_test.go | 7 +++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/logger/logger.go b/logger/logger.go index 5293810c8bc..826504b5db5 100644 --- a/logger/logger.go +++ b/logger/logger.go @@ -120,9 +120,19 @@ func NoGuardDebugf(format string, v ...interface{}) { // MockLogger replaces the existing logger with a buffer and returns // the log buffer and a restore function. func MockLogger() (buf *bytes.Buffer, restore func()) { + return mockLogger(&LoggerOptions{}) +} + +// MockDebugLogger replaces the existing logger with a buffer and returns +// the log buffer and a restore function. The logger records debug messages. +func MockDebugLogger() (buf *bytes.Buffer, restore func()) { + return mockLogger(&LoggerOptions{ForceDebug: true}) +} + +func mockLogger(opts *LoggerOptions) (buf *bytes.Buffer, restore func()) { buf = &bytes.Buffer{} oldLogger := logger - l, err := New(buf, DefaultFlags, &LoggerOptions{}) + l, err := New(buf, DefaultFlags, opts) if err != nil { panic(err) } diff --git a/logger/logger_test.go b/logger/logger_test.go index a9f304dd611..b11aef5dd9b 100644 --- a/logger/logger_test.go +++ b/logger/logger_test.go @@ -244,3 +244,10 @@ func (s *LogSuite) TestForceDebug(c *C) { l.Debug("xyzzy") c.Check(buf.String(), testutil.Contains, `DEBUG: xyzzy`) } + +func (s *LogSuite) TestMockDebugLogger(c *C) { + logbuf, restore := logger.MockDebugLogger() + defer restore() + logger.Debugf("xyzzy") + c.Check(logbuf.String(), testutil.Contains, "DEBUG: xyzzy") +}