summaryrefslogtreecommitdiffstats
path: root/test/providers/package.rb
blob: 1b74e8aac604eb024de77138b551906d0cdfefb0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#!/usr/bin/env ruby

$:.unshift("../lib").unshift("../../lib") if __FILE__ =~ /\.rb$/

require 'etc'
require 'puppet/type'
require 'puppettest'

class TestPackageProvider < Test::Unit::TestCase
	include PuppetTest
    def setup
        super
        @provider = nil
        assert_nothing_raised {
            @provider = Puppet::Type.type(:package).defaultprovider
        }

        assert(@provider, "Could not find default package provider")
        assert(@provider.name != :fake, "Got a fake provider")
    end

    def test_nothing
    end

    if Facter["operatingsystem"].value == "Solaris" and Puppet::SUIDManager.uid == 0
    if Puppet.type(:package).provider(:blastwave).suitable?
    # FIXME The packaging crap needs to be rewritten to support testing
    # multiple package types on the same platform.
    def test_list_blastwave
        pkgs = nil
        assert_nothing_raised {
            pkgs = Puppet::Type.type(:package).provider(:blastwave).list
        }

        pkgs.each do |pkg|
            if pkg[:name] =~ /^CSW/
                assert_equal(:blastwave, pkg[:provider],
                    "Type was not set correctly")
            end
        end
    end

    def test_install_blastwave
        pkg = nil
        name = "cabextract"
        model = fakemodel(:package, name)
        assert_nothing_raised {
            pkg = Puppet::Type.type(:package).provider(:blastwave).new(model)
        }

        if hash = pkg.query and hash[:ensure] != :absent
            p hash
            $stderr.puts "Cannot test pkg installation; %s is already installed" %
                name
            return
        end

        assert_nothing_raised {
            pkg.install
        }

        hash = nil
        assert(hash = pkg.query,
            "package did not install")
        assert(hash[:ensure] != :absent,
            "package did not install")

        latest = nil
        assert_nothing_raised {
            latest = pkg.latest
        }
        assert(latest, "Could not find latest package version")
        assert_nothing_raised {
            pkg.uninstall
        }
    end
    else
        $stderr.puts "No pkg-get scripting; skipping blastwave tests"
    end
    end
end

# $Id$