summaryrefslogtreecommitdiffstats
path: root/test/ral/providers/package
diff options
context:
space:
mode:
authormpalmer <mpalmer@980ebf18-57e1-0310-9a29-db15c13687c0>2007-05-25 22:24:49 +0000
committermpalmer <mpalmer@980ebf18-57e1-0310-9a29-db15c13687c0>2007-05-25 22:24:49 +0000
commita9ea3c898f79dcdeefe24630c19147eab5cb0c33 (patch)
tree146fceb5504c520fbdf80a87619a8240f44653ad /test/ral/providers/package
parentd1458bd64fd89b85c876ff557e331f0f551c8e57 (diff)
downloadpuppet-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-xtest/ral/providers/package/apt.rb69
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