Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package yast2-installation for 
openSUSE:Factory checked in at 2021-12-03 20:35:31
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/yast2-installation (Old)
 and      /work/SRC/openSUSE:Factory/.yast2-installation.new.31177 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "yast2-installation"

Fri Dec  3 20:35:31 2021 rev:484 rq:935524 version:4.4.26

Changes:
--------
--- /work/SRC/openSUSE:Factory/yast2-installation/yast2-installation.changes    
2021-11-28 21:30:13.494053918 +0100
+++ 
/work/SRC/openSUSE:Factory/.yast2-installation.new.31177/yast2-installation.changes
 2021-12-03 20:35:53.284115787 +0100
@@ -1,0 +2,23 @@
+Fri Dec  3 06:53:52 UTC 2021 - Imobach Gonzalez Sosa <[email protected]>
+
+- Display the product's license when only 1 product is available
+  in the online medium (bsc#1193223).
+- Do not display the product's selector during upgrade
+  ([email protected], bsc#1192230).
+- 4.4.26
+
+-------------------------------------------------------------------
+Thu Dec  2 16:56:16 UTC 2021 - Ladislav Slez??k <[email protected]>
+
+- Drop support for subscription-tools, that package is not present
+  in SLE15 anymore (bsc#1193339)
+- 4.4.25
+
+-------------------------------------------------------------------
+Tue Nov 30 14:45:45 UTC 2021 - Imobach Gonzalez Sosa <[email protected]>
+
+- Do not crash when it is not possible to fetch the package
+  containing the release notes (bsc#1193148).
+- 4.4.24
+
+-------------------------------------------------------------------

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

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

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

Other differences:
------------------
++++++ yast2-installation.spec ++++++
--- /var/tmp/diff_new_pack.Ongdj7/_old  2021-12-03 20:35:53.864113668 +0100
+++ /var/tmp/diff_new_pack.Ongdj7/_new  2021-12-03 20:35:53.868113654 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           yast2-installation
-Version:        4.4.23
+Version:        4.4.26
 Release:        0
 Summary:        YaST2 - Installation Parts
 License:        GPL-2.0-only
@@ -28,8 +28,8 @@
 Source2:        YaST2-Firstboot.service
 
 BuildRequires:  update-desktop-files
-# ProductSpec API
-BuildRequires:  yast2 >= 4.4.21
+# y2packager/exceptions
+BuildRequires:  yast2 >= 4.4.24
 # CIOIgnore
 BuildRequires:  yast2-bootloader
 # storage-ng based version
@@ -70,8 +70,8 @@
 Requires:       pciutils
 # tar-gzip some system files and untar-ungzip them after the installation 
(FATE #300421, #120103)
 Requires:       tar
-# ProductSpec API
-Requires:       yast2 >= 4.4.21
+# y2packager/exceptions
+Requires:       yast2 >= 4.4.24
 # CIOIgnore
 Requires:       yast2-bootloader
 Requires:       yast2-country >= 3.3.1

++++++ yast2-installation-4.4.23.tar.bz2 -> yast2-installation-4.4.26.tar.bz2 
++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-installation-4.4.23/package/yast2-installation.changes 
new/yast2-installation-4.4.26/package/yast2-installation.changes
--- old/yast2-installation-4.4.23/package/yast2-installation.changes    
2021-11-25 16:50:42.000000000 +0100
+++ new/yast2-installation-4.4.26/package/yast2-installation.changes    
2021-12-03 16:46:11.000000000 +0100
@@ -1,4 +1,27 @@
 -------------------------------------------------------------------
+Fri Dec  3 06:53:52 UTC 2021 - Imobach Gonzalez Sosa <[email protected]>
+
+- Display the product's license when only 1 product is available
+  in the online medium (bsc#1193223).
+- Do not display the product's selector during upgrade
+  ([email protected], bsc#1192230).
+- 4.4.26
+
+-------------------------------------------------------------------
+Thu Dec  2 16:56:16 UTC 2021 - Ladislav Slez??k <[email protected]>
+
+- Drop support for subscription-tools, that package is not present
+  in SLE15 anymore (bsc#1193339)
+- 4.4.25
+
+-------------------------------------------------------------------
+Tue Nov 30 14:45:45 UTC 2021 - Imobach Gonzalez Sosa <[email protected]>
+
+- Do not crash when it is not possible to fetch the package
+  containing the release notes (bsc#1193148).
+- 4.4.24
+
+-------------------------------------------------------------------
 Wed Nov 24 15:13:23 UTC 2021 - David Diaz <[email protected]>
 
 - Remove no longer used extra warning about destructive actions
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-installation-4.4.23/package/yast2-installation.spec 
new/yast2-installation-4.4.26/package/yast2-installation.spec
--- old/yast2-installation-4.4.23/package/yast2-installation.spec       
2021-11-25 16:50:42.000000000 +0100
+++ new/yast2-installation-4.4.26/package/yast2-installation.spec       
2021-12-03 16:46:11.000000000 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           yast2-installation
-Version:        4.4.23
+Version:        4.4.26
 Release:        0
 Summary:        YaST2 - Installation Parts
 License:        GPL-2.0-only
@@ -28,8 +28,8 @@
 Source2:        YaST2-Firstboot.service
 
 BuildRequires:  update-desktop-files
-# ProductSpec API
-BuildRequires:  yast2 >= 4.4.21
+# y2packager/exceptions
+BuildRequires:  yast2 >= 4.4.24
 # CIOIgnore
 BuildRequires:  yast2-bootloader
 # storage-ng based version
@@ -70,8 +70,8 @@
 Requires:       pciutils
 # tar-gzip some system files and untar-ungzip them after the installation 
(FATE #300421, #120103)
 Requires:       tar
-# ProductSpec API
-Requires:       yast2 >= 4.4.21
+# y2packager/exceptions
+Requires:       yast2 >= 4.4.24
 # CIOIgnore
 Requires:       yast2-bootloader
 Requires:       yast2-country >= 3.3.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-installation-4.4.23/src/lib/installation/clients/copy_files_finish.rb 
new/yast2-installation-4.4.26/src/lib/installation/clients/copy_files_finish.rb
--- 
old/yast2-installation-4.4.23/src/lib/installation/clients/copy_files_finish.rb 
    2021-11-25 16:50:42.000000000 +0100
+++ 
new/yast2-installation-4.4.26/src/lib/installation/clients/copy_files_finish.rb 
    2021-12-03 16:46:11.000000000 +0100
@@ -33,7 +33,6 @@
 Yast.import "Mode"
 Yast.import "Packages"
 Yast.import "ProductControl"
-Yast.import "ProductProfile"
 Yast.import "String"
 Yast.import "WorkflowManager"
 Yast.import "SystemFilesCopy"
@@ -87,7 +86,6 @@
       # Copy /media.1/media to the installed system (fate#311377)
       # Formerly /media.1/build (bsc#1062297)
       copy_media_file
-      copy_product_profiles
 
       # List of files used as additional workflow definitions
       # TODO check if it is still needed
@@ -109,22 +107,6 @@
 
   private
 
-    def copy_product_profiles
-      all_profiles = ProductProfile.all_profiles
-      # copy all product profiles to the installed system (fate#310730)
-      return if all_profiles.empty?
-
-      target_dir = File.join(Installation.destdir, "/etc/productprofiles.d")
-      ::FileUtils.mkdir_p(target_dir)
-      all_profiles.each do |profile_path|
-        log.info "Copying '#{profile_path}' to #{target_dir}"
-        WFM.Execute(
-          path(".local.bash"),
-          "/usr/bin/cp -a #{profile_path.shellescape} 
#{target_dir.shellescape}/"
-        )
-      end
-    end
-
     def copy_hardware_status
       log.info "Copying hardware information"
       destdir = ::File.join(installation_destination, "/var/lib")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-installation-4.4.23/src/lib/installation/clients/inst_complex_welcome.rb
 
new/yast2-installation-4.4.26/src/lib/installation/clients/inst_complex_welcome.rb
--- 
old/yast2-installation-4.4.23/src/lib/installation/clients/inst_complex_welcome.rb
  2021-11-25 16:50:42.000000000 +0100
+++ 
new/yast2-installation-4.4.26/src/lib/installation/clients/inst_complex_welcome.rb
  2021-12-03 16:46:11.000000000 +0100
@@ -68,6 +68,11 @@
 
       Yast::Wizard.EnableAbortButton
 
+      # Preselect the product if there is only one so the license can be shown.
+      # As selecting a product can have side effects (especially in the full
+      # medium), do not select it twice.
+      products.first.select if products.size == 1 && !products.first.selected?
+
       loop do
         dialog_result = ::Installation::Dialogs::ComplexWelcome.run(
           products, disable_buttons: disable_buttons
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-installation-4.4.23/src/lib/installation/clients/inst_download_release_notes.rb
 
new/yast2-installation-4.4.26/src/lib/installation/clients/inst_download_release_notes.rb
--- 
old/yast2-installation-4.4.23/src/lib/installation/clients/inst_download_release_notes.rb
   2021-11-25 16:50:42.000000000 +0100
+++ 
new/yast2-installation-4.4.26/src/lib/installation/clients/inst_download_release_notes.rb
   2021-12-03 16:46:11.000000000 +0100
@@ -28,6 +28,7 @@
 
 require "y2packager/product"
 require "y2packager/product_reader"
+require "y2packager/exceptions"
 
 Yast.import "InstData"
 Yast.import "Pkg"
@@ -38,6 +39,8 @@
 Yast.import "Wizard"
 Yast.import "Mode"
 Yast.import "Language"
+Yast.import "Report"
+Yast.import "HTML"
 
 module Yast
   # Client to download and manage release notes button
@@ -53,15 +56,21 @@
     def download_release_notes
       format = UI.TextMode ? :txt : :rtf
 
+      errors = []
       relnotes_map = products.each_with_object({}) do |product, all|
-        relnotes = product.release_notes(Yast::Language.language, format)
-        if relnotes.nil?
-          log.info "No release notes were found for product 
#{product.short_name}"
-          next
+        relnotes = fetch_release_notes(product, Yast::Language.language, 
format)
+
+        case relnotes
+        when :missing
+          log.info "No release notes were found for product 
#{product.short_name}" if relnotes.nil?
+        when :error
+          errors << product
+        else
+          all[product.short_name] = relnotes.content
         end
-        all[product.short_name] = relnotes.content
       end
 
+      display_warning(errors) unless errors.empty?
       refresh_ui(relnotes_map)
       InstData.release_notes = relnotes_map
       !relnotes_map.empty?
@@ -122,5 +131,28 @@
         Wizard.ShowReleaseNotesButton(_("Re&lease Notes..."), "rel_notes")
       end
     end
+
+    # Fetch the release notes for a given product
+    #
+    # @param product [Y2Packager::Product]
+    # @param user_lang [String] Preferred language (use current language as 
default)
+    # @param format    [Symbol] Release notes format (use :txt as default)
+    # @return [ReleaseNotes,Symbol] Release notes for product, language and 
format.
+    #   :missing if release notes are not present and :error if something went 
wrong
+    # @see Y2Packager::Product#release_notes
+    def fetch_release_notes(product, user_lang, format)
+      product.release_notes(user_lang, format) || :missing
+    rescue Y2Packager::PackageFetchError, Y2Packager::PackageExtractionError 
=> e
+      log.warn "Could not download and extract the release notes package for 
'#{product.name}': #{e.inspect}"
+      :error
+    end
+
+    # Displays
+    def display_warning(products)
+      # TRANSLATORS: 'product' stands for the product's name
+      msg = HTML.Para(_("The release notes for the following products could 
not be retrieved:")) +
+        HTML.List(products.map(&:display_name))
+      Yast::Report.LongWarning(msg)
+    end
   end
 end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-installation-4.4.23/src/lib/installation/clients/inst_system_analysis.rb
 
new/yast2-installation-4.4.26/src/lib/installation/clients/inst_system_analysis.rb
--- 
old/yast2-installation-4.4.23/src/lib/installation/clients/inst_system_analysis.rb
  2021-11-25 16:50:42.000000000 +0100
+++ 
new/yast2-installation-4.4.26/src/lib/installation/clients/inst_system_analysis.rb
  2021-12-03 16:46:11.000000000 +0100
@@ -51,7 +51,6 @@
       Yast.import "Packages"
       Yast.import "Popup"
       Yast.import "Product"
-      Yast.import "ProductProfile"
       Yast.import "ProductFeatures"
       Yast.import "Progress"
       Yast.import "Report"
@@ -156,9 +155,6 @@
       end
       Installation.probing_done = true
 
-      # the last step is hidden
-      return :abort if !skip_software && ProductProfile.CheckCompliance(nil) 
== false
-
       Progress.Finish
 
       return :abort if !skip_software && !@packager_initialized
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-installation-4.4.23/src/lib/installation/dialogs/complex_welcome.rb 
new/yast2-installation-4.4.26/src/lib/installation/dialogs/complex_welcome.rb
--- 
old/yast2-installation-4.4.23/src/lib/installation/dialogs/complex_welcome.rb   
    2021-11-25 16:50:42.000000000 +0100
+++ 
new/yast2-installation-4.4.26/src/lib/installation/dialogs/complex_welcome.rb   
    2021-12-03 16:46:11.000000000 +0100
@@ -153,7 +153,7 @@
       #
       # @return [Boolean] true if the license must be shown; false otherwise
       def show_license?
-        products.size == 1 && products.first.respond_to?(:license)
+        products.size == 1 && products.first.license?
       end
 
       # Determine whether some product is available or not
@@ -171,8 +171,9 @@
       # @return [Yast::Term] Product selection content; Empty() if no products
       def license_or_product_content
         return Empty() unless available_products?
+        return product_selector if products.size > 1
 
-        show_license? ? product_license : product_selector
+        show_license? ? product_license : Empty()
       end
 
       # UI to fill space if needed
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-installation-4.4.23/src/lib/installation/update_repository.rb 
new/yast2-installation-4.4.26/src/lib/installation/update_repository.rb
--- old/yast2-installation-4.4.23/src/lib/installation/update_repository.rb     
2021-11-25 16:50:42.000000000 +0100
+++ new/yast2-installation-4.4.26/src/lib/installation/update_repository.rb     
2021-12-03 16:46:11.000000000 +0100
@@ -20,6 +20,7 @@
 require "packages/package_extractor"
 require "y2packager/self_update_addon_filter"
 require "y2packager/resolvable"
+require "y2packager/exceptions"
 
 Yast.import "Pkg"
 Yast.import "Progress"
@@ -197,7 +198,7 @@
         end
         @updates_file = build_squashfs(workdir, next_name(path, length: 3))
       end
-    rescue Packages::PackageDownloader::FetchError, 
Packages::PackageExtractor::ExtractionFailed,
+    rescue Y2Packager::PackageFetchError, Y2Packager::PackageExtractionError,
            CouldNotSquashPackage => e
       log.error("Could not fetch update: #{e.inspect}. Rolling back.")
       raise CouldNotFetchUpdate
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-installation-4.4.23/src/lib/installation/widgets/product_selector.rb 
new/yast2-installation-4.4.26/src/lib/installation/widgets/product_selector.rb
--- 
old/yast2-installation-4.4.23/src/lib/installation/widgets/product_selector.rb  
    2021-11-25 16:50:42.000000000 +0100
+++ 
new/yast2-installation-4.4.26/src/lib/installation/widgets/product_selector.rb  
    2021-12-03 16:46:11.000000000 +0100
@@ -52,7 +52,7 @@
 
         return unless @product
 
-        @product.select
+        @product.select unless @product.selected?
       end
 
       def validate
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-installation-4.4.23/test/copy_files_finish_test.rb 
new/yast2-installation-4.4.26/test/copy_files_finish_test.rb
--- old/yast2-installation-4.4.23/test/copy_files_finish_test.rb        
2021-11-25 16:50:42.000000000 +0100
+++ new/yast2-installation-4.4.26/test/copy_files_finish_test.rb        
2021-12-03 16:46:11.000000000 +0100
@@ -217,17 +217,6 @@
       subject.write
     end
 
-    it "copies all product profiles" do
-      allow(Yast::ProductProfile).to 
receive(:all_profiles).and_return(["/product1.xml", "/product2.xml"])
-      allow(::FileUtils).to receive(:mkdir_p)
-
-      expect(::FileUtils).to 
receive(:mkdir_p).with("/mnt/etc/productprofiles.d")
-      expect(::Yast::WFM).to receive(:Execute).with(path(".local.bash"), 
/cp.*\/product1.xml/)
-      expect(::Yast::WFM).to receive(:Execute).with(path(".local.bash"), 
/cp.*\/product2.xml/)
-
-      subject.write
-    end
-
     it "copies all used control files" do
       allow(Yast::WorkflowManager).to 
receive(:GetAllUsedControlFiles).and_return(["/control.xml", 
"/addon/addon.xml"])
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-installation-4.4.23/test/lib/clients/inst_complex_welcome_test.rb 
new/yast2-installation-4.4.26/test/lib/clients/inst_complex_welcome_test.rb
--- old/yast2-installation-4.4.23/test/lib/clients/inst_complex_welcome_test.rb 
2021-11-25 16:50:42.000000000 +0100
+++ new/yast2-installation-4.4.26/test/lib/clients/inst_complex_welcome_test.rb 
2021-12-03 16:46:11.000000000 +0100
@@ -19,7 +19,9 @@
       arch:                           "x86_64",
       base:                           true,
       order:                          1,
-      to_product:                     product
+      to_product:                     product,
+      selected?:                      false,
+      select:                         nil
     )
   end
 
@@ -31,7 +33,8 @@
       version:      "15.3",
       arch:         "x86_64",
       base:         true,
-      order:        2
+      order:        2,
+      selected?:    false
     )
   end
 
@@ -254,6 +257,12 @@
       end
     end
 
+    context "when only 1 product is available" do
+      let(:product_specs) { [product_spec] }
+      let(:selected?) { false }
+
+    end
+
     describe "dialog content" do
       context "when running on install mode" do
         let(:update_mode) { false }
@@ -276,6 +285,22 @@
               .with(product_specs, anything)
             subject.main
           end
+
+          it "preselects the product" do
+            expect(product_spec).to receive(:select)
+            subject.main
+          end
+
+          context "and the product is already selected" do
+            before do
+              allow(product_spec).to receive(:selected?).and_return(true)
+            end
+
+            it "does not preselect the product again" do
+              expect(product_spec).to_not receive(:select)
+              subject.main
+            end
+          end
         end
 
         # Test the behavior when the product name is hardcoded in the control 
file, which solves the
@@ -288,6 +313,7 @@
           it "runs the complex welcome dialog with the selected product" do
             expect(Installation::Dialogs::ComplexWelcome).to receive(:run)
               .with([other_product_spec], anything)
+            expect(other_product_spec).to receive(:select)
             subject.main
           end
         end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-installation-4.4.23/test/lib/clients/inst_download_release_notes_test.rb
 
new/yast2-installation-4.4.26/test/lib/clients/inst_download_release_notes_test.rb
--- 
old/yast2-installation-4.4.23/test/lib/clients/inst_download_release_notes_test.rb
  2021-11-25 16:50:42.000000000 +0100
+++ 
new/yast2-installation-4.4.26/test/lib/clients/inst_download_release_notes_test.rb
  2021-12-03 16:46:11.000000000 +0100
@@ -13,11 +13,17 @@
     let(:language) { double("Yast::Language", language: "en_US") }
 
     let(:sles) do
-      instance_double(Y2Packager::Product, short_name: "SLES", release_notes: 
sles_relnotes)
+      instance_double(
+        Y2Packager::Product, name: "SLES", display_name: "SUSE Linux Enteprise 
Server",
+        short_name: "SLES", release_notes: sles_relnotes
+      )
     end
 
     let(:sdk) do
-      instance_double(Y2Packager::Product, short_name: "SDK", release_notes: 
sdk_relnotes)
+      instance_double(
+        Y2Packager::Product, name: "sle-development-tools", display_name: 
"Development Kit",
+        short_name: "SDK", release_notes: sdk_relnotes
+      )
     end
 
     let(:prod_reader) do
@@ -76,6 +82,28 @@
         client.main
       end
     end
+
+    context "when it was not possible to fetch the package containing the 
release notes" do
+      before do
+        allow(sles).to 
receive(:release_notes).and_raise(Y2Packager::PackageFetchError)
+      end
+
+      it "warns the user" do
+        expect(Yast::Report).to receive(:LongWarning).with(/The release notes 
for/)
+        client.main
+      end
+    end
+
+    context "when it was not possible to extract the package containing the 
release notes" do
+      before do
+        allow(sles).to 
receive(:release_notes).and_raise(Y2Packager::PackageExtractionError)
+      end
+
+      it "warns the user" do
+        expect(Yast::Report).to receive(:LongWarning).with(/The release notes 
for/)
+        client.main
+      end
+    end
 
     context "when running in text mode" do
       let(:textmode) { true }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-installation-4.4.23/test/lib/dialogs/complex_welcome_test.rb 
new/yast2-installation-4.4.26/test/lib/dialogs/complex_welcome_test.rb
--- old/yast2-installation-4.4.23/test/lib/dialogs/complex_welcome_test.rb      
2021-11-25 16:50:42.000000000 +0100
+++ new/yast2-installation-4.4.26/test/lib/dialogs/complex_welcome_test.rb      
2021-12-03 16:46:11.000000000 +0100
@@ -46,14 +46,37 @@
     end
   end
 
-  describe "#content" do
+  describe "#contents" do
     let(:license) { instance_double("Y2Packager::ProductLicense") }
-    let(:sles_product) { instance_double("Y2Packager::ProductSpec", label: 
"SLES", license: license) }
-    let(:sles_online_product) { 
instance_double("Y2Packager::ControlProductSpec", label: "SLES", license: 
license) }
-    let(:sles_offline_product) { 
instance_double("Y2Packager::RepoProductSpec", label: "SLES") }
-    let(:sled_product) { instance_double("Y2Packager::Product", label: "SLED", 
license: license) }
-    let(:sled_online_product) { 
instance_double("Y2Packager::ControlProductSpec", label: "SLED", license: 
license) }
-    let(:sled_offline_product) { 
instance_double("Y2Packager::RepoProductSpec", label: "SLED") }
+
+    let(:sles_product) do
+      instance_double("Y2Packager::ProductSpec", label: "SLES", license: 
license, license?: true)
+    end
+
+    let(:sles_online_product) do
+      instance_double(
+        "Y2Packager::ControlProductSpec", label: "SLES", license: license, 
license?: true
+      )
+    end
+
+    let(:sles_offline_product) do
+      instance_double("Y2Packager::RepoProductSpec", label: "SLES", license?: 
true)
+    end
+
+    let(:sled_product) do
+      instance_double("Y2Packager::Product", label: "SLED", license: license, 
license?: true)
+    end
+
+    let(:sled_online_product) do
+      instance_double(
+        "Y2Packager::ControlProductSpec", label: "SLED", license: license, 
license?: true
+      )
+    end
+
+    let(:sled_offline_product) do
+      instance_double("Y2Packager::RepoProductSpec", label: "SLED", license?: 
true)
+    end
+
     let(:language_widget) { Yast::Term.new(:language_widget) }
     let(:keyboard_widget) { Yast::Term.new(:keyboard_widget) }
     let(:license_widget) { Yast::Term.new(:license_widget) }
@@ -80,13 +103,30 @@
         let(:products) { [sles_product] }
         include_examples "show_license"
       end
+
       context "when it is the online medium" do
         let(:products) { [sles_online_product] }
         include_examples "show_license"
       end
+
       context "when it is the offline medium" do
         let(:products) { [sles_offline_product] }
-        include_examples "show_selector"
+        include_examples "show_license"
+      end
+
+      context "when the license is not available" do
+        let(:products) { [sles_product] }
+
+        before do
+          allow(sles_product).to receive(:license?).and_return(false)
+        end
+
+        it "does not show neither the license nor the product selection" do
+          expect(Y2Packager::Widgets::ProductLicense).to_not receive(:new)
+          expect(Installation::Widgets::ProductSelector).to_not receive(:new)
+
+          widget.contents
+        end
       end
     end
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-installation-4.4.23/test/lib/widgets/product_selector_test.rb 
new/yast2-installation-4.4.26/test/lib/widgets/product_selector_test.rb
--- old/yast2-installation-4.4.23/test/lib/widgets/product_selector_test.rb     
2021-11-25 16:50:42.000000000 +0100
+++ new/yast2-installation-4.4.26/test/lib/widgets/product_selector_test.rb     
2021-12-03 16:46:11.000000000 +0100
@@ -86,5 +86,16 @@
       expect(product2).to_not receive(:select)
       subject.store
     end
+
+    context "when the product was already selected" do
+      before do
+        allow(product1).to receive(:selected?).and_return(true)
+      end
+
+      it "does not select the product again" do
+        expect(product1).to_not receive(:select)
+        subject.store
+      end
+    end
   end
 end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-installation-4.4.23/test/update_repository_test.rb 
new/yast2-installation-4.4.26/test/update_repository_test.rb
--- old/yast2-installation-4.4.23/test/update_repository_test.rb        
2021-11-25 16:50:42.000000000 +0100
+++ new/yast2-installation-4.4.26/test/update_repository_test.rb        
2021-12-03 16:46:11.000000000 +0100
@@ -6,6 +6,7 @@
 require "uri"
 require "pathname"
 require "stringio"
+require "y2packager/exceptions"
 
 describe Installation::UpdateRepository do
   TEMP_DIR = Pathname.new(__FILE__).dirname.join("tmp")
@@ -180,7 +181,7 @@
     context "when a package can't be retrieved" do
       before do
         allow(downloader).to receive(:download)
-          .and_raise(Packages::PackageDownloader::FetchError)
+          .and_raise(Y2Packager::PackageFetchError)
       end
 
       it "raises a CouldNotFetchUpdate error" do
@@ -192,7 +193,7 @@
     context "when a package can't be extracted" do
       it "raises a CouldNotFetchUpdate error" do
         expect(extractor).to receive(:extract)
-          .and_raise(Packages::PackageExtractor::ExtractionFailed)
+          .and_raise(Y2Packager::PackageExtractionError)
 
         expect { repo.fetch(download_path) }
           .to raise_error(Installation::UpdateRepository::CouldNotFetchUpdate)

Reply via email to