Hello community,

here is the log from the commit of package yast2-installation for 
openSUSE:Factory checked in at 2016-04-22 16:18:35
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/yast2-installation (Old)
 and      /work/SRC/openSUSE:Factory/.yast2-installation.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "yast2-installation"

Changes:
--------
--- /work/SRC/openSUSE:Factory/yast2-installation/yast2-installation.changes    
2016-04-08 09:39:19.000000000 +0200
+++ 
/work/SRC/openSUSE:Factory/.yast2-installation.new/yast2-installation.changes   
    2016-04-22 16:18:36.000000000 +0200
@@ -1,0 +2,29 @@
+Tue Apr 19 09:08:35 UTC 2016 - [email protected]
+
+- Fix handling of license acceptance in welcome screen
+  (bsc#975774)
+- 3.1.181
+
+-------------------------------------------------------------------
+Fri Apr 15 12:51:00 UTC 2016 - [email protected]
+
+- Run the automatic installer self update also in the AutoYaST
+  mode, read the optional custom URL from the profile ("general" ->
+  "self_update_url" node) (FATE#319716)
+- 3.1.180
+
+-------------------------------------------------------------------
+Wed Apr 13 07:14:09 UTC 2016 - [email protected]
+
+- bsc#956473
+  - improved formatting of network interfaces listing
+- 3.1.179
+
+-------------------------------------------------------------------
+Tue Apr 12 15:09:15 UTC 2016 - [email protected]
+
+- do not install perl-Bootloader-YAML on target system as it is no
+  longer needed (FATE#317701)
+- 3.1.178
+
+-------------------------------------------------------------------

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

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

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

Other differences:
------------------
++++++ yast2-installation.spec ++++++
--- /var/tmp/diff_new_pack.zf78m3/_old  2016-04-22 16:18:37.000000000 +0200
+++ /var/tmp/diff_new_pack.zf78m3/_new  2016-04-22 16:18:37.000000000 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           yast2-installation
-Version:        3.1.177
+Version:        3.1.181
 Release:        0
 
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
@@ -91,6 +91,9 @@
 # InstError
 Conflicts:      yast2 < 2.18.6
 
+# lower version requires perl-Bootloader-YAML no longer installed
+Conflicts:      yast2-bootloader < 3.1.166
+
 # Added new function WFM::ClientExists
 Conflicts:      yast2-core < 2.17.10
 

++++++ yast2-installation-3.1.177.tar.bz2 -> yast2-installation-3.1.181.tar.bz2 
++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-installation-3.1.177/doc/SELF_UPDATE.md 
new/yast2-installation-3.1.181/doc/SELF_UPDATE.md
--- old/yast2-installation-3.1.177/doc/SELF_UPDATE.md   2016-04-07 
09:01:23.000000000 +0200
+++ new/yast2-installation-3.1.181/doc/SELF_UPDATE.md   2016-04-19 
15:25:10.000000000 +0200
@@ -1,18 +1,18 @@
-# Installer self-update
+# Installer Self-update
 
 Starting on version 3.1.175, yast2-install is able to update itself during
 system installation. This feature will help to solve problems with the
 installation even after the media has been released. Check
 [FATE#319716](https://fate.suse.com/319716) for a more in-depth rationale.
 
-## Disabling updates
+## Disabling Updates
 
-Self-update is enabled by default. However, it can be disabled setting
-`self_update=0` in Linuxrc.
+Self-update is enabled by default. However, it can be disabled by setting
+`self_update=0` boot option.
 
-## Basic workflow
+## Basic Workflow
 
-These are the basic steps performed by YaST in order to peform the update:
+These are the basic steps performed by YaST in order to perform the update:
 
 1. During installation, YaST will look automatically for a rpm-md repository
    containing the updates.
@@ -21,7 +21,7 @@
 3. The update will be applied to the installation system.
 4. YaST will be restarted and the installation will be resumed.
 
-## Update format
+## Update Format
 
 YaST will use RPM packages stored in a rpm-md repository, although they are
 handled in a different way:
@@ -31,31 +31,45 @@
   are executed.
 * No dependency checks are performed. RPMs are added in alphabetical order.
 
-## Where to find updates
+## Where to Find the Updates
 
-The URL of the update repository can be hard-coded in `control.xml` file or
-specified setting `SelfUpdate` option in Linuxrc.
+The URL of the update repository is evaluated in this order:
+
+1. The `SelfUpdate` boot option
+2. The AutoYaST control file - in AutoYaST installation only, use the
+   `/generic/self_update_url` XML node:
+
+   ```xml
+   <generic>
+     <self_update_url>http://example.com/updates/$arch</self_update_url>
+   </generic>
+   ```
+3. Hard-coded in the `control.xml` file on the installation medium (thus it
+   depends on the base product):
+
+   ```xml
+   <globals>
+     <self_update_url>http://updates.suse.com/sle12/$arch</self_update_url>
+   </globals>
+   ```
+
+The first found option is used. If no update URL is found then the self update
+is skipped.
 
 The URL can contain a variable `$arch` that will be replaced by the system's
 architecture, such as `x86_64`, `s390x`, etc. You can find more information
 in the [Arch 
module](http://www.rubydoc.info/github/yast/yast-yast2/Yast/ArchClass).
 
-```xml
-<globals>
-  <self_update_url>http://updates.suse.com/sle12/$arch</self_update_url>
-</globals>
-```
-
 ## Security
 
 Updates signatures will be checked by libzypp. If the signature is not
 correct (or is missing), the user will be asked whether she/he wants to apply
 the update (although it's a security risk).
 
-## Self-update and user updates
+## Self-update and User Updates
 
-Changes introduced by the user via Driver Updates (option `dud` in Linuxrc
-command line) will take precedence. As you may know, user driver updates
-are applied first (before the self-update is performed).
+Changes introduced by the user via Driver Updates (`dud` boot option) will take
+precedence. As you may know, user driver updates are applied first (before the
+self-update is performed).
 
-However, user changes will be re-applied on top of installer updates.
\ No newline at end of file
+However, the user changes will be re-applied on top of the installer updates.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-installation-3.1.177/package/yast2-installation.changes 
new/yast2-installation-3.1.181/package/yast2-installation.changes
--- old/yast2-installation-3.1.177/package/yast2-installation.changes   
2016-04-07 09:01:23.000000000 +0200
+++ new/yast2-installation-3.1.181/package/yast2-installation.changes   
2016-04-19 15:25:10.000000000 +0200
@@ -1,4 +1,33 @@
 -------------------------------------------------------------------
+Tue Apr 19 09:08:35 UTC 2016 - [email protected]
+
+- Fix handling of license acceptance in welcome screen
+  (bsc#975774)
+- 3.1.181
+
+-------------------------------------------------------------------
+Fri Apr 15 12:51:00 UTC 2016 - [email protected]
+
+- Run the automatic installer self update also in the AutoYaST
+  mode, read the optional custom URL from the profile ("general" ->
+  "self_update_url" node) (FATE#319716)
+- 3.1.180
+
+-------------------------------------------------------------------
+Wed Apr 13 07:14:09 UTC 2016 - [email protected]
+
+- bsc#956473
+  - improved formatting of network interfaces listing
+- 3.1.179
+
+-------------------------------------------------------------------
+Tue Apr 12 15:09:15 UTC 2016 - [email protected]
+
+- do not install perl-Bootloader-YAML on target system as it is no
+  longer needed (FATE#317701)
+- 3.1.178
+
+-------------------------------------------------------------------
 Mon Apr  4 09:48:42 UTC 2016 - [email protected]
 
 - Automatic update during installation will use Zypper repositories
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-installation-3.1.177/package/yast2-installation.spec 
new/yast2-installation-3.1.181/package/yast2-installation.spec
--- old/yast2-installation-3.1.177/package/yast2-installation.spec      
2016-04-07 09:01:23.000000000 +0200
+++ new/yast2-installation-3.1.181/package/yast2-installation.spec      
2016-04-19 15:25:10.000000000 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           yast2-installation
-Version:        3.1.177
+Version:        3.1.181
 Release:        0
 
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
@@ -88,6 +88,9 @@
 # InstError
 Conflicts:     yast2 < 2.18.6
 
+# lower version requires perl-Bootloader-YAML no longer installed
+Conflicts:     yast2-bootloader < 3.1.166
+
 # Added new function WFM::ClientExists
 Conflicts:     yast2-core < 2.17.10
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-installation-3.1.177/src/lib/installation/clients/inst_complex_welcome.rb
 
new/yast2-installation-3.1.181/src/lib/installation/clients/inst_complex_welcome.rb
--- 
old/yast2-installation-3.1.177/src/lib/installation/clients/inst_complex_welcome.rb
 2016-04-07 09:01:23.000000000 +0200
+++ 
new/yast2-installation-3.1.181/src/lib/installation/clients/inst_complex_welcome.rb
 2016-04-19 15:25:10.000000000 +0200
@@ -83,8 +83,6 @@
 
   private
 
-    attr_reader :license_required
-
     def event_loop
       loop do
         ret = UI.UserInput
@@ -115,7 +113,10 @@
 
           # BNC #448598
           # Check whether the license has been accepted only if required
-          next if license_required && !license_accepted?
+          if license_required? && !license_accepted?
+            warn_license_required
+            next
+          end
 
           next if !Language.CheckIncompleteTranslation(@language)
 
@@ -261,9 +262,25 @@
       )
     end
 
+    # Determines whether the license was accepted or not
+    #
+    # It relies in the value of the :license_agreement widget.
+    #
+    # @return [Boolean] true if license was accepted; false otherwise.
     def license_accepted?
-      return true if @license_acc
+      license_required? ? UI.QueryWidget(Id(:license_agreement), :Value) : true
+    end
+
+    # Determines whether the license is required or not
+    #
+    # @return [Boolean] true if license is required; false otherwise.
+    def license_required?
+      return @license_required unless @license_required.nil?
+      @license_required = ProductLicense.AcceptanceNeeded(@license_id.to_s)
+    end
 
+    # Report error about missing license acceptance
+    def warn_license_required
       UI.SetFocus(Id(:license_agreement))
       Report.Message(_("You must accept the license to install this product"))
     end
@@ -271,8 +288,6 @@
     def read_ui_state
       @language = UI.QueryWidget(Id(:language), :Value)
       @keyboard = UI.QueryWidget(Id(:keyboard), :Value)
-
-      @license_acc = @licence_required ? 
UI.QueryWidget(Id(:license_agreement), :Value) : true
     end
 
     def retranslate_yast
@@ -437,12 +452,10 @@
       ProductLicense.ShowLicenseInInstallation(:base_license_rp, @license_id)
 
       # If accepting the license is required, show the check-box
-      @licence_required = ProductLicense.AcceptanceNeeded(@license_id.to_s)
-
-      if @licence_required
+      if license_required?
         UI.ReplaceWidget(:license_checkbox_rp, license_agreement_checkbox)
       end
-      log.info "Acceptance needed: #{@id} => #{@licence_required}"
+      log.info "Acceptance needed: #{@id} => #{license_required?}"
     end
   end unless defined? Yast::InstComplexWelcomeClient
 end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-installation-3.1.177/src/lib/installation/clients/inst_installation_options.rb
 
new/yast2-installation-3.1.181/src/lib/installation/clients/inst_installation_options.rb
--- 
old/yast2-installation-3.1.177/src/lib/installation/clients/inst_installation_options.rb
    2016-04-07 09:01:23.000000000 +0200
+++ 
new/yast2-installation-3.1.181/src/lib/installation/clients/inst_installation_options.rb
    2016-04-19 15:25:10.000000000 +0200
@@ -73,10 +73,7 @@
       end
 
       # nothing to display, simply continue
-      if !@show_online_repositories
-        SetRequiredPackages()
-        return :auto
-      end
+      return :auto unless @show_online_repositories
 
       Wizard.SetContents(
         # dialog caption
@@ -159,7 +156,6 @@
       Wizard.SetTitleIcon("yast-software")
 
       UpdateWizardSteps()
-      SetRequiredPackages()
       @ret = ProductControl.RunFrom(ProductControl.CurrentStep + 1, false)
 
       @ret = :finish if @ret == :next
@@ -215,16 +211,5 @@
         # help text: additional help for installation
         _("<p>If you need specific hardware drivers for installation, see 
<i>http://drivers.suse.com</i> site.</p>")
     end
-
-    def SetRequiredPackages
-      Builtins.y2milestone(
-        "Adding packages required for installation to succeed..."
-      )
-      PackagesProposal.AddResolvables(
-        "YaST-Installation",
-        :package,
-        ["perl-Bootloader-YAML"]
-      )
-    end
   end
 end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-installation-3.1.177/src/lib/installation/clients/inst_update_installer.rb
 
new/yast2-installation-3.1.181/src/lib/installation/clients/inst_update_installer.rb
--- 
old/yast2-installation-3.1.177/src/lib/installation/clients/inst_update_installer.rb
        2016-04-07 09:01:23.000000000 +0200
+++ 
new/yast2-installation-3.1.181/src/lib/installation/clients/inst_update_installer.rb
        2016-04-19 15:25:10.000000000 +0200
@@ -34,6 +34,7 @@
     Yast.import "Popup"
     Yast.import "Report"
     Yast.import "NetworkService"
+    Yast.import "Mode"
 
     def main
       textdomain "installation"
@@ -82,8 +83,10 @@
     #
     # @see #self_update_url_from_linuxrc
     # @see #self_update_url_from_control
+    # @see #self_update_url_from_profile
     def self_update_url
-      url = self_update_url_from_linuxrc || self_update_url_from_control
+      url = self_update_url_from_linuxrc || self_update_url_from_profile ||
+        self_update_url_from_control
       log.info("self-update URL is #{url}")
       url
     end
@@ -101,6 +104,19 @@
       get_url_from(ProductFeatures.GetStringFeature("globals", 
"self_update_url"))
     end
 
+    # Return the self-update URL from the AutoYaST profile
+    # @return [URI,nil] the self-update URL, nil if not running in AutoYaST 
mode
+    #   or when the URL is not defined in the profile
+    def self_update_url_from_profile
+      return nil unless Mode.auto
+
+      Yast.import "Profile"
+      profile = Yast::Profile.current
+      profile_url = profile.fetch("general", {})["self_update_url"]
+
+      get_url_from(profile_url)
+    end
+
     # Converts the string into an URI if it's valid
     #
     # It substitutes $arch pattern with the architecture of the current system.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-installation-3.1.177/startup/common/network.sh 
new/yast2-installation-3.1.181/startup/common/network.sh
--- old/yast2-installation-3.1.177/startup/common/network.sh    2016-04-07 
09:01:24.000000000 +0200
+++ new/yast2-installation-3.1.181/startup/common/network.sh    2016-04-19 
15:25:10.000000000 +0200
@@ -47,7 +47,15 @@
     # list network interfaces
     # - all active ones with all IPv4 / IPv6 addresses
     # - excluding loopback device
-    /sbin/ip -o a s | grep "inet" | cut -d' ' -f2 | uniq | grep -v "^lo" | 
xargs -n1 -d'\n' /sbin/ip a s
+    ifaces=$(/sbin/ip -oneline address show | grep "inet" | cut --delimiter=' 
' --fields=2 | uniq | grep --invert-match "^lo")
+
+    for i in ${ifaces}; do
+      ip address show $i | sed --quiet \
+        --expression="1{s/^[^ ]* \([^:]*\).*/\1:/;h}" \
+        --expression="/ether/{ s/^.*ether[^ ]* \([^ ]*\).*/\1/; H; g; s/\n/ /; 
p}" \
+        --expression="s/^[ ]*inet \([^ ]*\).*/  \1/p" \
+        --expression="s/^[ ]*inet6 \([^ ]*\).*/  \1/p"
+    done;
 }
 
 
@@ -77,7 +85,7 @@
        you can login now and proceed with the installation
        run the command 'yast.ssh'
        
-       active interfaces:
+       These network addresses are available:
        
        EOF
        list_ifaces
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-installation-3.1.177/test/inst_complex_welcome_test.rb 
new/yast2-installation-3.1.181/test/inst_complex_welcome_test.rb
--- old/yast2-installation-3.1.177/test/inst_complex_welcome_test.rb    
2016-04-07 09:01:24.000000000 +0200
+++ new/yast2-installation-3.1.181/test/inst_complex_welcome_test.rb    
2016-04-19 15:25:10.000000000 +0200
@@ -4,6 +4,20 @@
 require "installation/clients/inst_complex_welcome"
 
 describe Yast::InstComplexWelcomeClient do
+  Yast.import "Mode"
+  Yast.import "ProductLicense"
+
+  textdomain "installation"
+
+  let(:store_path) { File.join(File.dirname(__FILE__), 
"complex_welcome_store.yaml") }
+
+  before do
+    stub_const("Yast::InstComplexWelcomeClient::DATA_PATH", store_path)
+  end
+
+  after do
+    FileUtils.rm(store_path) if File.exist?(store_path)
+  end
 
   describe "#main" do
     context "when installation Mode is auto" do
@@ -59,42 +73,57 @@
 
         context "when next is selected" do
           before do
-            expect(Yast::Mode).to receive(:config) { false }
-            expect(subject).to receive(:initialize_dialog)
+            allow(Yast::Mode).to receive(:config).and_return(false)
+            allow(Yast::Stage).to receive(:initial).and_return(true)
+
+            allow(Yast::Language).to 
receive(:CheckIncompleteTranslation).and_return(true)
+            allow(Yast::Language).to receive(:CheckLanguagesSupport)
+
+            allow(Yast::ProductLicense).to 
receive(:AcceptanceNeeded).and_return(license_needed)
+            allow(subject).to 
receive(:license_accepted?).and_return(license_accepted)
           end
 
           context "when license is required and not accepted" do
+            let(:license_needed) { true }
+            let(:license_accepted) { false }
+
             it "not returns" do
               expect(Yast::UI).to receive(:UserInput).and_return(:next, :back)
-              expect(subject).to receive(:read_ui_state)
-              expect(subject).to receive(:license_required) { true }
-              expect(subject).to receive(:license_accepted?) { false }
-
+              expect(Yast::Report).to receive(:Message)
+                .with(_("You must accept the license to install this product"))
               expect(subject.main).to eql(:back)
             end
           end
 
-          context "when license is not required or is required and accepted" do
+          context "when license is not required" do
+            let(:license_needed) { false }
+            let(:license_accepted) { false }
+
             it "stores selected data and returns next" do
               expect(Yast::UI).to receive(:UserInput).and_return(:next)
-              expect(subject).to receive(:read_ui_state)
+              expect(subject).to receive(:setup_final_choice)
+              expect(subject).to receive(:store_data)
+              expect(Yast::Report).to_not receive(:Message)
 
-              expect(subject).to receive(:license_required) { true }
-              expect(subject).to receive(:license_accepted?) { true }
-              expect(Yast::Language).to receive(:CheckIncompleteTranslation) { 
true }
-              expect(Yast::Stage).to receive(:initial) { false }
+              expect(subject.main).to eql(:next)
+            end
+          end
 
-              expect(subject).to receive(:setup_final_choice)
+          context "when license is required and accepted" do
+            let(:license_needed) { true }
+            let(:license_accepted) { true }
 
+            it "stores selected data and returns next" do
+              expect(Yast::UI).to receive(:UserInput).and_return(:next)
+              expect(subject).to receive(:setup_final_choice)
               expect(subject).to receive(:store_data)
+              expect(Yast::Report).to_not receive(:Message)
+
               expect(subject.main).to eql(:next)
             end
           end
         end
-
       end
-
     end
   end
-
 end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-installation-3.1.177/test/inst_update_installer_test.rb 
new/yast2-installation-3.1.181/test/inst_update_installer_test.rb
--- old/yast2-installation-3.1.177/test/inst_update_installer_test.rb   
2016-04-07 09:01:24.000000000 +0200
+++ new/yast2-installation-3.1.181/test/inst_update_installer_test.rb   
2016-04-19 15:25:10.000000000 +0200
@@ -20,8 +20,13 @@
 
   before do
     allow(Yast::Arch).to receive(:architecture).and_return(arch)
+    allow(Yast::Mode).to receive(:auto).and_return(false)
     allow(Yast::NetworkService).to 
receive(:isNetworkRunning).and_return(network_running)
     allow(::Installation::UpdatesManager).to receive(:new).and_return(manager)
+
+    # stub the Profile module to avoid dependency on autoyast2-installation
+    ay_profile = double("Yast::Profile")
+    stub_const("Yast::Profile", ay_profile)
   end
 
   describe "#main" do
@@ -118,24 +123,81 @@
           allow(Yast::ProductFeatures).to 
receive(:GetStringFeature).and_return(url)
         end
 
-        it "gets URL from control file" do
-          allow(::FileUtils).to receive(:touch)
-          expect(manager).to receive(:add_repository).with(URI(real_url))
-          expect(subject.main).to eq(:restart_yast)
-        end
+        context "in standard installation" do
+          it "gets URL from control file" do
+            allow(::FileUtils).to receive(:touch)
+            expect(manager).to receive(:add_repository).with(URI(real_url))
+            expect(subject.main).to eq(:restart_yast)
+          end
 
-        it "does not show an error if update is not found" do
-          expect(Yast::Popup).to_not receive(:Error)
-          expect(manager).to receive(:add_repository).with(URI(real_url))
-            .and_raise(::Installation::UpdatesManager::NotValidRepo)
-          expect(subject.main).to eq(:next)
+          it "does not show an error if update is not found" do
+            expect(Yast::Popup).to_not receive(:Error)
+            expect(manager).to receive(:add_repository).with(URI(real_url))
+              .and_raise(::Installation::UpdatesManager::NotValidRepo)
+            expect(subject.main).to eq(:next)
+          end
+
+          context "and control file doesn't have an URL" do
+            let(:url) { "" }
+
+            it "does not update the installer" do
+              expect(subject).to_not receive(:update_installer)
+            end
+          end
         end
 
-        context "and control file doesn't have an URL" do
-          let(:url) { "" }
+        context "in AutoYaST installation or upgrade" do
+          let(:profile_url) { "http://ay.test.example.com/update"; }
+
+          before do
+            expect(Yast::Mode).to receive(:auto).at_least(1).and_return(true)
+            allow(Yast::Profile).to receive(:current)
+              .and_return("general" => { "self_update_url" =>  profile_url })
+            allow(::FileUtils).to receive(:touch)
+          end
+
+          context "the profile defines the update URL" do
+            it "gets the URL from AutoYaST profile" do
+              expect(manager).to 
receive(:add_repository).with(URI(profile_url))
+              subject.main
+            end
+
+            it "returns :restart_yast" do
+              allow(manager).to receive(:add_repository).with(URI(profile_url))
+              expect(subject.main).to eq(:restart_yast)
+            end
+
+            it "shows an error and returns :next if update fails" do
+              expect(Yast::Report).to receive(:Error)
+              expect(manager).to receive(:add_repository)
+                
.and_raise(::Installation::UpdatesManager::CouldNotFetchUpdateFromRepo)
+              expect(subject.main).to eq(:next)
+            end
+          end
+
+          context "the profile does not define the update URL" do
+            let(:profile_url) { nil }
 
-          it "does not update the installer" do
-            expect(subject).to_not receive(:update_installer)
+            it "gets URL from control file" do
+              expect(manager).to receive(:add_repository).with(URI(real_url))
+              expect(subject.main).to eq(:restart_yast)
+            end
+
+            it "does not show an error if update is not found" do
+              expect(Yast::Report).to_not receive(:Error)
+              expect(manager).to receive(:add_repository).with(URI(real_url))
+                .and_raise(::Installation::UpdatesManager::NotValidRepo)
+              expect(subject.main).to eq(:next)
+            end
+
+            context "and control file doesn't have an URL" do
+              let(:url) { "" }
+
+              it "does not update the installer" do
+                expect(subject).to_not receive(:update_installer)
+                expect(subject.main).to eq(:next)
+              end
+            end
           end
         end
       end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-installation-3.1.177/test/test_helper.rb 
new/yast2-installation-3.1.181/test/test_helper.rb
--- old/yast2-installation-3.1.177/test/test_helper.rb  2016-04-07 
09:01:24.000000000 +0200
+++ new/yast2-installation-3.1.181/test/test_helper.rb  2016-04-19 
15:25:10.000000000 +0200
@@ -11,10 +11,20 @@
   class AutoinstConfigClass
     # we need at least one non-default methods, otherwise ruby-bindings thinks
     # it is just namespace
-    def fake_method
+    def cio_ignore
+    end
+
+    def second_stage
     end
   end
   AutoinstConfig = AutoinstConfigClass.new
+
+  # Faked Profile module
+  class Profile
+    def current
+    end
+  end
+  Profile = Profile.new
 end
 
 if ENV["COVERAGE"]
@@ -39,3 +49,8 @@
     ]
   end
 end
+
+RSpec.configure do |config|
+  config.extend Yast::I18n  # available in context/describe
+  config.include Yast::I18n # available in it/let/before/...
+end


Reply via email to