diff options
| author | mpalmer <mpalmer@980ebf18-57e1-0310-9a29-db15c13687c0> | 2007-05-25 22:24:49 +0000 |
|---|---|---|
| committer | mpalmer <mpalmer@980ebf18-57e1-0310-9a29-db15c13687c0> | 2007-05-25 22:24:49 +0000 |
| commit | a9ea3c898f79dcdeefe24630c19147eab5cb0c33 (patch) | |
| tree | 146fceb5504c520fbdf80a87619a8240f44653ad /test/ral/providers/package | |
| parent | d1458bd64fd89b85c876ff557e331f0f551c8e57 (diff) | |
| download | puppet-a9ea3c898f79dcdeefe24630c19147eab5cb0c33.tar.gz puppet-a9ea3c898f79dcdeefe24630c19147eab5cb0c33.tar.xz puppet-a9ea3c898f79dcdeefe24630c19147eab5cb0c33.zip | |
Correct a problem with the dpkg provider's handling of the :purged state, and expand the package type's understanding of what purged actually means. Fixes #644
git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2537 980ebf18-57e1-0310-9a29-db15c13687c0
Diffstat (limited to 'test/ral/providers/package')
| -rwxr-xr-x | test/ral/providers/package/apt.rb | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/test/ral/providers/package/apt.rb b/test/ral/providers/package/apt.rb index 97998e4bb..5197880ff 100755 --- a/test/ral/providers/package/apt.rb +++ b/test/ral/providers/package/apt.rb @@ -70,6 +70,75 @@ class AptPackageProviderTest < PuppetTest::TestCase pkg.evaluate.each { |state| state.transaction = self; state.forward } end + def test_dont_try_to_purge_if_already_purged + pkg = @type.create :name => 'faff', :provider => :apt, :ensure => :purged + + pkg.provider.expects( + :dpkgquery + ).with( + '-W', + '--showformat', + '${Status} ${Package} ${Version}\n', + 'faff' + ).raises( + Puppet::ExecutionFailure, + "No packages found matching faff.\n" + ).times(1) + pkg.provider.expects( + :aptget + ).never + + pkg.evaluate.each { |state| state.transaction = self; state.forward } + end + + def test_dont_try_to_purge_if_already_purged_and_we_want_it_absent + pkg = @type.create :name => 'faff', :provider => :apt, :ensure => :absent + + pkg.provider.expects( + :dpkgquery + ).with( + '-W', + '--showformat', + '${Status} ${Package} ${Version}\n', + 'faff' + ).raises( + Puppet::ExecutionFailure, + "No packages found matching faff.\n" + ).times(1) + pkg.provider.expects( + :aptget + ).never + + pkg.evaluate.each { |state| state.transaction = self; state.forward } + end + + def test_make_sure_we_purge_if_package_still_has_conffiles + pkg = @type.create :name => 'faff', :provider => :apt, :ensure => :purged + + pkg.provider.expects( + :dpkgquery + ).with( + '-W', + '--showformat', + '${Status} ${Package} ${Version}\n', + 'faff' + ).returns( + "deinstall ok config-files faff 1.2.3-1\n" + ).times(2) + pkg.provider.expects( + :aptget + ).with( + '-y', + '-q', + 'remove', + '--purge', + 'faff' + ).returns(0) + + pkg.evaluate.each { |state| state.transaction = self; state.forward } + end + + def test_latest pkg = @type.create :name => 'base-files', :provider => :apt |
