diff options
-rw-r--r-- | lib/puppet/parser/interpreter.rb | 4 | ||||
-rwxr-xr-x | test/language/interpreter.rb | 39 |
2 files changed, 32 insertions, 11 deletions
diff --git a/lib/puppet/parser/interpreter.rb b/lib/puppet/parser/interpreter.rb index 0117ac2dd..63b107985 100644 --- a/lib/puppet/parser/interpreter.rb +++ b/lib/puppet/parser/interpreter.rb @@ -364,6 +364,10 @@ class Puppet::Parser::Interpreter unless @nodesources.include?(:code) @nodesources << :code end + + unless Puppet[:external_nodes] == "none" + @nodesources << :external + end @setup = false diff --git a/test/language/interpreter.rb b/test/language/interpreter.rb index c1c16b441..774c317b2 100755 --- a/test/language/interpreter.rb +++ b/test/language/interpreter.rb @@ -932,17 +932,7 @@ class TestInterpreter < Test::Unit::TestCase end end - def test_nodesearch_external - interp = mkinterp - - # Make a fake gennode method - class << interp - def gennode(name, args) - args[:name] = name - return args - end - end - + def mk_node_mapper # First, make sure our nodesearch command works as we expect # Make a nodemapper mapper = tempfile() @@ -963,6 +953,19 @@ class TestInterpreter < Test::Unit::TestCase " } File.chmod(0755, mapper) + mapper + end + + def test_nodesearch_external + interp = mkinterp + + # Make a fake gennode method + class << interp + def gennode(name, args) + args[:name] = name + return args + end + end # Make sure it gives the right response assert_equal("bpple\napple1 apple2 apple3\n", @@ -973,6 +976,8 @@ class TestInterpreter < Test::Unit::TestCase assert_nil(interp.nodesearch_external("apple"), "Interp#nodesearch_external defaulted to a non-nil response") } + + mapper = mk_node_mapper assert_nothing_raised { Puppet[:external_nodes] = mapper } node = nil @@ -991,7 +996,19 @@ class TestInterpreter < Test::Unit::TestCase assert_nothing_raised { node = interp.nodesearch_external("honeydew")} # neither, thus nil assert_nil(node) + end + + def test_nodesearch_external_functional + mapper = mk_node_mapper + + Puppet[:external_nodes] = mapper + interp = mkinterp + node = nil + assert_nothing_raised do + node = interp.nodesearch("apple") + end + assert_instance_of(Puppet::Parser::AST::Node, node, "did not create node") end end |