summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy Chalfant <jchalfan@us.ibm.com>2019-06-13 19:49:47 +0000
committerJeremy Chalfant <jchalfan@us.ibm.com>2019-06-13 20:06:44 +0000
commitcc5a9963bc109d79ba554ba1638d57cb548d8c0d (patch)
tree3316e77831fb70c85ee7d84b0e4890d5e4be0d74
parent4b42068ff72deb7cb6b3222e0053f5a36e7d7eb5 (diff)
downloadchef-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.rb2
-rw-r--r--spec/unit/provider/package/zypper_spec.rb9
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