--- /dev/null
+#!/usr/bin/env rspec
+
+require 'spec_helper'
+
+module MCollective
+ require 'mcollective/logger/console_logger'
+
+ module Logger
+ describe Console_logger do
+ describe "#start" do
+ it "should default to :info and allow the config to override" do
+ logger = Console_logger.new
+ logger.expects(:set_level).with(:info)
+ Config.instance.expects(:configured).returns(true)
+ Config.instance.expects(:loglevel).returns("error")
+ logger.expects(:set_level).with(:error)
+ logger.start
+ end
+ end
+
+ describe "#color" do
+ it "should not colorize if color was disabled" do
+ logger = Console_logger.new
+ Config.instance.stubs(:color).returns(false)
+ logger.color(:error).should == ""
+ logger.color(:reset).should == ""
+ end
+
+ it "should correctly colorize by level" do
+ logger = Console_logger.new
+ Config.instance.stubs(:color).returns(true)
+ logger.color(:error).should == Util.color(:red)
+ logger.color(:reset).should == Util.color(:reset)
+ end
+ end
+
+ describe "#log" do
+ it "should log higher than configured levels" do
+ io = StringIO.new
+ io.expects(:puts).with("error 2012/07/03 15:11:35: rspec message")
+
+ time = stub
+ time.expects(:strftime).returns("2012/07/03 15:11:35")
+
+ Time.expects(:new).returns(time)
+
+ Config.instance.stubs(:color).returns(false)
+ logger = Console_logger.new
+ logger.set_level(:warn)
+ logger.log(:error, "rspec", "message", io)
+ end
+
+ it "should resort to STDERR output if all else fails" do
+ io = StringIO.new
+ io.expects(:puts).raises
+
+ last_resort_io = StringIO.new
+ last_resort_io.expects(:puts).with("warn: message")
+
+ logger = Console_logger.new
+ logger.set_level(:debug)
+ logger.log(:warn, "rspec", "message", io, last_resort_io)
+ end
+ end
+ end
+ end
+end