summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorluke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>2006-07-03 20:06:32 +0000
committerluke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>2006-07-03 20:06:32 +0000
commite57c5131aee017bd015e9419b5a1ceeb306677a7 (patch)
tree597984120e13b03bd96017afb84a050a728e17ea /test
parent25cf31b00057d552fcffde568049e37655c31fbc (diff)
Adding Ruby Gem support to packaging
git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1354 980ebf18-57e1-0310-9a29-db15c13687c0
Diffstat (limited to 'test')
-rw-r--r--test/types/package.rb80
1 files changed, 80 insertions, 0 deletions
diff --git a/test/types/package.rb b/test/types/package.rb
index e52d2384f..c6758885e 100644
--- a/test/types/package.rb
+++ b/test/types/package.rb
@@ -385,6 +385,86 @@ class TestPackages < Test::Unit::TestCase
assert(FileTest.exists?("/tmp/pkgtesting/file"), "File did not get created")
end
end
+
+ # Yay, gems. They're special because any OS can test them.
+ if %x{which gem 2>/dev/null}.chomp != ""
+ def test_list_gems
+ gems = nil
+ assert_nothing_raised {
+ gems = Puppet::Type.type(:package).pkgtype(:gem).list
+ }
+
+ gems.each do |gem|
+ assert_equal(:gem, gem[:type],
+ "Type was not set correctly")
+ end
+ end
+
+ def test_install_gems
+ gem = nil
+ name = "wxrubylayouts"
+ assert_nothing_raised {
+ gem = Puppet::Type.newpackage(
+ :name => name,
+ :version => "0.0.2",
+ :ensure => "installed",
+ :type => :gem
+ )
+ }
+
+ assert_nothing_raised {
+ gem.retrieve
+ }
+
+ if gem.is(:ensure) == :installed
+ $stderr.puts "Cannot test gem installation; %s is already installed" %
+ name
+ end
+
+ assert_events([:package_created], gem)
+
+ assert_nothing_raised {
+ gem.retrieve
+ }
+
+ assert_equal("0.0.2", gem.is(:ensure),
+ "Incorrect version was installed")
+
+ latest = nil
+ assert_nothing_raised {
+ latest = gem.latest
+ }
+
+ assert(latest != gem[:version], "Did not correctly find latest value")
+
+ gem[:ensure] = :latest
+ assert_events([:package_changed], gem)
+
+ gem.retrieve
+
+ assert("0.0.2" != gem.is(:ensure),
+ "Package was not updated.")
+
+ gem[:ensure] = :absent
+
+ assert_events([:package_removed], gem)
+ end
+
+ else
+ def test_nogems_nofailures
+ obj = nil
+ assert_nothing_raised do
+ Puppet::Type.newpackage(
+ :name => "yayness",
+ :type => "gem",
+ :ensure => "installed"
+ )
+ end
+
+ assert_nil(Puppet::Type.type(:package)["yayness"],
+ "Invalid gem package got created")
+ end
+ end
end
if ["Fedora", "RedHat", "CentOS"].include?(Facter["operatingsystem"].value) and
FileTest.exists?("/home/luke/rpm/RPMS/i386/puppet-server-0.16.1-1.i386.rpm")