summaryrefslogtreecommitdiffstats
path: root/test/ral
diff options
context:
space:
mode:
authormpalmer <mpalmer@980ebf18-57e1-0310-9a29-db15c13687c0>2007-02-23 08:18:10 +0000
committermpalmer <mpalmer@980ebf18-57e1-0310-9a29-db15c13687c0>2007-02-23 08:18:10 +0000
commit1d711dcfd902035b9be81debcfb5c271f78ae154 (patch)
treefd4ab3ca7b3522bb0dab9f8d954f40326cdc294f /test/ral
parenta752eb2e7152ad81ad747d7c8604694d51d25fd8 (diff)
Partially complete #241. Add a 'purged' value for Package.ensure, and add a handler for all of the Debian providers. Also wrote sensible test cases, and so we've now got Mocha running around in our source tree.
git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2223 980ebf18-57e1-0310-9a29-db15c13687c0
Diffstat (limited to 'test/ral')
-rw-r--r--test/ral/providers/package/apt.rb68
-rw-r--r--test/ral/providers/package/aptitude.rb65
-rw-r--r--test/ral/providers/package/dpkg.rb61
3 files changed, 194 insertions, 0 deletions
diff --git a/test/ral/providers/package/apt.rb b/test/ral/providers/package/apt.rb
new file mode 100644
index 000000000..f0a13d3aa
--- /dev/null
+++ b/test/ral/providers/package/apt.rb
@@ -0,0 +1,68 @@
+require File.dirname(__FILE__) + '/../../../lib/puppettest'
+
+require 'mocha'
+
+class AptPackageProviderTest < Test::Unit::TestCase
+ def setup
+ @type = Puppet::Type.type(:package)
+ # This is hideous, but absent a 'reset' button on types...
+ @type.instance_eval("@objects = {}")
+ end
+
+ def test_install
+ pkg = @type.create :name => 'faff',
+ :provider => :apt,
+ :ensure => :present,
+ :source => "/tmp/faff.deb"
+
+ pkg.provider.expects(
+ :dpkgquery
+ ).with(
+ '-W',
+ '--showformat',
+ '${Status} ${Package} ${Version}\n',
+ 'faff'
+ ).returns(
+ "deinstall ok config-files faff 1.2.3-1\n"
+ )
+
+ pkg.provider.expects(
+ :aptget
+ ).with(
+ '-q',
+ '-y',
+ '-o',
+ 'DPkg::Options::=--force-confold',
+ 'install',
+ 'faff'
+ ).returns(0)
+
+ pkg.evaluate.each { |state| state.transaction = self; state.forward }
+ end
+
+ def test_purge
+ pkg = @type.create :name => 'faff', :provider => :apt, :ensure => :purged
+
+ pkg.provider.expects(
+ :dpkgquery
+ ).with(
+ '-W',
+ '--showformat',
+ '${Status} ${Package} ${Version}\n',
+ 'faff'
+ ).returns(
+ "install ok installed faff 1.2.3-1\n"
+ )
+ pkg.provider.expects(
+ :aptget
+ ).with(
+ '-y',
+ '-q',
+ 'remove',
+ '--purge',
+ 'faff'
+ ).returns(0)
+
+ pkg.evaluate.each { |state| state.transaction = self; state.forward }
+ end
+end
diff --git a/test/ral/providers/package/aptitude.rb b/test/ral/providers/package/aptitude.rb
new file mode 100644
index 000000000..0a686559e
--- /dev/null
+++ b/test/ral/providers/package/aptitude.rb
@@ -0,0 +1,65 @@
+require File.dirname(__FILE__) + '/../../../lib/puppettest'
+
+require 'mocha'
+
+class AptitudePackageProviderTest < Test::Unit::TestCase
+ def setup
+ @type = Puppet::Type.type(:package)
+ # This is hideous, but absent a 'reset' button on types...
+ @type.instance_eval("@objects = {}")
+ end
+
+ def test_install
+ pkg = @type.create :name => 'faff',
+ :provider => :aptitude,
+ :ensure => :present,
+ :source => "/tmp/faff.deb"
+
+ pkg.provider.expects(
+ :dpkgquery
+ ).with(
+ '-W',
+ '--showformat',
+ '${Status} ${Package} ${Version}\n',
+ 'faff'
+ ).returns(
+ "deinstall ok config-files faff 1.2.3-1\n"
+ )
+
+ pkg.provider.expects(
+ :aptitude
+ ).with(
+ '-y',
+ '-o',
+ 'DPkg::Options::=--force-confold',
+ 'install',
+ 'faff'
+ ).returns(0)
+
+ pkg.evaluate.each { |state| state.transaction = self; state.forward }
+ end
+
+ def test_purge
+ pkg = @type.create :name => 'faff', :provider => :aptitude, :ensure => :purged
+
+ pkg.provider.expects(
+ :dpkgquery
+ ).with(
+ '-W',
+ '--showformat',
+ '${Status} ${Package} ${Version}\n',
+ 'faff'
+ ).returns(
+ "install ok installed faff 1.2.3-1\n"
+ )
+ pkg.provider.expects(
+ :aptitude
+ ).with(
+ '-y',
+ 'purge',
+ 'faff'
+ ).returns(0)
+
+ pkg.evaluate.each { |state| state.transaction = self; state.forward }
+ end
+end
diff --git a/test/ral/providers/package/dpkg.rb b/test/ral/providers/package/dpkg.rb
new file mode 100644
index 000000000..2557dd073
--- /dev/null
+++ b/test/ral/providers/package/dpkg.rb
@@ -0,0 +1,61 @@
+require File.dirname(__FILE__) + '/../../../lib/puppettest'
+
+require 'mocha'
+
+class DpkgPackageProviderTest < Test::Unit::TestCase
+ def setup
+ @type = Puppet::Type.type(:package)
+ # This is hideous, but absent a 'reset' button on types...
+ @type.instance_eval("@objects = {}")
+ end
+
+ def test_install
+ pkg = @type.create :name => 'faff',
+ :provider => :dpkg,
+ :ensure => :present,
+ :source => "/tmp/faff.deb"
+
+ pkg.provider.expects(
+ :dpkgquery
+ ).with(
+ '-W',
+ '--showformat',
+ '${Status} ${Package} ${Version}\n',
+ 'faff'
+ ).returns(
+ "deinstall ok config-files faff 1.2.3-1\n"
+ )
+
+ pkg.provider.expects(
+ :dpkg
+ ).with(
+ '-i',
+ '/tmp/faff.deb'
+ ).returns(0)
+
+ pkg.evaluate.each { |state| state.transaction = self; state.forward }
+ end
+
+ def test_purge
+ pkg = @type.create :name => 'faff', :provider => :dpkg, :ensure => :purged
+
+ pkg.provider.expects(
+ :dpkgquery
+ ).with(
+ '-W',
+ '--showformat',
+ '${Status} ${Package} ${Version}\n',
+ 'faff'
+ ).returns(
+ "install ok installed faff 1.2.3-1\n"
+ )
+ pkg.provider.expects(
+ :dpkg
+ ).with(
+ '--purge',
+ 'faff'
+ ).returns(0)
+
+ pkg.evaluate.each { |state| state.transaction = self; state.forward }
+ end
+end