X-Git-Url: https://review.fuel-infra.org/gitweb?a=blobdiff_plain;f=spec%2Funit%2Flogger%2Fsyslog_logger_spec.rb;fp=spec%2Funit%2Flogger%2Fsyslog_logger_spec.rb;h=283ca5e6fe51cba7745544a805df090ffafc298f;hb=b87d2f4e68281062df1913440ca5753ae63314a9;hp=0000000000000000000000000000000000000000;hpb=ab0ea530b8ac956091f17b104ab2311336cfc250;p=packages%2Fprecise%2Fmcollective.git diff --git a/spec/unit/logger/syslog_logger_spec.rb b/spec/unit/logger/syslog_logger_spec.rb new file mode 100644 index 0000000..283ca5e --- /dev/null +++ b/spec/unit/logger/syslog_logger_spec.rb @@ -0,0 +1,79 @@ +#!/usr/bin/env rspec + +require 'spec_helper' + +module MCollective + unless Util.windows? + require 'mcollective/logger/syslog_logger' + + module Logger + describe Syslog_logger do + describe "#start" do + before do + Config.instance.stubs(:logfacility).returns("user") + Config.instance.stubs(:loglevel).returns("error") + end + + it "should close the syslog if already opened" do + Syslog.expects("opened?").returns(true) + Syslog.expects(:close).once + Syslog.expects(:open).once + + logger = Syslog_logger.new + logger.start + end + + it "should open syslog with the correct facility" do + logger = Syslog_logger.new + Syslog.expects(:open).with("rspec", 3, Syslog::LOG_USER).once + logger.start + end + + it "should set the logger level correctly" do + logger = Syslog_logger.new + Syslog.expects(:open).with("rspec", 3, Syslog::LOG_USER).once + logger.expects(:set_level).with(:error).once + logger.start + end + end + + describe "#syslog_facility" do + it "should support valid facilities" do + logger = Syslog_logger.new + logger.syslog_facility("LOCAL1").should == Syslog::LOG_LOCAL1 + logger.syslog_facility("local1").should == Syslog::LOG_LOCAL1 + end + + it "should set LOG_USER for unknown facilities" do + logger = Syslog_logger.new + IO.any_instance.expects(:puts).with("Invalid syslog facility rspec supplied, reverting to USER") + logger.syslog_facility("rspec").should == Syslog::LOG_USER + end + end + + describe "#log" do + it "should log higher than configured levels" do + logger = Syslog_logger.new + logger.set_level(:debug) + Syslog.expects(:err).once + logger.log(:error, "rspec", "rspec") + end + + it "should log using the correctly mapped level" do + logger = Syslog_logger.new + Syslog.expects(:err).with("rspec rspec").once + logger.set_level(:debug) + logger.log(:error, "rspec", "rspec") + end + + it "should resort to STDERR output if all else fails" do + logger = Syslog_logger.new + IO.any_instance.expects(:puts).with("error: rspec").once + + logger.log(:error, "rspec", "rspec") + end + end + end + end + end +end