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
|
#!/usr/bin/env ruby
$:.unshift("../lib").unshift("../../lib") if __FILE__ =~ /\.rb$/
require 'puppet'
require 'puppet/server/runner'
require 'puppettest'
class TestServerRunner < Test::Unit::TestCase
include PuppetTest
def mkclient(file)
master = nil
client = nil
# create our master
assert_nothing_raised() {
# this is the default server setup
master = Puppet::Server::Master.new(
:Manifest => file,
:UseNodes => false,
:Local => true
)
}
# and our client
assert_nothing_raised() {
client = Puppet::Client::MasterClient.new(
:Master => master
)
}
client
end
def test_runner
Puppet[:ignoreschedules] = false
# Okay, make our manifest
file = tempfile()
created = tempfile()
File.open(file, "w") do |f|
f.puts %{
class yayness {
file { "#{created}": ensure => file, schedule => weekly }
}
include yayness
}
end
client = mkclient(file)
runner = nil
assert_nothing_raised {
runner = Puppet::Server::Runner.new
}
# First: tags
# Second: ignore schedules true/false
# Third: background true/false
# Fourth: whether file should exist true/false
[
["with no backgrounding",
nil, true, true, true],
["in the background",
nil, true, false, true],
["with a bad tag",
["coolness"], true, false, false],
["with another bad tag",
"coolness", true, false, false],
["with a good tag",
["coolness", "yayness"], true, false, true],
["with another good tag",
["yayness"], true, false, true],
["with a third good tag",
"yayness", true, false, true],
["with no tags",
"", true, false, true],
["not ignoring schedules",
nil, false, false, false],
["ignoring schedules",
nil, true, false, true],
].each do |msg, tags, ignore, fg, shouldexist|
if FileTest.exists?(created)
File.unlink(created)
end
assert_nothing_raised {
# Try it without backgrounding
runner.run(tags, ignore, fg)
}
unless fg
Puppet.join
end
if shouldexist
assert(FileTest.exists?(created), "File did not get created " +
msg)
else
assert(!FileTest.exists?(created), "File got created incorrectly " +
msg)
end
end
end
end
# $Id: runner.rb 1869 2006-11-13 06:11:39Z luke $
|