summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLamont Granquist <lamont@chef.io>2019-08-07 13:47:58 -0700
committerGitHub <noreply@github.com>2019-08-07 13:47:58 -0700
commit8d7d9d0d5a2dc647e6132cfed93fa6035c65c8ca (patch)
tree1ec46cffefa4e9581b79df17d789e48b81f4efd5
parentb73feff021c99b98dfad22e56c3026a2eb1c635e (diff)
parentcc5a9963bc109d79ba554ba1638d57cb548d8c0d (diff)
downloadchef-8d7d9d0d5a2dc647e6132cfed93fa6035c65c8ca.tar.gz
zypper_package upgrade action not working (#8462)
zypper_package upgrade action not working
-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 a8ab2a0b37..6b64db2fbf 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