summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Bode <dan@puppetlabs.com>2012-08-13 18:52:00 -0700
committerDan Bode <dan@puppetlabs.com>2012-08-13 18:52:00 -0700
commitfe85f467c8f8e65c9fd09acff17ac4adb80f12b8 (patch)
treea7b91740aaf5563b8ee06e00dcdc01df060a2a3c
parentba789deac588dea83a129544f8aa00813db30bf0 (diff)
Handle undef for parameter argument
This commit adds better handling of the case where undef is passed as the parameter value. This works by converting '' into []
-rw-r--r--lib/puppet/parser/functions/defined_with_params.rb4
-rw-r--r--spec/functions/defined_with_params_spec.rb1
-rw-r--r--spec/functions/ensure_resource_spec.rb1
3 files changed, 5 insertions, 1 deletions
diff --git a/lib/puppet/parser/functions/defined_with_params.rb b/lib/puppet/parser/functions/defined_with_params.rb
index e09e41c..d7df306 100644
--- a/lib/puppet/parser/functions/defined_with_params.rb
+++ b/lib/puppet/parser/functions/defined_with_params.rb
@@ -20,7 +20,9 @@ ENDOFDOC
) do |vals|
reference, params = vals
raise(ArgumentError, 'Must specify a reference') unless reference
- params ||= {}
+ if (! params) || params == ''
+ params = {}
+ end
ret = false
if resource = findresource(reference.to_s)
matches = params.collect do |key, value|
diff --git a/spec/functions/defined_with_params_spec.rb b/spec/functions/defined_with_params_spec.rb
index 21c08a0..f995b67 100644
--- a/spec/functions/defined_with_params_spec.rb
+++ b/spec/functions/defined_with_params_spec.rb
@@ -26,6 +26,7 @@ describe 'defined_with_params' do
should run.with_params('User[dan]', {'ensure' => 'present'}).and_return(true)
should run.with_params('User[dan]', {'ensure' => 'present', 'managehome' => false}).and_return(true)
should run.with_params('User[dan]', {'ensure' => 'absent', 'managehome' => false}).and_return(false)
+ should run.with_params('User[dan]', '').and_return(true)
end
end
end
diff --git a/spec/functions/ensure_resource_spec.rb b/spec/functions/ensure_resource_spec.rb
index e45a6d0..e03efda 100644
--- a/spec/functions/ensure_resource_spec.rb
+++ b/spec/functions/ensure_resource_spec.rb
@@ -26,6 +26,7 @@ describe 'ensure_resource' do
it do
# these first three should not fail
should run.with_params('User', 'dan', {})
+ should run.with_params('User', 'dan', '')
should run.with_params('User', 'dan', {'ensure' => 'present'})
should run.with_params('User', 'dan', {'ensure' => 'present', 'managehome' => false})
# test that this fails