blob: a878d13818a0d547cc7ca5dbfdcede3f96c209ef (
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
|
#!/usr/bin/env ruby
require File.dirname(__FILE__) + '/../lib/puppettest'
require 'puppettest'
require 'puppet/parser/parser'
require 'puppet/network/client'
require 'puppet/rails'
require 'puppettest/resourcetesting'
require 'puppettest/parsertesting'
require 'puppettest/servertest'
require 'puppettest/railstesting'
class ConfigurationRailsTests < PuppetTest::TestCase
include PuppetTest
include PuppetTest::ServerTest
include PuppetTest::ParserTesting
include PuppetTest::ResourceTesting
include PuppetTest::RailsTesting
AST = Puppet::Parser::AST
confine "No rails support" => Puppet.features.rails?
# We need to make sure finished objects are stored in the db.
def test_finish_before_store
railsinit
compile = mkcompiler
parser = compile.parser
node = parser.newnode [compile.node.name], :code => AST::ASTArray.new(:children => [
resourcedef("file", "/tmp/yay", :group => "root"),
defaultobj("file", :owner => "root")
])
# Now do the rails crap
Puppet[:storeconfigs] = true
Puppet::Rails::Host.expects(:store).with do |node, resources|
if res = resources.find { |r| r.type == "File" and r.title == "/tmp/yay" }
assert_equal("root", res["owner"], "Did not set default on resource")
true
else
raise "Resource was not passed to store()"
end
end
compile.compile
end
def test_hoststorage
assert_nothing_raised {
Puppet[:storeconfigs] = true
}
Puppet[:code] = "file { \"/etc\": owner => root }"
interp = Puppet::Parser::Interpreter.new
facts = {}
Facter.each { |fact, val| facts[fact] = val }
node = mknode(facts["hostname"])
node.parameters = facts
objects = nil
assert_nothing_raised {
objects = interp.compile(node)
}
obj = Puppet::Rails::Host.find_by_name(node.name)
assert(obj, "Could not find host object")
end
end
|