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 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137
|
#!/usr/bin/env ruby
$:.unshift("../lib").unshift("../../lib") if __FILE__ =~ /\.rb$/
require 'puppettest'
require 'puppet'
require 'test/unit'
require 'facter'
class TestHost < Test::Unit::TestCase
include PuppetTest
def setup
super
@hosttype = Puppet.type(:host)
@provider = @hosttype.defaultprovider
# Make sure they aren't using something funky like netinfo
unless @provider.name == :parsed
@hosttype.defaultprovider = @hosttype.provider(:parsed)
end
cleanup do @hosttype.defaultprovider = nil end
if @provider.respond_to?(:default_target=)
@default_file = @provider.default_target
cleanup do
@provider.default_target = @default_file
end
@target = tempfile()
@provider.default_target = @target
end
end
def mkhost
if defined? @hcount
@hcount += 1
else
@hcount = 1
end
host = nil
assert_nothing_raised {
host = Puppet.type(:host).create(
:name => "fakehost%s" % @hcount,
:ip => "192.168.27.%s" % @hcount,
:alias => "alias%s" % @hcount
)
}
return host
end
def test_list
assert_nothing_raised do
@hosttype.defaultprovider.prefetch
end
count = 0
@hosttype.each do |h|
count += 1
end
assert_equal(0, count, "Found hosts in empty file somehow")
end
# Darwin will actually write to netinfo here.
if Facter.value(:operatingsystem) != "Darwin" or Process.uid == 0
def test_simplehost
host = nil
assert_nothing_raised {
host = Puppet.type(:host).create(
:name => "culain",
:ip => "192.168.0.3"
)
}
assert_events([:host_created], host)
assert_nothing_raised { host.retrieve }
assert_equal(:present, host.is(:ensure))
host[:ensure] = :absent
assert_events([:host_deleted], host)
assert_nothing_raised { host.retrieve }
assert_equal(:absent, host.is(:ensure))
end
def test_moddinghost
host = mkhost()
assert_events([:host_created], host)
host.retrieve
# This was a hard bug to track down.
assert_instance_of(String, host.is(:ip))
host[:alias] = %w{madstop kirby yayness}
assert_events([:host_changed], host)
host.retrieve
assert_equal(%w{madstop kirby yayness}, host.is(:alias))
end
end
def test_aliasisstate
assert_equal(:state, @hosttype.attrtype(:alias))
end
def test_multivalues
host = mkhost
assert_raise(Puppet::Error) {
host[:alias] = "puppetmasterd yayness"
}
end
def test_puppetalias
host = mkhost()
assert_nothing_raised {
host[:alias] = "testing"
}
same = host.class["testing"]
assert(same, "Could not retrieve by alias")
end
end
# $Id: host.rb 1875 2006-11-13 08:40:35Z luke $
|