diff options
-rw-r--r-- | lib/puppet/parser/resource.rb | 6 | ||||
-rw-r--r-- | lib/puppet/parser/resource/param.rb | 4 | ||||
-rwxr-xr-x | test/language/resource.rb | 36 |
3 files changed, 24 insertions, 22 deletions
diff --git a/lib/puppet/parser/resource.rb b/lib/puppet/parser/resource.rb index 906b28aca..d19b4ac1e 100644 --- a/lib/puppet/parser/resource.rb +++ b/lib/puppet/parser/resource.rb @@ -302,9 +302,9 @@ class Puppet::Parser::Resource end # Either way, now add our parameters - newparams = {} - @params.each { |name, p| newparams[name.to_s] = p } - resource.collection_merge :param_names, :existing => resource.param_names, :updates => newparams + updated_params = {} + @params.each { |name, p| updated_params[name.to_s] = p } + resource.collection_merge :param_names, :existing => resource.param_names, :updates => updated_params return resource end diff --git a/lib/puppet/parser/resource/param.rb b/lib/puppet/parser/resource/param.rb index bc33ba8f9..dc325487c 100644 --- a/lib/puppet/parser/resource/param.rb +++ b/lib/puppet/parser/resource/param.rb @@ -35,9 +35,7 @@ class Puppet::Parser::Resource::Param oldvals = [] if pv = pn.param_values - newvals = pv.each do |val| - oldvals << val.value - end + oldvals = pv.collect { |val| val.value } end if oldvals != values diff --git a/test/language/resource.rb b/test/language/resource.rb index 8614d4ba8..205d86d2c 100755 --- a/test/language/resource.rb +++ b/test/language/resource.rb @@ -363,23 +363,27 @@ class TestResource < Test::Unit::TestCase if Puppet.features.rails? # Compare a parser resource to a rails resource. - def compare_resources(host, res, options = {}) - obj = nil + def compare_resources(host, res, updating, options = {}) + # to_rails now expects to be passed a resource, else it will create a new one + newobj = host.resources.find_by_restype_and_title(res.type, res.title) assert_nothing_raised do - obj = res.to_rails(host) + newobj = res.to_rails(host, newobj) end - assert_instance_of(Puppet::Rails::Resource, obj) + assert_instance_of(Puppet::Rails::Resource, newobj) + newobj.save - assert_nothing_raised do - Puppet::Util.benchmark(:info, "Saved host") do - host.save - end + if updating + tail = "on update" + else + tail = "" end # Make sure we find our object and only our object count = 0 + obj = nil Puppet::Rails::Resource.find(:all).each do |obj| + assert_equal(newobj.id, obj.id, "Found object has a different id than generated object %s" % tail) count += 1 [:title, :restype, :line, :exported].each do |param| if param == :restype @@ -387,11 +391,11 @@ class TestResource < Test::Unit::TestCase else method = param end - assert_equal(res.send(method), obj[param], - "attribute %s is incorrect" % param) + assert_equal(res.send(method), obj[param], + "attribute %s was not set correctly in rails %s" % [param, tail]) end end - assert_equal(1, count, "Got too many resources") + assert_equal(1, count, "Got too many resources %s" % tail) # Now make sure we can find it again assert_nothing_raised do obj = Puppet::Rails::Resource.find_by_restype_and_title( @@ -407,16 +411,16 @@ class TestResource < Test::Unit::TestCase params.each do |name| param = obj.param_names.find_by_name(name) if res[name] - assert(param, "resource did not keep %s" % name) + assert(param, "resource did not keep %s %s" % [name, tail]) else - assert(! param, "resource did not delete %s" % name) + assert(! param, "resource did not delete %s %s" % [name, tail]) end if param values = param.param_values.collect { |pv| pv.value } should = res[param.name] should = [should] unless should.is_a?(Array) assert_equal(should, values, - "%s was different" % param.name) + "%s was different %s" % [param.name, tail]) end end end @@ -434,7 +438,7 @@ class TestResource < Test::Unit::TestCase # We also need a Rails Host to store under host = Puppet::Rails::Host.new(:name => Facter.hostname) - compare_resources(host, res, :params => %w{owner source mode}) + compare_resources(host, res, false, :params => %w{owner source mode}) # Now make some changes to our resource. We're removing the mode, # changing the source, and adding 'check'. @@ -446,7 +450,7 @@ class TestResource < Test::Unit::TestCase res.line = 75 res.exported = true - compare_resources(host, res, :params => %w{owner source mode check}) + compare_resources(host, res, true, :params => %w{owner source mode check}) end end |