Skip to content

Instantly share code, notes, and snippets.

@Edouard-chin
Created October 2, 2018 21:04
Show Gist options
  • Save Edouard-chin/4a72930c2b1eafbbd72a80c66f102010 to your computer and use it in GitHub Desktop.
Save Edouard-chin/4a72930c2b1eafbbd72a80c66f102010 to your computer and use it in GitHub Desktop.
LoggerSilence doesn't work as expected
# frozen_string_literal: true
require "bundler/inline"
gemfile(true) do
source "https://rubygems.org"
git_source(:github) { |repo| "https://github.com/#{repo}.git" }
gem "activesupport", github: "rails/rails"
gem "byebug"
end
require "active_support/logger_thread_safe_level"
require "active_support/logger_silence"
require "minitest/autorun"
require "logger"
require "byebug"
class MyLogger < ::Logger
include ActiveSupport::LoggerThreadSafeLevel
include LoggerSilence
end
class BugTest < Minitest::Test
def setup
@io = StringIO.new
@logger = MyLogger.new(@io)
end
def test_silence_crashes_because_after_initialize_needs_to_be_called
@logger.silence(Logger::ERROR) do
@logger.info('Foo')
end
end
def test_silence_doesnt_work_even_after_calling_after_initialize
@logger.after_initialize
@logger.silence(Logger::ERROR) do
@logger.info('Foo')
end
@io.rewind
assert_empty @io.read
end
def test_level_check_doesnt_work
@logger.after_initialize
@logger.level = Logger::INFO
@logger.silence(Logger::DEBUG) do
assert_predicate @logger, :debug?
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment