spec/functional/resource/template_spec.rb in microwave-1.0.4 vs spec/functional/resource/template_spec.rb in microwave-11.400.2

- old
+ new

@@ -25,18 +25,20 @@ let(:file_base) { "template_spec" } let(:expected_content) { "slappiness is a warm gun" } let(:node) do node = Chef::Node.new - node[:slappiness] = "a warm gun" + node.normal[:slappiness] = "a warm gun" node end def create_resource cookbook_repo = File.expand_path(File.join(CHEF_SPEC_DATA, "cookbooks")) Chef::Cookbook::FileVendor.on_create { |manifest| Chef::Cookbook::FileSystemFileVendor.new(manifest, cookbook_repo) } - cookbook_collection = Chef::CookbookCollection.new(Chef::CookbookLoader.new(cookbook_repo)) + cl = Chef::CookbookLoader.new(cookbook_repo) + cl.load_cookbooks + cookbook_collection = Chef::CookbookCollection.new(cl) events = Chef::EventDispatch::Dispatcher.new run_context = Chef::RunContext.new(node, cookbook_collection, events) resource = Chef::Resource::Template.new(path, run_context) resource.source('openldap_stuff.conf.erb') resource.cookbook('openldap') @@ -45,10 +47,29 @@ let!(:resource) do create_resource end + let(:default_mode) do + # TODO: Lots of ugly here :( + # RemoteFile uses FileUtils.cp. FileUtils does a copy by opening the + # destination file and writing to it. Before 1.9.3, it does not preserve + # the mode of the copied file. In 1.9.3 and after, it does. So we have to + # figure out what the default mode ought to be via heuristic. + + t = Tempfile.new("get-the-mode") + path = t.path + path_2 = t.path + "fileutils-mode-test" + FileUtils.cp(path, path_2) + t.close + m = File.stat(path_2).mode + (07777 & m).to_s(8) + end + + it_behaves_like "a file resource" + + it_behaves_like "a securable resource with reporting" context "when the target file does not exist" do it "creates the template with the rendered content using the variable attribute when the :create action is run" do resource.source('openldap_variable_stuff.conf.erb') resource.variables(:secret => "nutella")