зеркало из https://github.com/github/ruby.git
59 строки
1.5 KiB
Ruby
59 строки
1.5 KiB
Ruby
# coding: US-ASCII
|
|
# frozen_string_literal: false
|
|
require 'logger'
|
|
|
|
class TestLoggerSeverity < Test::Unit::TestCase
|
|
include Logger::Severity
|
|
|
|
def test_enum
|
|
logger_levels = Logger.constants
|
|
levels = ["WARN", "UNKNOWN", "INFO", "FATAL", "DEBUG", "ERROR"]
|
|
Logger::Severity.constants.each do |level|
|
|
assert(levels.include?(level.to_s))
|
|
assert(logger_levels.include?(level))
|
|
end
|
|
assert_equal(levels.size, Logger::Severity.constants.size)
|
|
end
|
|
|
|
def test_level_assignment
|
|
logger = Logger.new(nil)
|
|
|
|
Logger::Severity.constants.each do |level|
|
|
next if level == :UNKNOWN
|
|
|
|
logger.send("#{level.downcase}!")
|
|
assert(logger.level) == Logger::Severity.const_get(level)
|
|
end
|
|
end
|
|
|
|
def test_thread_local_level
|
|
logger = Logger.new(nil)
|
|
logger.level = INFO # default level
|
|
other = Logger.new(nil)
|
|
other.level = ERROR # default level
|
|
|
|
assert_equal(other.level, ERROR)
|
|
logger.with_level(:WARN) do
|
|
assert_equal(other.level, ERROR)
|
|
assert_equal(logger.level, WARN)
|
|
|
|
logger.with_level(DEBUG) do # verify reentrancy
|
|
assert_equal(logger.level, DEBUG)
|
|
|
|
Thread.new do
|
|
assert_equal(logger.level, INFO)
|
|
logger.with_level(:WARN) do
|
|
assert_equal(other.level, ERROR)
|
|
assert_equal(logger.level, WARN)
|
|
end
|
|
assert_equal(logger.level, INFO)
|
|
end.join
|
|
|
|
assert_equal(logger.level, DEBUG)
|
|
end
|
|
assert_equal(logger.level, WARN)
|
|
end
|
|
assert_equal(logger.level, INFO)
|
|
end
|
|
end
|