Skip to content

Commit

Permalink
Fixed a crash when selecting depending products (bsc#1208421)
Browse files Browse the repository at this point in the history
- 4.5.16
  • Loading branch information
lslezak committed Feb 20, 2023
1 parent 19777c7 commit de05a05
Show file tree
Hide file tree
Showing 4 changed files with 34 additions and 3 deletions.
6 changes: 6 additions & 0 deletions package/yast2-packager.changes
@@ -1,3 +1,9 @@
-------------------------------------------------------------------
Mon Feb 20 14:25:37 UTC 2023 - Ladislav Slezák <lslezak@suse.com>

- Fixed a crash when selecting depending products (bsc#1208421)
- 4.5.16

-------------------------------------------------------------------
Tue Feb 14 13:40:12 UTC 2023 - Martin Vidner <mvidner@suse.com>

Expand Down
2 changes: 1 addition & 1 deletion package/yast2-packager.spec
Expand Up @@ -17,7 +17,7 @@


Name: yast2-packager
Version: 4.5.15
Version: 4.5.16
Release: 0
Summary: YaST2 - Package Library
License: GPL-2.0-or-later
Expand Down
3 changes: 2 additions & 1 deletion src/lib/y2packager/dialogs/addon_selector.rb
Expand Up @@ -155,7 +155,8 @@ def select_dependent_products
selected_items.concat(p&.depends_on)
end

selected_items.uniq!.compact!
selected_items.uniq!
selected_items.compact!

Yast::UI.ChangeWidget(:addon_repos, :SelectedItems, selected_items)
end
Expand Down
26 changes: 25 additions & 1 deletion test/addon_selector_test.rb
Expand Up @@ -11,7 +11,9 @@
Y2Packager::RepoProductSpec.new(name: "sle-module-basesystem", dir: "/Basesystem",
base: false, media_name: "SLE-15-Module-Basesystem 15.3-0"),
Y2Packager::RepoProductSpec.new(name: "sle-module-legacy", dir: "/Legacy",
base: false, media_name: "SLE-15-Module-Legacy 15.3-0")
base: false, media_name: "SLE-15-Module-Legacy 15.3-0"),
Y2Packager::RepoProductSpec.new(name: "sle-module-ha", dir: "/HA",
base: false, media_name: "SLE-15-Module-HA 15.3-0", depends_on: ["/Basesystem"])
]
end

Expand Down Expand Up @@ -126,4 +128,26 @@
end
end
end

describe "#addon_repos_handler" do
it "selects the dependant products" do
# the product which just has been selected
allow(Yast::UI).to receive(:QueryWidget).with(Id(:addon_repos), :CurrentItem)
.and_return("/HA")
# all currently selected products
allow(Yast::UI).to receive(:QueryWidget).with(Id(:addon_repos), :SelectedItems)
.and_return(["/HA"])
# refreshing the details
allow(Yast::UI).to receive(:ChangeWidget)

# the dependant products are selected
expect(Yast::UI).to receive(:ChangeWidget) do |id, what, list|
if id == :addon_repos && what == :SelectedItems
expect(list).to include("/HA", "/Basesystem")
end
end

subject.addon_repos_handler
end
end
end

0 comments on commit de05a05

Please sign in to comment.