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")