summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorLuke Kanies <luke@madstop.com>2007-11-26 19:27:30 -0600
committerLuke Kanies <luke@madstop.com>2007-11-26 19:27:30 -0600
commit12ebbe2442e8f05585fb1c0bd9dcbe052fd59ba7 (patch)
treeb437db22033e6ff7310675eda781097803e4fa9a /test
parentfc7f1b4f70d8e4b62852a0da0af21fcb67a1a89c (diff)
downloadpuppet-12ebbe2442e8f05585fb1c0bd9dcbe052fd59ba7.tar.gz
puppet-12ebbe2442e8f05585fb1c0bd9dcbe052fd59ba7.tar.xz
puppet-12ebbe2442e8f05585fb1c0bd9dcbe052fd59ba7.zip
Rewriting the tests for the package resource type, fixing #930.
Diffstat (limited to 'test')
-rwxr-xr-xtest/ral/providers/package.rb2
-rwxr-xr-xtest/ral/types/package.rb158
2 files changed, 1 insertions, 159 deletions
diff --git a/test/ral/providers/package.rb b/test/ral/providers/package.rb
index a602a4dab..2040d6633 100755
--- a/test/ral/providers/package.rb
+++ b/test/ral/providers/package.rb
@@ -149,7 +149,7 @@ class TestPackageProvider < Test::Unit::TestCase
assert_absent(provider)
if Process.uid != 0
- $stderr.puts "Run as root for full package tests"
+ Puppet.info "Run as root for full package tests"
return
end
diff --git a/test/ral/types/package.rb b/test/ral/types/package.rb
deleted file mode 100755
index c8d7d6088..000000000
--- a/test/ral/types/package.rb
+++ /dev/null
@@ -1,158 +0,0 @@
-#!/usr/bin/env ruby
-
-require File.dirname(__FILE__) + '/../../lib/puppettest'
-
-require 'puppettest'
-require 'puppettest/support/utils'
-require 'facter'
-require 'mocha'
-
-$platform = Facter["operatingsystem"].value
-
-class TestPackages < Test::Unit::TestCase
- include PuppetTest::Support::Utils
- include PuppetTest::FileTesting
- def setup
- super
- Puppet.type(:package).clear
- @type = Puppet::Type.type(:package)
- end
-
- # This is a bare-minimum test and *really* needs to do much more.
- def test_package_actions
- @type.provide :fake, :parent => PuppetTest::FakeProvider do
- apimethods :ensure
- def install
- self.ensure = @resource.should(:ensure)
- end
-
- def uninstall
- self.ensure = :absent
- end
-
- def query
- case self.ensure
- when :absent, nil: nil
- else
- {:ensure => self.ensure}
- end
- end
- end
-
- pkg = nil
- assert_nothing_raised do
- pkg = @type.create :name => "testing", :provider => :fake
- end
- assert(pkg, "did not create package")
-
- current_values = nil
- assert_nothing_raised do
- current_values = pkg.retrieve
- end
-
- assert_equal(:absent, current_values[pkg.property(:ensure)],
- "package not considered missing")
- assert_equal(:present, pkg.should(:ensure),
- "package did not default to installed")
-
- assert_events([:package_installed], pkg)
-
- pkg[:ensure] = :absent
- assert_events([:package_removed], pkg)
- end
-
- def test_packagedefaults
- should = case Facter["operatingsystem"].value
- when "Debian": :apt
- when "Darwin": :apple
- when "RedHat": :up2date
- when "Fedora": :yum
- when "FreeBSD": :ports
- when "OpenBSD": :openbsd
- when "Solaris": :sun
- end
-
- unless default = Puppet::Type.type(:package).defaultprovider
- $stderr.puts "no default provider for %s" %
- Facter["operatingsystem"].value
- return
- end
-
-
- if should
- assert_equal(should, default.name,
- "Incorrect default package format")
- end
- end
-
- # Make sure we can prefetch and retrieve packages
- def test_package_instances
- providers = []
- instances = nil
- assert_nothing_raised("Could not get package instances") do
- instances = @type.instances
- end
- instances.each do |resource|
- # Just do one of each type
- next if providers.include?(resource.provider.class)
- providers << resource.provider.class
-
- # We should have data on the resource
- assert(resource.exists?, "Listed resource thinks it's absent")
-
- # Now flush the resource and make sure it clears the property_hash
- assert_nothing_raised("Could not flush package") do
- resource.flush
- end
-
- assert_equal(:absent, resource.provider.get(:ensure), "Flushing did not empty property hash")
-
- # And query anew
- props = nil
- assert_nothing_raised("Could not retrieve package again") do
- props = resource.retrieve
- end
- provider_props = resource.provider.send(:instance_variable_get, "@property_hash")
- props.each do |prop, value|
- assert_equal(value, provider_props[prop.name], "Query did not return same result as the property_hash for %s" % prop.name)
- end
- end
- end
-
- # Make sure we can prefetch package information, rather than getting it one package at a time.
- def test_prefetch
- @type.providers_by_source.each do |provider|
- # The yum provider can't be used if you're not root
- next if provider.name == :yum && Process.euid != 0
-
- # First get a list of packages
- list = provider.instances
-
- packages = {}
- list.each do |package|
- packages[package.name] = @type.create(:name => package.name, :ensure => :installed)
- break if packages.length > 4
- end
-
- # Now prefetch using that list of packages
- assert_nothing_raised("Could not prefetch with %s" % provider.name) do
- provider.prefetch(packages)
- end
-
- # And make sure each package is marked as existing, without calling query
- packages.each do |name, package|
- assert(package.exists?, "Package of type %s not marked present" % provider.name)
- package.provider.expects(:query).never
- end
- end
- end
-
- # #716
- def test_purge_is_not_installed
- package = @type.create(:ensure => :installed, :name => "whatever")
-
- property = package.property(:ensure)
- assert(! property.insync?(:purged), "Package in state 'purged' was considered in sync")
- end
-end
-