diff options
author | Jeremy Chalfant <jchalfan@us.ibm.com> | 2019-06-13 19:49:47 +0000 |
---|---|---|
committer | Jeremy Chalfant <jchalfan@us.ibm.com> | 2019-06-13 20:06:44 +0000 |
commit | cc5a9963bc109d79ba554ba1638d57cb548d8c0d (patch) | |
tree | 3316e77831fb70c85ee7d84b0e4890d5e4be0d74 | |
parent | 4b42068ff72deb7cb6b3222e0053f5a36e7d7eb5 (diff) | |
download | chef-cc5a9963bc109d79ba554ba1638d57cb548d8c0d.tar.gz |
fix zypper_package upgrade provider and unit tests to verify
Signed-off-by: Jeremy Chalfant <jchalfan@us.ibm.com>
-rw-r--r-- | lib/chef/provider/package/zypper.rb | 2 | ||||
-rw-r--r-- | spec/unit/provider/package/zypper_spec.rb | 9 |
2 files changed, 10 insertions, 1 deletions
diff --git a/lib/chef/provider/package/zypper.rb b/lib/chef/provider/package/zypper.rb index a828da1c6c..6d464a1930 100644 --- a/lib/chef/provider/package/zypper.rb +++ b/lib/chef/provider/package/zypper.rb @@ -49,7 +49,7 @@ class Chef logger.trace("#{new_resource} out of date version #{current_version}") end end - current_version = candidate_version if is_installed + current_version ||= candidate_version if is_installed { current_version: current_version, candidate_version: candidate_version } end diff --git a/spec/unit/provider/package/zypper_spec.rb b/spec/unit/provider/package/zypper_spec.rb index c17eeba1bb..8ff282360e 100644 --- a/spec/unit/provider/package/zypper_spec.rb +++ b/spec/unit/provider/package/zypper_spec.rb @@ -112,6 +112,15 @@ describe Chef::Provider::Package::Zypper do expect(provider.candidate_version).to eql(["1.0"]) end + it "should have differing current and candidate versions if zypper detects an upgrade" do + status = double(stdout: "Version : 1.0 \nInstalled : Yes \nStatus : out-of-date (version 0.9 installed)", exitstatus: 0) + + allow(provider).to receive(:shell_out_compacted!).and_return(status) + provider.load_current_resource + expect(provider.get_current_versions).to eq(["0.9"]) + expect(provider.get_candidate_versions).to eq(["1.0"]) + end + it "should return the current resouce" do expect(provider.load_current_resource).to eql(current_resource) end |