diff options
| author | Brice Figureau <brice-puppet@daysofwonder.com> | 2009-11-14 19:19:04 +0100 |
|---|---|---|
| committer | test branch <puppet-dev@googlegroups.com> | 2010-02-17 06:50:53 -0800 |
| commit | fd427a51bc2bd97656767acc7f6b48160f8e60c4 (patch) | |
| tree | e3c9426bb51362d5df30d1f150c7ac72735cf9a1 | |
| parent | 75c32f910ea124a938a7035b3352c11a11b57d0c (diff) | |
| download | puppet-fd427a51bc2bd97656767acc7f6b48160f8e60c4.tar.gz puppet-fd427a51bc2bd97656767acc7f6b48160f8e60c4.tar.xz puppet-fd427a51bc2bd97656767acc7f6b48160f8e60c4.zip | |
Raise an error when appending not a hash to a hash
Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>
| -rw-r--r-- | lib/puppet/parser/scope.rb | 1 | ||||
| -rwxr-xr-x | spec/unit/parser/scope.rb | 13 |
2 files changed, 10 insertions, 4 deletions
diff --git a/lib/puppet/parser/scope.rb b/lib/puppet/parser/scope.rb index 12c645a90..c32db357f 100644 --- a/lib/puppet/parser/scope.rb +++ b/lib/puppet/parser/scope.rb @@ -340,6 +340,7 @@ class Puppet::Parser::Scope when Array table[name] += value when Hash + raise ArgumentError, "Trying to append to a hash with something which is not a hash is unsupported" unless value.is_a?(Hash) table[name].merge!(value) else table[name] << value diff --git a/spec/unit/parser/scope.rb b/spec/unit/parser/scope.rb index 2f553e460..ba5f80670 100755 --- a/spec/unit/parser/scope.rb +++ b/spec/unit/parser/scope.rb @@ -155,28 +155,33 @@ describe Puppet::Parser::Scope do lambda { @scope.setvar("var","1", :append => true) }.should raise_error(Puppet::ParseError) end - it "it should lookup current variable value" do + it "should lookup current variable value" do @scope.expects(:lookupvar).with("var").returns("2") @scope.setvar("var","1", :append => true) end - it "it should store the concatenated string '42'" do + it "should store the concatenated string '42'" do @topscope.setvar("var","4", :append => false) @scope.setvar("var","2", :append => true) @scope.lookupvar("var").should == "42" end - it "it should store the concatenated array [4,2]" do + it "should store the concatenated array [4,2]" do @topscope.setvar("var",[4], :append => false) @scope.setvar("var",[2], :append => true) @scope.lookupvar("var").should == [4,2] end - it "it should store the merged hash {a => b, c => d}" do + it "should store the merged hash {a => b, c => d}" do @topscope.setvar("var",{"a" => "b"}, :append => false) @scope.setvar("var",{"c" => "d"}, :append => true) @scope.lookupvar("var").should == {"a" => "b", "c" => "d"} end + + it "should raise an error when appending a hash with something other than another hash" do + @topscope.setvar("var",{"a" => "b"}, :append => false) + lambda { @scope.setvar("var","not a hash", :append => true) }.should raise_error + end end describe "when calling number?" do |
