X-Git-Url: https://review.fuel-infra.org/gitweb?a=blobdiff_plain;f=spec%2Funit%2Flogger%2Fconsole_logger_spec.rb;fp=spec%2Funit%2Flogger%2Fconsole_logger_spec.rb;h=15da7bdb355e606b31d7be9cb9e63306ee002039;hb=b87d2f4e68281062df1913440ca5753ae63314a9;hp=0000000000000000000000000000000000000000;hpb=ab0ea530b8ac956091f17b104ab2311336cfc250;p=packages%2Fprecise%2Fmcollective.git diff --git a/spec/unit/logger/console_logger_spec.rb b/spec/unit/logger/console_logger_spec.rb new file mode 100644 index 0000000..15da7bd --- /dev/null +++ b/spec/unit/logger/console_logger_spec.rb @@ -0,0 +1,67 @@ +#!/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