diff options
| author | luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0> | 2006-06-13 18:09:40 +0000 |
|---|---|---|
| committer | luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0> | 2006-06-13 18:09:40 +0000 |
| commit | b4b3c27ff4d0c748c68efd856865dffb65f0ba90 (patch) | |
| tree | 3460c6de945fc8d04a202a375c4ba415f1aa9788 /test/language | |
| parent | ba4071cba3fc4c975538199933945f09bd4d28b2 (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-x | test/language/interpreter.rb | 13 | ||||
| -rw-r--r-- | test/language/node.rb | 47 |
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 |
