summaryrefslogtreecommitdiffstats
path: root/test/language
diff options
context:
space:
mode:
authorluke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>2006-06-13 18:09:40 +0000
committerluke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>2006-06-13 18:09:40 +0000
commitb4b3c27ff4d0c748c68efd856865dffb65f0ba90 (patch)
tree3460c6de945fc8d04a202a375c4ba415f1aa9788 /test/language
parentba4071cba3fc4c975538199933945f09bd4d28b2 (diff)
Adding support for default nodes as requested in #136.
git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1261 980ebf18-57e1-0310-9a29-db15c13687c0
Diffstat (limited to 'test/language')
-rwxr-xr-xtest/language/interpreter.rb13
-rw-r--r--test/language/node.rb47
2 files changed, 59 insertions, 1 deletions
diff --git a/test/language/interpreter.rb b/test/language/interpreter.rb
index 22a2e71e8..4ce35d48e 100755
--- a/test/language/interpreter.rb
+++ b/test/language/interpreter.rb
@@ -135,7 +135,7 @@ class TestInterpreter < Test::Unit::TestCase
"(&(objectclass=puppetclient)(cn=%s))" % node
) do |entry|
parent = entry.vals("parentnode").shift
- classes = entry.vals("puppetclass")
+ classes = entry.vals("puppetclass") || []
end
return parent, classes
@@ -173,6 +173,17 @@ class TestInterpreter < Test::Unit::TestCase
parent = nil
classes = nil
+ # First make sure we get the default node for unknown hosts
+ dparent, dclasses = ldaphost("default")
+
+ assert_nothing_raised {
+ parent, classes = interp.nodesearch("nosuchhostokay")
+ }
+
+ assert_equal(dparent, parent, "Default parent node did not match")
+ assert_equal(dclasses, classes, "Default parent class list did not match")
+
+ # Now look for our normal host
assert_nothing_raised {
parent, classes = interp.nodesearch_ldap(hostname)
}
diff --git a/test/language/node.rb b/test/language/node.rb
index 81a4c77cb..a1bb58a9f 100644
--- a/test/language/node.rb
+++ b/test/language/node.rb
@@ -81,4 +81,51 @@ class TestParser < Test::Unit::TestCase
@parser.parse
}
end
+
+ # Make sure we can find default nodes if there's no other entry
+ def test_default_node
+ Puppet[:parseonly] = false
+ @parser = Puppet::Parser::Parser.new()
+
+ fileA = tempfile()
+ fileB = tempfile()
+ @parser.string = %{
+node mynode {
+ file { "#{fileA}": ensure => file }
+}
+
+node default {
+ file { "#{fileB}": ensure => file }
+}
+}
+
+ # First make sure it parses
+ ast = nil
+ assert_nothing_raised {
+ ast = @parser.parse
+ }
+
+ args = {
+ :ast => ast,
+ :facts => {},
+ :names => ["mynode"]
+ }
+ # Make sure we get a config for "mynode"
+
+ trans = nil
+ assert_nothing_raised {
+ trans = Puppet::Parser::Scope.new.evaluate(args)
+ }
+
+ assert(trans, "Did not get config for mynode")
+
+ args[:names] = ["othernode"]
+ # Now make sure the default node is used
+ trans = nil
+ assert_nothing_raised {
+ trans = Puppet::Parser::Scope.new.evaluate(args)
+ }
+
+ assert(trans, "Did not get config for default node")
+ end
end