Update mcollective.init according to OSCI-855
[packages/precise/mcollective.git] / spec / unit / logger / console_logger_spec.rb
1 #!/usr/bin/env rspec
2
3 require 'spec_helper'
4
5 module MCollective
6   require 'mcollective/logger/console_logger'
7
8   module Logger
9     describe Console_logger do
10       describe "#start" do
11         it "should default to :info and allow the config to override" do
12           logger = Console_logger.new
13           logger.expects(:set_level).with(:info)
14           Config.instance.expects(:configured).returns(true)
15           Config.instance.expects(:loglevel).returns("error")
16           logger.expects(:set_level).with(:error)
17           logger.start
18         end
19       end
20
21       describe "#color" do
22         it "should not colorize if color was disabled" do
23           logger = Console_logger.new
24           Config.instance.stubs(:color).returns(false)
25           logger.color(:error).should == ""
26           logger.color(:reset).should == ""
27         end
28
29         it "should correctly colorize by level" do
30           logger = Console_logger.new
31           Config.instance.stubs(:color).returns(true)
32           logger.color(:error).should == Util.color(:red)
33           logger.color(:reset).should == Util.color(:reset)
34         end
35       end
36
37       describe "#log" do
38         it "should log higher than configured levels" do
39           io = StringIO.new
40           io.expects(:puts).with("error 2012/07/03 15:11:35: rspec message")
41
42           time = stub
43           time.expects(:strftime).returns("2012/07/03 15:11:35")
44
45           Time.expects(:new).returns(time)
46
47           Config.instance.stubs(:color).returns(false)
48           logger = Console_logger.new
49           logger.set_level(:warn)
50           logger.log(:error, "rspec", "message", io)
51         end
52
53         it "should resort to STDERR output if all else fails" do
54           io = StringIO.new
55           io.expects(:puts).raises
56
57           last_resort_io = StringIO.new
58           last_resort_io.expects(:puts).with("warn: message")
59
60           logger = Console_logger.new
61           logger.set_level(:debug)
62           logger.log(:warn, "rspec", "message", io, last_resort_io)
63         end
64       end
65     end
66   end
67 end