Skip to content

Commit

Permalink
Make commit results handling more robust
Browse files Browse the repository at this point in the history
  • Loading branch information
imobachgs committed Feb 23, 2016
1 parent 7417354 commit 91f3494
Show file tree
Hide file tree
Showing 4 changed files with 37 additions and 5 deletions.
10 changes: 5 additions & 5 deletions library/packages/src/lib/packages/commit_result.rb
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ class << self
#
# @param result [Array] Result as returned by Pkg.Commit and Pkg.PkgCommit
def from_result(result)
messages = build_update_messages(result[4])
messages = build_update_messages(result[4] || [])
new(result[0], result[1], result[2], result[3], messages)
end

Expand Down Expand Up @@ -51,10 +51,10 @@ def build_update_messages(messages)
# @see build_update_messages
def initialize(successful, failed, remaining, srcremaining, update_messages)
@successful = successful
@failed = failed
@remaining = remaining
@srcremaining = srcremaining
@update_messages = update_messages
@failed = failed || []
@remaining = remaining || []
@srcremaining = srcremaining || []
@update_messages = update_messages || []
end
end
end
1 change: 1 addition & 0 deletions library/packages/src/modules/PackagesUI.rb
Original file line number Diff line number Diff line change
Expand Up @@ -783,6 +783,7 @@ def ShowInstallationSummary
#
# @param [Array] result Result from package commit (as it comes from PkgCommit)
def show_update_messages(result)
return false if result.nil?
commit_result = ::Packages::CommitResult.from_result(result)
return false if commit_result.update_messages.empty?
view = ::Packages::UpdateMessagesView.new(commit_result.update_messages)
Expand Down
13 changes: 13 additions & 0 deletions library/packages/test/commit_result_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -28,5 +28,18 @@
expect(result.update_messages)
.to eq([Packages::UpdateMessage.new(message["solvable"], message["text"], message["installationPath"], message["currentPath"])])
end

context "when result is a failure" do
let(:old_result) { [-1] }

it "builds a new instance from Pkg.Commit/Pkg.PkgCommit return value" do
result = Packages::CommitResult.from_result(old_result)
expect(result.successful).to eq(-1)
expect(result.failed).to be_empty
expect(result.remaining).to be_empty
expect(result.srcremaining).to be_empty
expect(result.update_messages).to be_empty
end
end
end
end
18 changes: 18 additions & 0 deletions library/packages/test/packages_ui_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -52,5 +52,23 @@
packages_ui.show_update_messages(result)
end
end

context "when commit failed" do
let(:result) { [-1] }

it "does not open a popup" do
expect(Yast::Report).to_not receive(:LongMessage)
packages_ui.show_update_messages(result)
end
end

context "when nil is passed" do
let(:result) { nil }

it "does not open a popup" do
expect(Yast::Report).to_not receive(:LongMessage)
packages_ui.show_update_messages(result)
end
end
end
end

0 comments on commit 91f3494

Please sign in to comment.