From 13d141acce03b50f1bfdee2b2a2cba87bcb3da70 Mon Sep 17 00:00:00 2001 From: Luke Kanies Date: Mon, 12 Apr 2010 14:10:17 -0700 Subject: Fixing Property#change_to_s in rare case failures If we were removing a field, which really only 'cron' does, then we got an exception. This is fixed, and now tested. Signed-off-by: Luke Kanies --- lib/puppet/property.rb | 6 +++--- spec/unit/property.rb | 16 +++++++++++++++- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/lib/puppet/property.rb b/lib/puppet/property.rb index 4b58abd1f..5e616c396 100644 --- a/lib/puppet/property.rb +++ b/lib/puppet/property.rb @@ -122,14 +122,14 @@ class Puppet::Property < Puppet::Parameter end # How should a property change be printed as a string? - def change_to_s(currentvalue, newvalue) + def change_to_s(current_value, newvalue) begin - if currentvalue == :absent + if current_value == :absent return "defined '#{name}' as '#{should_to_s(newvalue)}'" elsif newvalue == :absent or newvalue == [:absent] return "undefined '#{name}' from '#{is_to_s(current_value)}'" else - return "#{name} changed '#{is_to_s(currentvalue)}' to '#{should_to_s(newvalue)}'" + return "#{name} changed '#{is_to_s(current_value)}' to '#{should_to_s(newvalue)}'" end rescue Puppet::Error, Puppet::DevError raise diff --git a/spec/unit/property.rb b/spec/unit/property.rb index 64bad19d1..d99f42a4a 100755 --- a/spec/unit/property.rb +++ b/spec/unit/property.rb @@ -1,4 +1,4 @@ -#!/usr/bin/env ruby" +#!/usr/bin/env ruby require File.dirname(__FILE__) + '/../spec_helper' require 'puppet/property' @@ -399,4 +399,18 @@ describe Puppet::Property do end end end + + describe "when producing a change log" do + it "should say 'defined' when the current value is 'absent'" do + @property.change_to_s(:absent, "foo").should =~ /^defined/ + end + + it "should say 'undefined' when the new value is 'absent'" do + @property.change_to_s("foo", :absent).should =~ /^undefined/ + end + + it "should say 'changed' when neither value is 'absent'" do + @property.change_to_s("foo", "bar").should =~ /changed/ + end + end end -- cgit