Merge pull request #614 from DavidS/MODULES-3543-fix-defined_with_params
(MODULES-3543) Fix define_with_params to handle undef properly
This commit is contained in:
commit
70d543e66a
3 changed files with 17 additions and 1 deletions
|
@ -26,7 +26,7 @@ ENDOFDOC
|
||||||
ret = false
|
ret = false
|
||||||
if resource = findresource(reference.to_s)
|
if resource = findresource(reference.to_s)
|
||||||
matches = params.collect do |key, value|
|
matches = params.collect do |key, value|
|
||||||
resource[key] == value
|
resource[key] == (value.eql?(:undef) ? nil : value) # eql? avoids bugs caused by monkeypatching in puppet
|
||||||
end
|
end
|
||||||
ret = params.empty? || !matches.include?(false)
|
ret = params.empty? || !matches.include?(false)
|
||||||
end
|
end
|
||||||
|
|
|
@ -23,4 +23,13 @@ describe 'defined_with_params' do
|
||||||
it { is_expected.to run.with_params('User[dan]', {'ensure' => 'present', 'managehome' => false}).and_return(true) }
|
it { is_expected.to run.with_params('User[dan]', {'ensure' => 'present', 'managehome' => false}).and_return(true) }
|
||||||
it { is_expected.to run.with_params('User[dan]', {'ensure' => 'absent', 'managehome' => false}).and_return(false) }
|
it { is_expected.to run.with_params('User[dan]', {'ensure' => 'absent', 'managehome' => false}).and_return(false) }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe 'when passing undef values' do
|
||||||
|
let :pre_condition do
|
||||||
|
'file { "/tmp/a": }'
|
||||||
|
end
|
||||||
|
|
||||||
|
it { is_expected.to run.with_params('File[/tmp/a]', {}).and_return(true) }
|
||||||
|
it { is_expected.to run.with_params('File[/tmp/a]', { 'owner' => :undef }).and_return(true) }
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -28,6 +28,13 @@ describe 'ensure_resource' do
|
||||||
it { expect(lambda { catalogue }).to contain_user('username2').without_ensure }
|
it { expect(lambda { catalogue }).to contain_user('username2').without_ensure }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe 'after running ensure_resource("user", "username1", { "gid" => undef })' do
|
||||||
|
before { subject.call(['User', 'username1', { "gid" => :undef }]) }
|
||||||
|
|
||||||
|
# this lambda is required due to strangeness within rspec-puppet's expectation handling
|
||||||
|
it { expect(lambda { catalogue }).to contain_user('username1').with_ensure('present') }
|
||||||
|
end
|
||||||
|
|
||||||
describe 'after running ensure_resource("user", ["username1", "username2"], {})' do
|
describe 'after running ensure_resource("user", ["username1", "username2"], {})' do
|
||||||
before { subject.call(['User', ['username1', 'username2'], {}]) }
|
before { subject.call(['User', ['username1', 'username2'], {}]) }
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue