Project

General

Profile

Download (2.83 KB) Statistics
| Branch: | Tag: | Revision:
require 'test_helper'

class ForemanLoggingTest < ActiveSupport::TestCase
def test_configure_once
assert_raises RuntimeError do
Foreman::Logging.configure({})
end
end

def test_default_loggers_exist
assert Foreman::Logging.logger('app')
assert Foreman::Logging.logger('sql')
end

def test_prevents_nonexistent_logger
assert_raises RuntimeError do
Foreman::Logging.logger('nonexistent_logger')
end
end

def test_add_loggers
Foreman::Logging.add_loggers({:fake_logger => {:enabled => true}})
assert Foreman::Logging.logger('fake_logger')
end

def test_add_logger
Foreman::Logging.add_logger('test_logger', {:enabled => true, :level => :debug})
assert Foreman::Logging.logger('test_logger')
end

def test_logger_supports_silence
Foreman::Logging.add_logger('test_logger', {:enabled => true, :level => :debug})
logger = Foreman::Logging.logger('test_logger')
appender = ::Logging::Appenders.string_io('buffer')
logger.appenders = [appender]
logger.silence do |log|
log.debug("Must not be logged")
assert_equal 3, log.local_level
assert_equal 0, log.level
assert_equal [], appender.readlines
end
assert_equal 0, logger.level
end

def test_logger_supports_silence_logger
Foreman::Logging.add_logger('test_logger', {:enabled => true, :level => :debug})
logger = Foreman::Logging.logger('test_logger')
appender = ::Logging::Appenders.string_io('buffer')
logger.appenders = [appender]
logger.silence_logger do |log|
log.warn("Must not be logged as well")
assert_equal [], appender.readlines
end
end

def test_logger_supports_silence_positive_error
Foreman::Logging.add_logger('test_logger', {:enabled => true, :level => :debug})
logger = Foreman::Logging.logger('test_logger')
appender = ::Logging::Appenders.string_io('buffer')
logger.appenders = [appender]
logger.silence(::Logger::ERROR) do |log|
log.error("Must be logged")
assert_match(/Must be logged/, appender.readlines.first)
end
end

def test_logger_supports_silence_positive_info
Foreman::Logging.add_logger('test_logger', {:enabled => true, :level => :debug})
logger = Foreman::Logging.logger('test_logger')
appender = ::Logging::Appenders.string_io('buffer')
logger.appenders = [appender]
logger.silence(::Logger::INFO) do |log|
log.error("Must be logged")
assert_match(/Must be logged/, appender.readlines.first)
end
end

def test_error_config_missing
File.expects(:exist?).returns(false)

assert_raises RuntimeError do
Foreman::Logging.send(:load_config, 'development')
end
end

def test_logger_level
Foreman::Logging.add_logger('test_logger', {:enabled => true, :level => :debug})
assert_equal 'debug', Foreman::Logging.logger_level('test_logger')
end
end
(11-11/17)