]> gitweb.fluxo.info Git - puppet-stdlib.git/commitdiff
(Maint) Fix mis-use of rvalue functions as statements
authorJeff McCune <jeff@puppetlabs.com>
Mon, 20 Aug 2012 20:57:09 +0000 (13:57 -0700)
committerJeff McCune <jeff@puppetlabs.com>
Mon, 20 Aug 2012 20:57:09 +0000 (13:57 -0700)
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
spec/unit/puppet/parser/functions/has_key_spec.rb
spec/unit/puppet/parser/functions/merge_spec.rb

index 16edd980ea6f3fff6f04f6057ce422423c04543a..271f15ec6e4b4d39286060afece82241db3252a2 100644 (file)
@@ -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
index d1dcd15865c8e433ecf364ea7714e69ce4926cf7..bf91509b09868e459893c4364af5f4fd33da5f6d 100644 (file)
@@ -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
index 71e1869fc83134dc864bcae1312e0e801674cc22..a91dca7698b4c2aabe8665231383ccd770151d4d 100644 (file)
@@ -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