diff options
author | Josh Barker <josh.barker.developer@gmail.com> | 2018-06-09 13:02:24 +1000 |
---|---|---|
committer | Josh Barker <josh.barker.developer@gmail.com> | 2018-06-09 13:10:20 +1000 |
commit | 7cdf9f35f6f40b26ec2f408f31e5e43d150b80a1 (patch) | |
tree | e49689bd09279a751742345ddb24c0815fd40de5 | |
parent | 7124b8cf1ab63cef731b1943c6d8dad2fe131469 (diff) | |
download | chef-7cdf9f35f6f40b26ec2f408f31e5e43d150b80a1.tar.gz |
Add whyrun message when installing a local from on windows
Signed-off-by: Josh Barker <josh.barker.developer@gmail.com>
-rw-r--r-- | lib/chef/provider/package/windows.rb | 1 | ||||
-rw-r--r-- | spec/unit/provider/package/windows_spec.rb | 13 |
2 files changed, 11 insertions, 3 deletions
diff --git a/lib/chef/provider/package/windows.rb b/lib/chef/provider/package/windows.rb index 8958bff068..05f865d4e4 100644 --- a/lib/chef/provider/package/windows.rb +++ b/lib/chef/provider/package/windows.rb @@ -44,6 +44,7 @@ class Chef requirements.assert(:install) do |a| a.assertion { ::File.exist?(new_resource.source) } a.failure_message Chef::Exceptions::Package, "Source for package #{new_resource.name} does not exist" + a.whyrun "Assuming source file #{new_resource.source} would have been created." end end end diff --git a/spec/unit/provider/package/windows_spec.rb b/spec/unit/provider/package/windows_spec.rb index 0f4fd465c8..aed0ca88be 100644 --- a/spec/unit/provider/package/windows_spec.rb +++ b/spec/unit/provider/package/windows_spec.rb @@ -398,13 +398,20 @@ describe Chef::Provider::Package::Windows, :windows_only do context "a missing local file is given" do let(:resource_source) { "C:/a_missing_file.exe" } let(:installer_type) { nil } - - it "raises a Package error" do + before do allow(::File).to receive(:exist?).with(provider.new_resource.source).and_return(false) - provider.load_current_resource + end + + it "raises a Package error" do expect { provider.run_action(:install) }.to raise_error(Chef::Exceptions::Package) end + + it "why_run mode doesn't raise an error" do + Chef::Config[:why_run] = true + expect { provider.run_action(:install) }.not_to raise_error + Chef::Config[:why_run] = false + end end end |