From a9ea3c898f79dcdeefe24630c19147eab5cb0c33 Mon Sep 17 00:00:00 2001 From: mpalmer Date: Fri, 25 May 2007 22:24:49 +0000 Subject: 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 --- test/ral/providers/package/apt.rb | 69 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) (limited to 'test') 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 -- cgit