diff options
author | Luke Kanies <luke@madstop.com> | 2007-10-05 00:07:38 -0500 |
---|---|---|
committer | Luke Kanies <luke@madstop.com> | 2007-10-05 00:07:38 -0500 |
commit | 0e336bf62b818aaa31fcc323ab5d31e5eb92eb46 (patch) | |
tree | 2f29d3e668aad2cade6059c74cbba60d60873561 /spec/unit/node | |
parent | 1fa591287a4ab921cec628aa0c5bf58d61fbdef2 (diff) | |
download | puppet-0e336bf62b818aaa31fcc323ab5d31e5eb92eb46.tar.gz puppet-0e336bf62b818aaa31fcc323ab5d31e5eb92eb46.tar.xz puppet-0e336bf62b818aaa31fcc323ab5d31e5eb92eb46.zip |
This commit is focused on getting the 'puppet' executable
to work. As a result, it involves a lot of integration-level
testing, and a lot of small design changes to make the code
actually work.
In particular, indirections can now have default termini,
so that configurations and facts default to their code terminus
Also, I've removed the ability to manually control whether
ast nodes are used. I might need to add it back in later,
but if so it will be in the form of a global setting,
rather than the previous system of passing it through 10 different
classes. Instead, the parser detects whether there are AST nodes
defined and requires them if so or ignores them if not.
About 75 tests are still failing in the main set of tests,
but it's going to be a long slog to get them working --
there are significant design issues around them, as most of
the failures are a result of tests trying to emulate both the
client and server sides of a connection, which normally would
have different fact termini but in this case must have the same
terminus just because they're in the same process and are global.
The next step, then, is to figure that process out, thus finding a way
to make this all work.
Diffstat (limited to 'spec/unit/node')
-rwxr-xr-x | spec/unit/node/configuration.rb | 24 | ||||
-rwxr-xr-x | spec/unit/node/facts.rb | 15 |
2 files changed, 34 insertions, 5 deletions
diff --git a/spec/unit/node/configuration.rb b/spec/unit/node/configuration.rb index 6b0677973..c94f31380 100755 --- a/spec/unit/node/configuration.rb +++ b/spec/unit/node/configuration.rb @@ -490,3 +490,27 @@ describe Puppet::Node::Configuration, " when writing dot files" do Puppet.settings.clear end end + +describe Puppet::Node::Configuration, " when indirecting" do + before do + @indirection = mock 'indirection' + + Puppet::Indirector::Indirection.clear_cache + @configuration = Puppet::Node::Facts.new("me") + end + + it "should redirect to the indirection for retrieval" do + Puppet::Node::Configuration.stubs(:indirection).returns(@indirection) + @indirection.expects(:find).with(:myconfig) + Puppet::Node::Configuration.find(:myconfig) + end + + it "should default to the code terminus" do + Puppet::Node::Configuration.indirection.terminus_class.should == :code + end + + after do + mocha_verify + Puppet::Indirector::Indirection.clear_cache + end +end diff --git a/spec/unit/node/facts.rb b/spec/unit/node/facts.rb index 61f05a2b2..ef5c91071 100755 --- a/spec/unit/node/facts.rb +++ b/spec/unit/node/facts.rb @@ -6,25 +6,30 @@ require 'puppet/node/facts' describe Puppet::Node::Facts, " when indirecting" do before do - @terminus = mock 'terminus' - Puppet::Node::Facts.stubs(:indirection).returns(@terminus) + @indirection = mock 'indirection' - # We have to clear the cache so that the facts ask for our terminus stub, + # We have to clear the cache so that the facts ask for our indirection stub, # instead of anything that might be cached. Puppet::Indirector::Indirection.clear_cache @facts = Puppet::Node::Facts.new("me", "one" => "two") end it "should redirect to the specified fact store for retrieval" do - @terminus.expects(:find).with(:my_facts) + Puppet::Node::Facts.stubs(:indirection).returns(@indirection) + @indirection.expects(:find).with(:my_facts) Puppet::Node::Facts.find(:my_facts) end it "should redirect to the specified fact store for storage" do - @terminus.expects(:save).with(@facts) + Puppet::Node::Facts.stubs(:indirection).returns(@indirection) + @indirection.expects(:save).with(@facts) @facts.save end + it "should default to the code terminus" do + Puppet::Node::Facts.indirection.terminus_class.should == :code + end + after do mocha_verify Puppet::Indirector::Indirection.clear_cache |