From 44929130f9c65a3bfd702bb95cb8c7e636c845d1 Mon Sep 17 00:00:00 2001 From: Jeff McCune Date: Mon, 20 Aug 2012 13:57:09 -0700 Subject: (Maint) Fix mis-use of rvalue functions as statements Without this patch applied the spec tests are invalid because they call rvalue functions as if they were statements. This is a problem because Puppet 2.7.x currently throws an exception if a rvalue function is invoked as if it were a statement function. This exception from Puppet is causing tests to fail. This patch fixes the problem by changing the tests to assign the return value of the functions to a variable. This fixes the problem by invoking the functions properly. Paired-with: Andrew Parker --- spec/unit/puppet/parser/functions/getvar_spec.rb | 4 ++-- spec/unit/puppet/parser/functions/has_key_spec.rb | 6 +++--- spec/unit/puppet/parser/functions/merge_spec.rb | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) (limited to 'spec/unit/puppet/parser') diff --git a/spec/unit/puppet/parser/functions/getvar_spec.rb b/spec/unit/puppet/parser/functions/getvar_spec.rb index 16edd98..271f15e 100644 --- a/spec/unit/puppet/parser/functions/getvar_spec.rb +++ b/spec/unit/puppet/parser/functions/getvar_spec.rb @@ -23,12 +23,12 @@ describe Puppet::Parser::Functions.function(:getvar) do describe 'when calling getvar from puppet' do it "should not compile when no arguments are passed" do - Puppet[:code] = 'getvar()' + Puppet[:code] = '$rval = getvar()' get_scope expect { @scope.compiler.compile }.should raise_error(Puppet::ParseError, /wrong number of arguments/) end it "should not compile when too many arguments are passed" do - Puppet[:code] = 'getvar("foo::bar", "baz")' + Puppet[:code] = '$rval = getvar("foo::bar", "baz")' get_scope expect { @scope.compiler.compile }.should raise_error(Puppet::ParseError, /wrong number of arguments/) end diff --git a/spec/unit/puppet/parser/functions/has_key_spec.rb b/spec/unit/puppet/parser/functions/has_key_spec.rb index d1dcd15..bf91509 100644 --- a/spec/unit/puppet/parser/functions/has_key_spec.rb +++ b/spec/unit/puppet/parser/functions/has_key_spec.rb @@ -22,15 +22,15 @@ describe Puppet::Parser::Functions.function(:has_key) do describe 'when calling has_key from puppet' do it "should not compile when no arguments are passed" do - Puppet[:code] = 'has_key()' + Puppet[:code] = '$rval = has_key()' expect { compiler.compile }.should raise_error(Puppet::ParseError, /wrong number of arguments/) end it "should not compile when 1 argument is passed" do - Puppet[:code] = "has_key('foo')" + Puppet[:code] = "$rval = has_key('foo')" expect { compiler.compile }.should raise_error(Puppet::ParseError, /wrong number of arguments/) end it "should require the first value to be a Hash" do - Puppet[:code] = "has_key('foo', 'bar')" + Puppet[:code] = "$rval = has_key('foo', 'bar')" expect { compiler.compile }.should raise_error(Puppet::ParseError, /expects the first argument to be a hash/) end end diff --git a/spec/unit/puppet/parser/functions/merge_spec.rb b/spec/unit/puppet/parser/functions/merge_spec.rb index 71e1869..a91dca7 100644 --- a/spec/unit/puppet/parser/functions/merge_spec.rb +++ b/spec/unit/puppet/parser/functions/merge_spec.rb @@ -22,11 +22,11 @@ describe Puppet::Parser::Functions.function(:merge) do describe 'when calling merge from puppet' do it "should not compile when no arguments are passed" do - Puppet[:code] = 'merge()' + Puppet[:code] = '$rval = merge()' expect { compiler.compile }.should raise_error(Puppet::ParseError, /wrong number of arguments/) end it "should not compile when 1 argument is passed" do - Puppet[:code] = "$my_hash={'one' => 1}\nmerge($my_hash)" + Puppet[:code] = "$my_hash={'one' => 1}\n$rval = merge($my_hash)" expect { compiler.compile }.should raise_error(Puppet::ParseError, /wrong number of arguments/) end end -- cgit v1.2.3