diff options
author | danielsdeleo <dan@opscode.com> | 2012-11-29 15:08:52 -0800 |
---|---|---|
committer | danielsdeleo <dan@opscode.com> | 2012-11-30 14:51:47 -0800 |
commit | b213ae8e8c7aac472332298f0f455d36d122a7b5 (patch) | |
tree | 69e7ff6ca2ae29c217a1b3e982b5ed74748b49f8 /spec/unit/run_context_spec.rb | |
parent | 8660bf4c410cc60b4028fc1f44a1fe67e71b8648 (diff) | |
download | chef-b213ae8e8c7aac472332298f0f455d36d122a7b5.tar.gz |
[CHEF-3376] extract CookbookCompiler specs
Diffstat (limited to 'spec/unit/run_context_spec.rb')
-rw-r--r-- | spec/unit/run_context_spec.rb | 139 |
1 files changed, 0 insertions, 139 deletions
diff --git a/spec/unit/run_context_spec.rb b/spec/unit/run_context_spec.rb index 48f26fbf5c..51fa0e81f9 100644 --- a/spec/unit/run_context_spec.rb +++ b/spec/unit/run_context_spec.rb @@ -22,23 +22,6 @@ require 'spec_helper' Chef::Log.level = :debug -# Keeps track of what file got loaded in what order. -module LibraryLoadOrder - extend self - - def load_order - @load_order ||= [] - end - - def reset! - @load_order = nil - end - - def record(file) - load_order << file - end -end - describe Chef::RunContext do before(:each) do @chef_repo_path = File.expand_path(File.join(CHEF_SPEC_DATA, "run_context", "cookbooks")) @@ -59,128 +42,6 @@ describe Chef::RunContext do @run_context.node.should == @node end - def fixture_cb_path(rel_path) - File.expand_path(rel_path, @chef_repo_path) - end - - # This test relies on fixture data in spec/data/run_context/cookbooks. - # The behaviors described in these examples are affected by the metadata.rb - # files and attributes files in those cookbooks. - # - # Attribute files in the fixture data will append their - # "cookbook_name::attribute_file_name" to the node's `:attr_load_order` - # attribute when loaded. - describe "loading attribute files" do - - it "loads default.rb first, then other files in sort order" do - @node.run_list("dependency1::default") - @expansion = (@node.run_list.expand('_default')) - - @run_context.load_attributes_in_run_list_order(@expansion) - @node[:attr_load_order].should == ["dependency1::default", "dependency1::aa_first", "dependency1::zz_last"] - end - - it "loads dependencies before loading the depending cookbook's attributes" do - # Also make sure that attributes aren't loaded twice if we have two - # recipes from the same cookbook in the run list - @node.run_list("test-with-deps::default", "test-with-deps::server") - @expansion = (@node.run_list.expand('_default')) - - @run_context.load_attributes_in_run_list_order(@expansion) - - # dependencies are stored in a hash so therefore unordered, but they should be loaded in sort order - @node[:attr_load_order].should == ["dependency1::default", - "dependency1::aa_first", - "dependency1::zz_last", - "dependency2::default", - "test-with-deps::default"] - end - - it "does not follow infinite dependency loops" do - @node.run_list("test-with-circular-deps::default") - @expansion = (@node.run_list.expand('_default')) - - # Circular deps should not cause infinite loops - @run_context.load_attributes_in_run_list_order(@expansion) - - @node[:attr_load_order].should == ["circular-dep2::default", "circular-dep1::default", "test-with-circular-deps::default"] - end - - it "loads attributes from cookbooks that don't have a default.rb attribute file" do - @node.run_list("no-default-attr::default.rb") - @expansion = (@node.run_list.expand('_default')) - - #@run_context.should_receive(:load_attribute_file).with("no-default-attr", fixture_cb_path("no-default-attr/attributes/server.rb")) - @run_context.load_attributes_in_run_list_order(@expansion) - - @node[:attr_load_order].should == ["no-default-attr::server"] - end - end - - describe "loading libraries" do - before do - LibraryLoadOrder.reset! - end - - # One big test for everything. Individual behaviors are tested by the attribute code above. - it "loads libraries in run list order" do - @node.run_list("test-with-deps::default", "test-with-circular-deps::default") - @expansion = (@node.run_list.expand('_default')) - - @run_context.load_libraries_in_run_list_order(@expansion) - LibraryLoadOrder.load_order.should == ["dependency1", "dependency2", "test-with-deps", "circular-dep2", "circular-dep1", "test-with-circular-deps"] - end - end - - describe "loading LWRPs" do - before do - LibraryLoadOrder.reset! - end - - # One big test for everything. Individual behaviors are tested by the attribute code above. - it "loads LWRPs in run list order" do - @node.run_list("test-with-deps::default", "test-with-circular-deps::default") - @expansion = (@node.run_list.expand('_default')) - - @run_context.load_lwrps_in_run_list_order(@expansion) - LibraryLoadOrder.load_order.should == ["dependency1-provider", - "dependency1-resource", - "dependency2-provider", - "dependency2-resource", - "test-with-deps-provider", - "test-with-deps-resource", - "circular-dep2-provider", - "circular-dep2-resource", - "circular-dep1-provider", - "circular-dep1-resource", - "test-with-circular-deps-provider", - "test-with-circular-deps-resource"] - end - end - - describe "loading resource definitions" do - before do - LibraryLoadOrder.reset! - end - - # One big test for all load order concerns. Individual behaviors are tested - # by the attribute code above. - it "loads resource definitions in run list order" do - @node.run_list("test-with-deps::default", "test-with-circular-deps::default") - @expansion = (@node.run_list.expand('_default')) - - @run_context.load_resource_definitions_in_run_list_order(@expansion) - LibraryLoadOrder.load_order.should == ["dependency1-definition", - "dependency2-definition", - "test-with-deps-definition", - "circular-dep2-definition", - "circular-dep1-definition", - "test-with-circular-deps-definition"] - end - - end - - describe "after loading the cookbooks" do before do @run_context.load(@node.run_list.expand('_default')) |