Sha256: cd52f928bad4068e5ea3a25789a5bd2ecb8beb677c22ab83ee8df6470ebd0e1a

Contents?: true

Size: 1.91 KB

Versions: 3

Compression:

Stored size: 1.91 KB

Contents

require 'rubygems'
require 'log4r'
require_relative '../lib/depengine/log/log'
require 'stringio'
require 'tmpdir'

describe 'logging' do
  it 'should log a message to STDOUT' do
    # redirect STDOUT
    sio = StringIO.new
    old_stdout, $stdout = $stdout, sio

    log = Log::DeploymentLogger.new
    log.writer.level = Log4r::DEBUG
    log.writer.debug 'Logger is now setup'

    # restore STDOUT
    $stdout = old_stdout
    result  = sio.string

    result.should include('Logger is now setup')
  end

  it 'should log a message to STDOUT with priority WARN' do
    # redirect STDOUT
    sio = StringIO.new
    old_stdout, $stdout = $stdout, sio

    log = Log::DeploymentLogger.new
    log.writer.level = Log4r::WARN
    log.writer.warn 'Logger is now setup'

    # restore STDOUT
    $stdout = old_stdout
    result  = sio.string

    result.should include('Logger is now setup')
  end

  it 'should log a message to a logfile' do
    tmp_dir = Dir.mktmpdir
    begin
      log = Log::DeploymentLogger.new
      log.add_outputter(Log4r::FileOutputter.new('log_warn', filename: "#{tmp_dir}/log_spec.log", level: Log4r::INFO))
      log.writer.info 'Logger is now setup'

      File.open("#{tmp_dir}/log_spec.log", 'r') do |line|
        line.gets.should include('Logger is now setup')
      end
    ensure
      FileUtils.rm_rf tmp_dir
    end
  end

  it 'should log a message to a logfile with a level set' do
    tmp_dir = Dir.mktmpdir
    begin
      log = Log::DeploymentLogger.new
      log.add_outputter(Log4r::FileOutputter.new('log_warn', filename: "#{tmp_dir}/log_spec.log"), Log4r::WARN)
      log.writer.info 'this is an info message'
      log.writer.warn 'this is a warn message'

      File.open("#{tmp_dir}/log_spec.log", 'r').read.should_not include('this is an info message')
      File.open("#{tmp_dir}/log_spec.log", 'r').read.should include('this is a warn message')
    ensure
      FileUtils.rm_rf tmp_dir
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
depengine-3.0.23 spec/log_spec.rb
depengine-3.0.22 spec/log_spec.rb
depengine-3.0.21 spec/log_spec.rb