From 44929130f9c65a3bfd702bb95cb8c7e636c845d1 Mon Sep 17 00:00:00 2001
From: Jeff McCune <jeff@puppetlabs.com>
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 <andy@puppetlabs.com>
---
 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