summaryrefslogtreecommitdiff
path: root/spec/unit/run_context_spec.rb
diff options
context:
space:
mode:
authordanielsdeleo <dan@opscode.com>2012-11-29 15:08:52 -0800
committerdanielsdeleo <dan@opscode.com>2012-11-30 14:51:47 -0800
commitb213ae8e8c7aac472332298f0f455d36d122a7b5 (patch)
tree69e7ff6ca2ae29c217a1b3e982b5ed74748b49f8 /spec/unit/run_context_spec.rb
parent8660bf4c410cc60b4028fc1f44a1fe67e71b8648 (diff)
downloadchef-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.rb139
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'))