This patches fixes a bug where setting an invalid option for "--color"
caused the word "nil" to be printed on every line of the log, instead
of printing out log messages.
Invalid color options now just produce uncolored output.
It seems to me that this isn't important enough to issue a warning
about an invalid setting.

Signed-off-by: Jesse Wolfe <[email protected]>
---
 lib/puppet/util/log.rb |    4 ++--
 spec/unit/util/log.rb  |   36 ++++++++++++++++++++++++++++++++++++
 2 files changed, 38 insertions(+), 2 deletions(-)

diff --git a/lib/puppet/util/log.rb b/lib/puppet/util/log.rb
index 25c4677..4cdad70 100644
--- a/lib/puppet/util/log.rb
+++ b/lib/puppet/util/log.rb
@@ -282,9 +282,9 @@ class Puppet::Util::Log
 
         def colorize(level, str)
             case Puppet[:color]
-            when false; str
-            when true, :ansi, "ansi"; console_color(level, str)
+            when true, :ansi, "ansi", :yes, "yes"; console_color(level, str)
             when :html, "html"; html_color(level, str)
+            else str
             end
         end
 
diff --git a/spec/unit/util/log.rb b/spec/unit/util/log.rb
index 4e2c8dc..35e6a71 100755
--- a/spec/unit/util/log.rb
+++ b/spec/unit/util/log.rb
@@ -13,6 +13,42 @@ describe Puppet::Util::Log do
         Puppet::Util::Log.close_all
     end
 
+    describe Puppet::Util::Log::DestConsole do
+        before do
+            @console = Puppet::Util::Log::DestConsole.new 
+        end
+
+        it "should colorize if Puppet[:color] is :ansi" do
+            Puppet[:color] = :ansi
+
+            @console.colorize(:alert, "abc").should == "\e[0;31mabc\e[0m"
+        end
+
+        it "should colorize if Puppet[:color] is 'yes'" do
+            Puppet[:color] = "yes"
+
+            @console.colorize(:alert, "abc").should == "\e[0;31mabc\e[0m"
+        end
+
+        it "should htmlize if Puppet[:color] is :html" do
+            Puppet[:color] = :html
+
+            @console.colorize(:alert, "abc").should == "<span style=\"color: 
FFA0A0\">abc</span>"
+        end
+
+        it "should do nothing if Puppet[:color] is false" do
+            Puppet[:color] = false
+
+            @console.colorize(:alert, "abc").should == "abc"
+        end
+
+        it "should do nothing if Puppet[:color] is invalid" do
+            Puppet[:color] = "invalid option"
+
+            @console.colorize(:alert, "abc").should == "abc"
+        end
+    end
+
     describe "instances" do
         before do
             Puppet::Util::Log.stubs(:newmessage)
-- 
1.6.3.3


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Puppet Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/puppet-dev?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to