Hello community,

here is the log from the commit of package yast2-installation for 
openSUSE:Factory checked in at 2018-04-26 13:29:49
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/yast2-installation (Old)
 and      /work/SRC/openSUSE:Factory/.yast2-installation.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "yast2-installation"

Thu Apr 26 13:29:49 2018 rev:401 rq:598569 version:4.0.50

Changes:
--------
--- /work/SRC/openSUSE:Factory/yast2-installation/yast2-installation.changes    
2018-04-07 20:52:17.724731124 +0200
+++ 
/work/SRC/openSUSE:Factory/.yast2-installation.new/yast2-installation.changes   
    2018-04-26 13:29:51.746038921 +0200
@@ -1,0 +2,40 @@
+Thu Apr 19 13:05:23 UTC 2018 - [email protected]
+
+- Log more details when unmounting the target partition fails
+  (to debug bsc#1090018)
+- 4.0.50
+
+-------------------------------------------------------------------
+Tue Apr 17 12:37:12 UTC 2018 - [email protected]
+
+- Installer Updates does not overwrite Driver Updates
+  (bsc#1088685).
+- 4.0.49
+
+-------------------------------------------------------------------
+Mon Apr 16 12:50:00 UTC 2018 - [email protected]
+
+- Don't hard-code the role text color (bsc#1087399).
+- 4.0.48
+
+-------------------------------------------------------------------
+Mon Apr 16 11:08:57 UTC 2018 - [email protected]
+
+- Ensure proper patterns are selected when going back to system
+  role and switch to different role (bsc#1088883)
+- 4.0.47
+
+-------------------------------------------------------------------
+Tue Apr 10 16:37:15 CEST 2018 - [email protected]
+
+- Set Add-On products for installation again after the base
+  product has been selected (bnc#1086846).
+- 4.0.46
+
+-------------------------------------------------------------------
+Fri Apr  6 17:25:51 UTC 2018 - [email protected]
+
+- Use AbortException when user aborts (part of fate#318196).
+- 4.0.45
+
+-------------------------------------------------------------------

Old:
----
  yast2-installation-4.0.44.tar.bz2

New:
----
  yast2-installation-4.0.50.tar.bz2

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ yast2-installation.spec ++++++
--- /var/tmp/diff_new_pack.4Xf519/_old  2018-04-26 13:29:52.366016212 +0200
+++ /var/tmp/diff_new_pack.4Xf519/_new  2018-04-26 13:29:52.370016065 +0200
@@ -17,15 +17,15 @@
 
 
 Name:           yast2-installation
-Version:        4.0.44
+Version:        4.0.50
 Release:        0
 
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 Source0:        %{name}-%{version}.tar.bz2
 
 Url:            http://github.com/yast/yast-installation
-# new y2start script
-Requires:       yast2-ruby-bindings >= 3.2.10
+# for AbortException and handle direct abort
+Requires:       yast2-ruby-bindings >= 4.0.6
 
 Summary:        YaST2 - Installation Parts
 License:        GPL-2.0
@@ -36,6 +36,8 @@
 
 BuildRequires:  update-desktop-files
 BuildRequires:  yast2-devtools >= 3.1.10
+# for AbortException and handle direct abort
+BuildRequires:  yast2-ruby-bindings >= 4.0.6
 # needed for xml agent reading about products
 BuildRequires:  yast2-xml
 BuildRequires:  rubygem(rspec)
@@ -63,8 +65,8 @@
 # Mouse-related scripts moved to yast2-mouse
 Conflicts:      yast2-mouse < 2.18.0
 
-# Yast::Packages.check_remote_installation_packages
-Requires:       yast2-packager >= 4.0.9
+# Yast::AddOnProduct.selected_installation_products
+Requires:       yast2-packager >= 4.0.56
 
 # use in startup scripts
 Requires:       initviocons

++++++ yast2-installation-4.0.44.tar.bz2 -> yast2-installation-4.0.50.tar.bz2 
++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-installation-4.0.44/package/yast2-installation.changes 
new/yast2-installation-4.0.50/package/yast2-installation.changes
--- old/yast2-installation-4.0.44/package/yast2-installation.changes    
2018-04-06 16:34:09.000000000 +0200
+++ new/yast2-installation-4.0.50/package/yast2-installation.changes    
2018-04-19 16:07:10.000000000 +0200
@@ -1,4 +1,44 @@
 -------------------------------------------------------------------
+Thu Apr 19 13:05:23 UTC 2018 - [email protected]
+
+- Log more details when unmounting the target partition fails
+  (to debug bsc#1090018)
+- 4.0.50
+
+-------------------------------------------------------------------
+Tue Apr 17 12:37:12 UTC 2018 - [email protected]
+
+- Installer Updates does not overwrite Driver Updates
+  (bsc#1088685).
+- 4.0.49
+
+-------------------------------------------------------------------
+Mon Apr 16 12:50:00 UTC 2018 - [email protected]
+
+- Don't hard-code the role text color (bsc#1087399).
+- 4.0.48
+
+-------------------------------------------------------------------
+Mon Apr 16 11:08:57 UTC 2018 - [email protected]
+
+- Ensure proper patterns are selected when going back to system
+  role and switch to different role (bsc#1088883)
+- 4.0.47
+
+-------------------------------------------------------------------
+Tue Apr 10 16:37:15 CEST 2018 - [email protected]
+
+- Set Add-On products for installation again after the base
+  product has been selected (bnc#1086846).
+- 4.0.46
+
+-------------------------------------------------------------------
+Fri Apr  6 17:25:51 UTC 2018 - [email protected]
+
+- Use AbortException when user aborts (part of fate#318196).
+- 4.0.45
+
+-------------------------------------------------------------------
 Fri Apr  6 12:26:45 UTC 2018 - [email protected]
 
 - Start web VNC for the installation process (bsc#1078785)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-installation-4.0.44/package/yast2-installation.spec 
new/yast2-installation-4.0.50/package/yast2-installation.spec
--- old/yast2-installation-4.0.44/package/yast2-installation.spec       
2018-04-06 16:34:09.000000000 +0200
+++ new/yast2-installation-4.0.50/package/yast2-installation.spec       
2018-04-19 16:07:10.000000000 +0200
@@ -16,7 +16,7 @@
 #
 
 Name:           yast2-installation
-Version:        4.0.44
+Version:        4.0.50
 Release:        0
 
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
@@ -25,8 +25,8 @@
 Group:          System/YaST
 License:        GPL-2.0
 Url:            http://github.com/yast/yast-installation
-# new y2start script
-Requires:       yast2-ruby-bindings >= 3.2.10
+# for AbortException and handle direct abort
+Requires:       yast2-ruby-bindings >= 4.0.6
 
 Summary:        YaST2 - Installation Parts
 
@@ -35,6 +35,8 @@
 
 BuildRequires:  update-desktop-files
 BuildRequires:  yast2-devtools >= 3.1.10
+# for AbortException and handle direct abort
+BuildRequires:  yast2-ruby-bindings >= 4.0.6
 # needed for xml agent reading about products
 BuildRequires:  yast2-xml
 BuildRequires:  rubygem(rspec)
@@ -62,8 +64,8 @@
 # Mouse-related scripts moved to yast2-mouse
 Conflicts:     yast2-mouse < 2.18.0
 
-# Yast::Packages.check_remote_installation_packages
-Requires:      yast2-packager >= 4.0.9
+# Yast::AddOnProduct.selected_installation_products
+Requires:      yast2-packager >= 4.0.56
 
 # use in startup scripts
 Requires:      initviocons
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-installation-4.0.44/src/lib/installation/clients/inst_system_analysis.rb
 
new/yast2-installation-4.0.50/src/lib/installation/clients/inst_system_analysis.rb
--- 
old/yast2-installation-4.0.44/src/lib/installation/clients/inst_system_analysis.rb
  2018-04-06 16:34:09.000000000 +0200
+++ 
new/yast2-installation-4.0.50/src/lib/installation/clients/inst_system_analysis.rb
  2018-04-19 16:07:10.000000000 +0200
@@ -32,11 +32,6 @@
   class InstSystemAnalysisClient < Client
     include Yast::Logger
 
-    # Custom exception class to indicate the user (or the AutoYaST profile)
-    # decided to abort the installation due to a libstorage-ng error
-    class AbortError < RuntimeError
-    end
-
     def main
       Yast.import "UI"
 
@@ -142,7 +137,7 @@
         begin
           ret = run_function.call
           Builtins.y2milestone("Function %1 returned %2", run_function, ret)
-        rescue AbortError
+        rescue AbortException
           return :abort
         end
 
@@ -179,7 +174,7 @@
 
     #  Hard disks initialization
     #
-    # @raise [AbortError] if an error is found and the installation must
+    # @raise [AbortException] if an error is found and the installation must
     #   be aborted because of such error
     def ActionHDDProbe
       init_storage
@@ -285,7 +280,7 @@
     # Reprobing ensures we don't bring bug#806454 back and invalidates cached
     # proposal, so we are also safe from bug#865579.
     #
-    # @raise [AbortError] if an error is found and the installation must
+    # @raise [AbortException] if an error is found and the installation must
     #   be aborted because of such error
     def init_storage
       success = storage_manager.activate(activate_callbacks)
@@ -293,7 +288,7 @@
       return if success
 
       log.info "A storage error was raised and the installation must be 
aborted."
-      raise AbortError, "User aborted"
+      raise AbortException, "User aborted"
     end
 
     # @return [Y2Storage::StorageManager]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-installation-4.0.44/src/lib/installation/clients/umount_finish.rb 
new/yast2-installation-4.0.50/src/lib/installation/clients/umount_finish.rb
--- old/yast2-installation-4.0.44/src/lib/installation/clients/umount_finish.rb 
2018-04-06 16:34:09.000000000 +0200
+++ new/yast2-installation-4.0.50/src/lib/installation/clients/umount_finish.rb 
2018-04-19 16:07:10.000000000 +0200
@@ -30,6 +30,7 @@
 
 require "y2storage"
 require "pathname"
+require "shellwords"
 
 module Yast
   class UmountFinishClient < Client
@@ -158,6 +159,14 @@
             WFM.Execute(path(".local.umount"), umount_this)
           )
           if umount_result != true
+            # run "fuser" to get the details about open files
+            # (the details are printed on STDERR, redirect it)
+            fuser = begin
+                      `LC_ALL=C fuser -v -m #{Shellwords.escape(umount_this)} 
2>&1`
+                    rescue => e
+                      "fuser failed: #{e}"
+                    end
+            log.warn("Running processes using #{umount_this}: #{fuser}")
             # bnc #395034
             # Don't remount them read-only!
             if Builtins.contains(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-installation-4.0.44/src/lib/installation/driver_update.rb 
new/yast2-installation-4.0.50/src/lib/installation/driver_update.rb
--- old/yast2-installation-4.0.44/src/lib/installation/driver_update.rb 
2018-04-06 16:34:09.000000000 +0200
+++ new/yast2-installation-4.0.50/src/lib/installation/driver_update.rb 
2018-04-19 16:07:10.000000000 +0200
@@ -55,8 +55,16 @@
       def find(update_dirs)
         dirs = Array(update_dirs)
         log.info("Searching for Driver Updates at #{dirs.map(&:to_s)}")
-        globs = dirs.map { |d| d.join("dud_*") }
-        Pathname.glob(globs).map do |path|
+
+        # DUD as directories
+        duds_globs = dirs.map { |d| d.join("*", "dud.config") }
+        duds = Pathname.glob(duds_globs).map(&:dirname)
+
+        # DUD as files (squashfs filesystems)
+        archives_globs = dirs.map { |d| d.join("dud_*") }
+        archives = Pathname.glob(archives_globs)
+
+        (duds + archives).uniq.map do |path|
           log.info("Found a Driver Update at #{path}")
           new(path)
         end
@@ -97,7 +105,7 @@
   private
 
     # LOSETUP command
-    LOSETUP_CMD = "/sbin/losetup".freeze
+    LOSETUP_CMD = "/sbin/losetup -j '%<file>s'".freeze
 
     # Returns the instsys_path for updates of type :archive
     #
@@ -106,10 +114,10 @@
     #
     # @return [Pathname] Update's mountpoint
     def archive_instsys_path
-      out = Yast::SCR.Execute(Yast::Path.new(".target.bash_output"), 
LOSETUP_CMD)
+      cmd = format(LOSETUP_CMD, file: path.to_s)
+      out = Yast::SCR.Execute(Yast::Path.new(".target.bash_output"), cmd)
       log.info("Reading loopback devices: #{out}")
-      regexp = %r{(/dev/loop\d+)[^\n]+#{path.to_s}\n}
-      lodevice = out["stdout"][regexp, 1]
+      lodevice = out["stdout"].split(":").first
       mount = Yast::SCR.Read(Yast::Path.new(".proc.mounts")).find { |m| 
m["spec"] == lodevice }
       if mount.nil?
         log.warn("Driver Update at #{path} is not mounted")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-installation-4.0.44/src/lib/installation/select_system_role.rb 
new/yast2-installation-4.0.50/src/lib/installation/select_system_role.rb
--- old/yast2-installation-4.0.44/src/lib/installation/select_system_role.rb    
2018-04-06 16:34:09.000000000 +0200
+++ new/yast2-installation-4.0.50/src/lib/installation/select_system_role.rb    
2018-04-19 16:07:10.000000000 +0200
@@ -24,6 +24,8 @@
 require "installation/system_role"
 
 Yast.import "GetInstArgs"
+Yast.import "Packages"
+Yast.import "Pkg"
 Yast.import "Popup"
 Yast.import "ProductControl"
 Yast.import "ProductFeatures"
@@ -191,6 +193,19 @@
       log.info "Applying system role '#{role.id}'"
       role.overlay_features
       adapt_services(role)
+
+      # Reset pkg and pattern selection as many roles define own roles
+      # so ensure when going back that it will properly set (bsc#1088883)
+      reset_patterns
+    end
+
+    def reset_patterns
+      Yast::Pkg::ResolvableProperties("", :pattern, "").each do |pattern|
+        next if pattern["status"] != :selected
+        Yast::Pkg.ResolvableNeutral(pattern["name"], :pattern, false)
+      end
+      Yast::Packages.SelectSystemPatterns(false)
+      Yast::Pkg.PkgSolve(false)
     end
 
     # for given role sets in {::Installation::Services} list of services to 
enable
@@ -273,8 +288,7 @@
         bullet = selected ? BUTTON_ON : BUTTON_OFF
       end
       widget = "#{bullet} #{CGI.escape_html(label)}"
-      color = installation ? "white" : "black"
-      enabled_widget = "<a style='text-decoration:none; color:#{color}' 
href=\"#{id}\">#{widget}</a>"
+      enabled_widget = "<a class='dontlooklikealink' 
href=\"#{id}\">#{widget}</a>"
       "<p>#{enabled_widget}</p>"
     end
   end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-installation-4.0.44/src/lib/installation/widgets/product_selector.rb 
new/yast2-installation-4.0.50/src/lib/installation/widgets/product_selector.rb
--- 
old/yast2-installation-4.0.44/src/lib/installation/widgets/product_selector.rb  
    2018-04-06 16:34:09.000000000 +0200
+++ 
new/yast2-installation-4.0.50/src/lib/installation/widgets/product_selector.rb  
    2018-04-19 16:07:10.000000000 +0200
@@ -1,6 +1,7 @@
 require "yast"
 Yast.import "Pkg"
 Yast.import "Popup"
+Yast.import "AddOnProduct"
 
 require "cwm/common_widgets"
 
@@ -49,6 +50,12 @@
         Yast::Pkg.PkgApplReset
         Yast::Pkg.PkgReset
         @product.select
+
+        # Reselecting existing add-on-products for installation again
+        Yast::AddOnProduct.selected_installation_products.each do |product|
+          log.info "Reselecting add-on product #{product} for installation"
+          Yast::Pkg.ResolvableInstall(product, :product, "")
+        end
       end
 
       def validate
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-installation-4.0.44/test/driver_update_test.rb 
new/yast2-installation-4.0.50/test/driver_update_test.rb
--- old/yast2-installation-4.0.44/test/driver_update_test.rb    2018-04-06 
16:34:09.000000000 +0200
+++ new/yast2-installation-4.0.50/test/driver_update_test.rb    2018-04-19 
16:07:10.000000000 +0200
@@ -9,16 +9,14 @@
 describe Installation::DriverUpdate do
   subject(:update) { Installation::DriverUpdate.new(update_path) }
 
-  let(:update_path) { FIXTURES_DIR.join("updates", "dud_000") }
+  let(:update_path) { FIXTURES_DIR.join("self-update", "update", "000") }
   let(:losetup_content) do
-    "NAME       SIZELIMIT OFFSET AUTOCLEAR RO BACK-FILE\n" \
-    "/dev/loop5         0      0         0  0 /download/dud_000\n" \
-    "/dev/loop6         0      0         0  0 #{FIXTURES_DIR.join("updates", 
"dud_002")}\n"
+    "/dev/loop6: [0017]:63402 (#{update_path})\n"
   end
 
   before do
     allow(Yast::SCR).to receive(:Execute)
-      .with(Yast::Path.new(".target.bash_output"), "/sbin/losetup")
+      .with(Yast::Path.new(".target.bash_output"), String)
       .and_return("exit" => 0, "stdout" => losetup_content)
     allow(Yast::SCR).to receive(:Read)
       .with(Yast::Path.new(".proc.mounts"))
@@ -34,7 +32,9 @@
 
     context "when updates exist" do
       it "returns an array of driver updates" do
-        updates = described_class.find([FIXTURES_DIR.join("updates")])
+        updates = described_class.find(
+          [FIXTURES_DIR.join("self-update/update"), 
FIXTURES_DIR.join("self-update/download")]
+        )
         expect(updates).to all(be_an(described_class))
         expect(updates.size).to eq(3)
       end
@@ -53,7 +53,7 @@
 
   describe "#kind" do
     context "when is a driver update disk" do
-      let(:update_path) { FIXTURES_DIR.join("updates", "dud_000") }
+      let(:update_path) { FIXTURES_DIR.join("self-update", "update", "000") }
 
       it "returns :dud" do
         expect(update.kind).to eq(:dud)
@@ -61,13 +61,35 @@
     end
 
     context "when is an archive" do
-      let(:update_path) { FIXTURES_DIR.join("updates", "dud_002") }
+      let(:update_path) { FIXTURES_DIR.join("self-update", "download", 
"dud_0000") }
 
       it "returns :archive" do
         expect(update.kind).to eq(:archive)
       end
     end
   end
+
+  describe "#instsys_path" do
+    context "when is a driver update disk" do
+      let(:update_path) { FIXTURES_DIR.join("self-update", "update", "000") }
+
+      it "returns the path to the 'inst-sys' directory within the update" do
+        expect(update.instsys_path)
+          .to eq(FIXTURES_DIR.join("self-update", "update", "000", "inst-sys"))
+      end
+    end
+
+    context "when is an archive" do
+      let(:update_path) { FIXTURES_DIR.join("self-update", "download", 
"dud_0000") }
+
+      it "returns the path where the DUD is mounted on" do
+        expect(Yast::SCR).to receive(:Execute)
+          .with(Yast::Path.new(".target.bash_output"), "/sbin/losetup -j 
'#{update_path}'")
+          .and_return("exit" => 0, "stdout" => losetup_content)
+        expect(update.instsys_path).to eq(Pathname.new("/mounts/mp_0005"))
+      end
+    end
+  end
 
   describe "#path" do
     it "returns the path where the DUD is located" do
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-installation-4.0.44/test/fixtures/self-update/update/000/install/update.pre
 
new/yast2-installation-4.0.50/test/fixtures/self-update/update/000/install/update.pre
--- 
old/yast2-installation-4.0.44/test/fixtures/self-update/update/000/install/update.pre
       1970-01-01 01:00:00.000000000 +0100
+++ 
new/yast2-installation-4.0.50/test/fixtures/self-update/update/000/install/update.pre
       2018-04-19 16:07:10.000000000 +0200
@@ -0,0 +1,3 @@
+#! /usr/bin/perl
+
+print "Just a testing script.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-installation-4.0.44/test/fixtures/updates/dud_000/install/update.pre 
new/yast2-installation-4.0.50/test/fixtures/updates/dud_000/install/update.pre
--- 
old/yast2-installation-4.0.44/test/fixtures/updates/dud_000/install/update.pre  
    2018-04-06 16:34:09.000000000 +0200
+++ 
new/yast2-installation-4.0.50/test/fixtures/updates/dud_000/install/update.pre  
    1970-01-01 01:00:00.000000000 +0100
@@ -1,3 +0,0 @@
-#! /usr/bin/perl
-
-print "Just a testing script.\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-installation-4.0.44/test/lib/clients/inst_system_analysis_test.rb 
new/yast2-installation-4.0.50/test/lib/clients/inst_system_analysis_test.rb
--- old/yast2-installation-4.0.44/test/lib/clients/inst_system_analysis_test.rb 
2018-04-06 16:34:09.000000000 +0200
+++ new/yast2-installation-4.0.50/test/lib/clients/inst_system_analysis_test.rb 
2018-04-19 16:07:10.000000000 +0200
@@ -66,19 +66,17 @@
     context "when activation fails and the error is not recovered" do
       let(:activate_result) { false }
 
-      it "does not probe and raises AbortError" do
+      it "does not probe and raises AbortException" do
         expect(storage).to_not receive(:probe)
-        expect { client.ActionHDDProbe }
-          .to raise_error Yast::InstSystemAnalysisClient::AbortError
+        expect { client.ActionHDDProbe }.to raise_error Yast::AbortException
       end
     end
 
     context "when probing fails and the error is not recovered" do
       let(:probe_result) { false }
 
-      it "raises AbortError" do
-        expect { client.ActionHDDProbe }
-          .to raise_error Yast::InstSystemAnalysisClient::AbortError
+      it "raises AbortException" do
+        expect { client.ActionHDDProbe }.to raise_error Yast::AbortException
       end
     end
   end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-installation-4.0.44/test/select_system_role_test.rb 
new/yast2-installation-4.0.50/test/select_system_role_test.rb
--- old/yast2-installation-4.0.44/test/select_system_role_test.rb       
2018-04-06 16:34:09.000000000 +0200
+++ new/yast2-installation-4.0.50/test/select_system_role_test.rb       
2018-04-19 16:07:10.000000000 +0200
@@ -25,6 +25,7 @@
 
       allow(Yast::ProductFeatures).to receive(:ClearOverlay)
       allow(Yast::ProductFeatures).to receive(:SetOverlay) # .with
+      allow(Yast::Packages).to receive(:SelectSystemPatterns)
     end
 
     context "when no roles are defined" do
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-installation-4.0.44/test/widgets/product_selector_test.rb 
new/yast2-installation-4.0.50/test/widgets/product_selector_test.rb
--- old/yast2-installation-4.0.44/test/widgets/product_selector_test.rb 
2018-04-06 16:34:09.000000000 +0200
+++ new/yast2-installation-4.0.50/test/widgets/product_selector_test.rb 
2018-04-19 16:07:10.000000000 +0200
@@ -57,11 +57,13 @@
     before do
       allow(Yast::Pkg).to receive(:PkgApplReset)
       allow(Yast::Pkg).to receive(:PkgReset)
+      allow(Yast::AddOnProduct).to receive(:selected_installation_products)
+        .and_return(["add-on-product"])
+      # mock selecting the first product
+      allow(subject).to receive(:value).and_return("test1")
     end
 
     it "resets previous package configuration" do
-      # mock selecting the first product
-      allow(subject).to receive(:value).and_return("test1")
       allow(product1).to receive(:select)
       expect(Yast::Pkg).to receive(:PkgApplReset)
       expect(Yast::Pkg).to receive(:PkgReset)
@@ -69,12 +71,16 @@
     end
 
     it "selects the product to install" do
-      # mock selecting the first product
-      allow(subject).to receive(:value).and_return("test1")
-
       expect(product1).to receive(:select)
       expect(product2).to_not receive(:select)
       subject.store
     end
+
+    it "reselect add-on products for installation" do
+      allow(product1).to receive(:select)
+      expect(Yast::Pkg).to receive(:ResolvableInstall)
+        .with("add-on-product", :product, "")
+      subject.store
+    end
   end
 end


Reply via email to