Hello community,

here is the log from the commit of package yast2 for openSUSE:Factory checked 
in at 2020-09-03 01:09:59
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/yast2 (Old)
 and      /work/SRC/openSUSE:Factory/.yast2.new.3399 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "yast2"

Thu Sep  3 01:09:59 2020 rev:492 rq:829961 version:4.3.24

Changes:
--------
--- /work/SRC/openSUSE:Factory/yast2/yast2.changes      2020-07-30 
10:00:47.771246140 +0200
+++ /work/SRC/openSUSE:Factory/.yast2.new.3399/yast2.changes    2020-09-03 
01:10:27.212392973 +0200
@@ -1,0 +2,33 @@
+Thu Aug 27 10:37:14 UTC 2020 - Ladislav Slezák <[email protected]>
+
+- Fixed accidentaly broken dependencies (related to bsc#1175317)
+- 4.3.24
+
+-------------------------------------------------------------------
+Thu Aug 27 09:20:42 UTC 2020 - Ladislav Slezák <[email protected]>
+
+- Yet another unit test architecture fix :-(
+  (related to bsc#1175317)
+- 4.3.23
+
+-------------------------------------------------------------------
+Thu Aug 27 08:30:07 UTC 2020 - Ladislav Slezák <[email protected]>
+
+- Fix for the previous change: fixed unit test failure on non
+  x86_64 archs (related to bsc#1175317)
+- 4.3.22
+
+-------------------------------------------------------------------
+Wed Aug 26 08:22:45 UTC 2020 - Ladislav Slezák <[email protected]>
+
+- Y2Packager::Resolvable.find(): improved error handling,
+  added more unit tests (related to bsc#1175317)
+- 4.3.21
+
+-------------------------------------------------------------------
+Tue Aug 25 09:46:20 UTC 2020 - Imobach Gonzalez Sosa <[email protected]>
+
+- Unify profile element paths (bsc#1175680).
+- 4.3.20
+
+-------------------------------------------------------------------

Old:
----
  yast2-4.3.19.tar.bz2

New:
----
  yast2-4.3.24.tar.bz2

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

Other differences:
------------------
++++++ yast2.spec ++++++
--- /var/tmp/diff_new_pack.zikEG5/_old  2020-09-03 01:10:28.456393387 +0200
+++ /var/tmp/diff_new_pack.zikEG5/_new  2020-09-03 01:10:28.460393389 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package yast2
 #
-# Copyright (c) 2020 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2020 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -12,17 +12,17 @@
 # license that conforms to the Open Source Definition (Version 1.9)
 # published by the Open Source Initiative.
 
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
 #
 
 
 Name:           yast2
-Version:        4.3.19
+Version:        4.3.24
 Release:        0
 Summary:        YaST2 Main Package
 License:        GPL-2.0-only
 Group:          System/YaST
-Url:            https://github.com/yast/yast-yast2
+URL:            https://github.com/yast/yast-yast2
 
 Source0:        %{name}-%{version}.tar.bz2
 Source1:        yast2-rpmlintrc
@@ -49,8 +49,8 @@
 # Needed already in build time
 BuildRequires:  yast2-core >= 2.18.12
 BuildRequires:  yast2-devtools >= 3.1.10
-# Pkg.Resolvables()
-BuildRequires:  yast2-pkg-bindings >= 4.2.0
+# RPM dependency filters in Pkg.Resolvables()
+BuildRequires:  yast2-pkg-bindings >= 4.3.0
 BuildRequires:  rubygem(%rb_default_ruby_abi:yast-rake)
 # for XML module
 BuildRequires:  rubygem(%rb_default_ruby_abi:nokogiri)
@@ -88,8 +88,8 @@
 Requires:       yast2-hardware-detection
 # for SLPAPI.pm
 Requires:       yast2-perl-bindings
-# Pkg.Resolvables()
-Requires:       yast2-pkg-bindings >= 4.2.0
+# RPM dependency filters in Pkg.Resolvables()
+Requires:       yast2-pkg-bindings >= 4.3.0
 # for y2start
 Requires:       yast2-ruby-bindings >= 3.2.10
 # new UI::SetApplicationTitle

++++++ yast2-4.3.19.tar.bz2 -> yast2-4.3.24.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-4.3.19/.github/workflows/tests.yml 
new/yast2-4.3.24/.github/workflows/tests.yml
--- old/yast2-4.3.19/.github/workflows/tests.yml        2020-07-29 
14:07:59.000000000 +0200
+++ new/yast2-4.3.24/.github/workflows/tests.yml        2020-08-27 
12:51:22.000000000 +0200
@@ -18,5 +18,56 @@
     - name: Inspect Installed Packages
       run: rpm -qa | sort
 
-    - name: Rubocop, Tests, Package Build
-      run: yast-travis-ruby
+    - name: Unit Tests
+      run: rake test:unit
+
+  Rubocop:
+    runs-on: ubuntu-latest
+    container: registry.opensuse.org/yast/head/containers/yast-ruby:latest
+
+    steps:
+
+    - name: Git Checkout
+      uses: actions/checkout@v1
+
+    - name: Inspect Installed Packages
+      run: rpm -qa | sort
+
+    - name: Rubocop
+      run: rake check:rubocop
+
+  Package_and_POT:
+    runs-on: ubuntu-latest
+    container: registry.opensuse.org/yast/head/containers/yast-ruby:latest
+
+    steps:
+
+    - name: Git Checkout
+      uses: actions/checkout@v1
+
+    - name: Inspect Installed Packages
+      run: rpm -qa | sort
+
+    - name: Package Build
+      run: yast-travis-ruby -o package
+
+    - name: POT Check
+      run: yast-travis-ruby -o pot
+
+  Yardoc_and_Perl:
+    runs-on: ubuntu-latest
+    container: registry.opensuse.org/yast/head/containers/yast-ruby:latest
+
+    steps:
+
+    - name: Git Checkout
+      uses: actions/checkout@v1
+
+    - name: Inspect Installed Packages
+      run: rpm -qa | sort
+
+    - name: Yardoc
+      run: yast-travis-ruby -o yardoc
+
+    - name: Perl Syntax
+      run: yast-travis-ruby -o perl_syntax
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-4.3.19/library/general/src/lib/installation/autoinst_issues/issues_presenter.rb
 
new/yast2-4.3.24/library/general/src/lib/installation/autoinst_issues/issues_presenter.rb
--- 
old/yast2-4.3.19/library/general/src/lib/installation/autoinst_issues/issues_presenter.rb
   2020-07-29 14:07:59.000000000 +0200
+++ 
new/yast2-4.3.24/library/general/src/lib/installation/autoinst_issues/issues_presenter.rb
   2020-08-27 12:51:22.000000000 +0200
@@ -107,7 +107,7 @@
 
         issues_map.each do |section, items|
           messages = Yast::HTML.List(items.map(&:message))
-          all_issues << "#{location(section)}:#{messages}"
+          all_issues << "#{section.section_path}:#{messages}"
         end
 
         Yast::HTML.List(all_issues)
@@ -124,31 +124,6 @@
           all[section] << issue
         end
       end
-
-      # Return a human string identifying in which section was detected
-      #
-      # For instance: "drive[0] > partitions[2] > raid_options"
-      #
-      # @param section [#parent,#section_name] Section where the problem was 
detected
-      # @return [String]
-      #
-      # @see Y2Storage::AutoinstProfile
-      def location(section)
-        return section.section_name if section.parent.nil?
-
-        value = section.parent.send(section.section_name)
-        text =
-          if value.is_a?(Array)
-            index = value.index(section)
-            "#{section.section_name}[#{index + 1}]"
-          else
-            section.section_name
-          end
-
-        prefix = location(section.parent)
-        prefix << " > " unless prefix.empty?
-        prefix + text
-      end
     end
   end
 end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-4.3.19/library/general/src/lib/installation/autoinst_issues.rb 
new/yast2-4.3.24/library/general/src/lib/installation/autoinst_issues.rb
--- old/yast2-4.3.19/library/general/src/lib/installation/autoinst_issues.rb    
2020-07-29 14:07:59.000000000 +0200
+++ new/yast2-4.3.24/library/general/src/lib/installation/autoinst_issues.rb    
2020-08-27 12:51:22.000000000 +0200
@@ -36,3 +36,4 @@
 require "installation/autoinst_issues/issue"
 require "installation/autoinst_issues/invalid_value"
 require "installation/autoinst_issues/missing_value"
+require "installation/autoinst_issues/issues_presenter"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-4.3.19/library/general/src/lib/installation/autoinst_profile/element_path.rb
 
new/yast2-4.3.24/library/general/src/lib/installation/autoinst_profile/element_path.rb
--- 
old/yast2-4.3.19/library/general/src/lib/installation/autoinst_profile/element_path.rb
      1970-01-01 01:00:00.000000000 +0100
+++ 
new/yast2-4.3.24/library/general/src/lib/installation/autoinst_profile/element_path.rb
      2020-08-27 12:51:22.000000000 +0200
@@ -0,0 +1,110 @@
+# Copyright (c) [2020] SUSE LLC
+#
+# All Rights Reserved.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of version 2 of the GNU General Public License as published
+# by the Free Software Foundation.
+#
+# This program is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+# more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, contact SUSE LLC.
+#
+# To contact SUSE LLC about this file by physical or electronic mail, you may
+# find current contact information at www.suse.com.
+
+module Installation
+  module AutoinstProfile
+    # This class represents an element path in a profile
+    #
+    # @example Create a path
+    #   ElementPath.new("groups", 0, "groupname")
+    #
+    # @example Join a path and a string
+    #   first = ElementPath.new("users", 1)
+    #   first.join("username").to_s #=> "users,1,username"
+    class ElementPath
+      extend Forwardable
+
+      def_delegators :@parts, :first, :last
+
+      class << self
+        # Returns an ElementPath object from a string
+        #
+        # @example Path to the username of the first user
+        #   ElementPath.from_string("users,0,username")
+        #
+        # @param str [String] String to parse
+        # @return [ElementPath] Profile path
+        def from_string(str)
+          parts = str.split(",").each_with_object([]) do |part, all|
+            element = (part =~ /\A\d+\Z/) ? part.to_i : part
+            all.push(element)
+          end
+          new(*parts)
+        end
+      end
+
+      # Constructor
+      #
+      # @param parts [Array<Integer,String>] Profile path parts
+      def initialize(*parts)
+        @parts = parts
+      end
+
+      # Returns the path parts
+      #
+      # @return [Array<Integer,String>] An array containing the path parts
+      def to_a
+        @parts
+      end
+
+      # Returns a new path composed by the given parts
+      #
+      # @example Extend a path with an string
+      #   path = ProfilePath.new("general")
+      #   path.join("mode") #=> ProfilePath.new("general", "mode")
+      #
+      # @example Combine ProfilePath and strings
+      #   path = ProfilePath.new("general")
+      #   suffix = ProfilePath.new("mode")
+      #   path.join(suffix, "confirm") #=> ProfilePath.new("general", "mode", 
"confirm")
+      #
+      # @param parts_or_path [Array<String,ProfilePath>] Parts or paths to join
+      # @return [ElementPath] New element path
+      def join(*parts_or_path)
+        new_parts = parts_or_path.reduce([]) do |all, element|
+          new_elements = element.respond_to?(:to_a) ? element.to_a : [element]
+          all + new_elements
+        end
+
+        self.class.new(*(@parts + new_parts))
+      end
+
+      # Compares two paths
+      #
+      # Two paths are considered to be equivalent if they have the same parts.
+      #
+      # @param other [ElementPath] Element path to compare with
+      # @return [Boolean] true if they are equal; false otherwise
+      def ==(other)
+        @parts == other.to_a
+      end
+
+      # Returns a generic path (old AutoYaST path used in ask-lists)
+      #
+      # @example Path to the first user in the list
+      #   path = ElementPath.new("users", 1, "username")
+      #   path.to_s #=> "users,1,username"
+      #
+      # @return [String]
+      def to_s
+        @parts.join(",")
+      end
+    end
+  end
+end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-4.3.19/library/general/src/lib/installation/autoinst_profile/section_with_attributes.rb
 
new/yast2-4.3.24/library/general/src/lib/installation/autoinst_profile/section_with_attributes.rb
--- 
old/yast2-4.3.19/library/general/src/lib/installation/autoinst_profile/section_with_attributes.rb
   2020-07-29 14:07:59.000000000 +0200
+++ 
new/yast2-4.3.24/library/general/src/lib/installation/autoinst_profile/section_with_attributes.rb
   2020-08-27 12:51:22.000000000 +0200
@@ -18,6 +18,7 @@
 # find current contact information at www.suse.com.
 
 require "yast"
+require "installation/autoinst_profile/element_path"
 
 module Installation
   module AutoinstProfile
@@ -217,6 +218,39 @@
           .chomp("_section")
       end
 
+      # Returns the collection name
+      #
+      # If the section belongs to a collection, returns its name.
+      # Otherwise, it returns nil.
+      #
+      # @return [String,nil] Collection name
+      def collection_name
+        nil
+      end
+
+      # Returns the position within the collection
+      #
+      # @return [Integer,nil] Index or nil if it does not belong to a 
collection
+      #   or the parent is not set.
+      def index
+        return nil unless collection_name && parent
+
+        parent.send(collection_name).index(self)
+      end
+
+      # Returns the section's path
+      #
+      # @return [ElementPath] Section path
+      def section_path
+        return ElementPath.new(section_name) if parent.nil?
+
+        if collection_name
+          parent.section_path.join(collection_name, index)
+        else
+          parent.section_path.join(section_name)
+        end
+      end
+
     protected
 
       def attributes
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-4.3.19/library/general/test/installation/autoinst_profile/element_path_test.rb
 
new/yast2-4.3.24/library/general/test/installation/autoinst_profile/element_path_test.rb
--- 
old/yast2-4.3.19/library/general/test/installation/autoinst_profile/element_path_test.rb
    1970-01-01 01:00:00.000000000 +0100
+++ 
new/yast2-4.3.24/library/general/test/installation/autoinst_profile/element_path_test.rb
    2020-08-27 12:51:22.000000000 +0200
@@ -0,0 +1,57 @@
+# Copyright (c) [2020] SUSE LLC
+#
+# All Rights Reserved.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of version 2 of the GNU General Public License as published
+# by the Free Software Foundation.
+#
+# This program is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+# more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, contact SUSE LLC.
+#
+# To contact SUSE LLC about this file by physical or electronic mail, you may
+# find current contact information at www.suse.com.
+
+require_relative "../../test_helper"
+require "installation/autoinst_profile/element_path"
+
+describe Installation::AutoinstProfile::ElementPath do
+  subject { described_class.new }
+
+  describe ".from_string" do
+    it "returns a path composed by the given parts" do
+      expect(described_class.from_string("users,1,username"))
+        .to eq(described_class.new("users", 1, "username"))
+    end
+  end
+
+  describe "#join" do
+    subject(:path) { described_class.new("users", 1) }
+
+    it "returns a new profile path including all the parts" do
+      expect(subject.join("username")).to eq(described_class.new("users", 1, 
"username"))
+    end
+
+    context "when strings and paths are given" do
+      let(:path) { described_class.new("general") }
+
+      it "returns a new profile path including all parts" do
+        new_path = path.join(described_class.new("mode"), "confirm")
+        expect(new_path).to eq(described_class.new("general", "mode", 
"confirm"))
+      end
+    end
+  end
+
+  describe "#to_s" do
+    subject(:path) { described_class.new("users", 1, "username") }
+
+    it "returns an string representing the path" do
+      expect(path.to_s).to eq("users,1,username")
+    end
+  end
+end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-4.3.19/library/general/test/installation/autoinst_profile/section_with_attributes_test.rb
 
new/yast2-4.3.24/library/general/test/installation/autoinst_profile/section_with_attributes_test.rb
--- 
old/yast2-4.3.19/library/general/test/installation/autoinst_profile/section_with_attributes_test.rb
 1970-01-01 01:00:00.000000000 +0100
+++ 
new/yast2-4.3.24/library/general/test/installation/autoinst_profile/section_with_attributes_test.rb
 2020-08-27 12:51:22.000000000 +0200
@@ -0,0 +1,154 @@
+# Copyright (c) [2020] SUSE LLC
+#
+# All Rights Reserved.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of version 2 of the GNU General Public License as published
+# by the Free Software Foundation.
+#
+# This program is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+# more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, contact SUSE LLC.
+#
+# To contact SUSE LLC about this file by physical or electronic mail, you may
+# find current contact information at www.suse.com.
+
+require_relative "../../test_helper"
+require "installation/autoinst_profile/section_with_attributes"
+
+describe Installation::AutoinstProfile::SectionWithAttributes do
+  # <root>
+  #   <foo>sample</foo>
+  #   <children t="list">
+  #     <child><name>Child 1</name></child>
+  #     <child><name>Child 1</name></child>
+  #   </children>
+  #   <group>
+  #     <name>Some group</name>
+  #   </group>
+  # </root>
+  class RootSection < described_class
+    class << self
+      def attributes
+        [
+          { name: :foo },
+          { name: :children },
+          { name: :group }
+        ]
+      end
+
+      def new_from_hashes(hash = {})
+        result = new
+        result.init_from_hashes(hash)
+        if hash["children"]
+          result.children = hash["children"].map do |c|
+            ChildSection.new_from_hashes(c, result)
+          end
+        end
+        result.group = GroupSection.new_from_hashes(hash["group"], result) if 
hash["group"]
+        result
+      end
+    end
+
+    define_attr_accessors
+
+    def initialize
+      @children = []
+      @group = nil
+    end
+  end
+
+  class ChildSection < described_class
+    class << self
+      def attributes
+        [
+          { name: :name }
+        ]
+      end
+
+      def new_from_hashes(hash, parent = nil)
+        result = new(parent)
+        result.init_from_hashes(hash)
+        result
+      end
+    end
+
+    define_attr_accessors
+
+    def collection_name
+      "children"
+    end
+  end
+
+  class GroupSection < described_class
+    class << self
+      def attributes
+        [
+          { name: :name }
+        ]
+      end
+
+      def new_from_hashes(hash, parent = nil)
+        result = new(parent)
+        result.init_from_hashes(hash)
+        result
+      end
+    end
+
+    define_attr_accessors
+  end
+
+  subject { RootSection.new }
+
+  describe "an instance" do
+    it "offers accessors to known attributes" do
+      expect(subject).to respond_to(:foo)
+      expect(subject).to respond_to(:foo=)
+    end
+  end
+
+  describe "#section_path" do
+    context "when the section does not have a parent" do
+      subject { RootSection.new }
+
+      it "returns a path containing only the section name" do
+        expect(subject.section_path)
+          .to eq(Installation::AutoinstProfile::ElementPath.new("root"))
+      end
+    end
+
+    context "when the section have a parent" do
+      let(:parent) do
+        RootSection.new_from_hashes(
+          "group" => { "name" => "some" }
+        )
+      end
+
+      subject { parent.group }
+
+      it "returns a path containing all section names an indexes" do
+        expect(subject.section_path)
+          .to eq(Installation::AutoinstProfile::ElementPath.new("root", 
"group"))
+      end
+    end
+
+    context "when the section is included in an array" do
+      let(:parent) do
+        RootSection.new_from_hashes(
+          "children" => [{ "name" => "first" }, { "name" => "second" }]
+        )
+      end
+
+      subject { parent.children.first }
+
+      it "returns a path including the position in the array" do
+        expect(subject.section_path)
+          .to eq(Installation::AutoinstProfile::ElementPath.new("root", 
"children", 0))
+      end
+    end
+  end
+end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-4.3.19/library/packages/src/lib/y2packager/resolvable.rb 
new/yast2-4.3.24/library/packages/src/lib/y2packager/resolvable.rb
--- old/yast2-4.3.19/library/packages/src/lib/y2packager/resolvable.rb  
2020-07-29 14:07:59.000000000 +0200
+++ new/yast2-4.3.24/library/packages/src/lib/y2packager/resolvable.rb  
2020-08-27 12:51:22.000000000 +0200
@@ -55,10 +55,19 @@
     #    you might ask to preload the attributes right at the beginning and 
avoid
     #    querying libzypp again later.
     # @return [Array<Y2Packager::Resolvable>] Found resolvables or empty array 
if nothing found
+    # @raise [ArgumentError] Raises ArgumentError when the passed regular 
expression is invalid
+    # @note The regular expressions used in the RPM dependency filters (e.g. 
"provides_regexp",
+    #    "supplements_regexp") are POSIX extended regular expressions, not 
Ruby regular expressions!
     # @see https://yast-pkg-bindings.surge.sh/ Yast::Pkg.Resolvables
     def self.find(params, preload = [])
       attrs = (preload + UNIQUE_ATTRIBUTES).uniq
-      Yast::Pkg.Resolvables(params, attrs).map { |r| new(r) }
+      resolvables = Yast::Pkg.Resolvables(params, attrs)
+
+      # currently nil is returned only when an invalid regular expression
+      # is passed in a RPM dependency filter (like supplements_regexp: 
"autoyast(")
+      raise ArgumentError, Yast::Pkg.LastError if resolvables.nil?
+
+      resolvables.map { |r| new(r) }
     end
 
     #
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-4.3.19/library/packages/test/y2packager/resolvable_test.rb 
new/yast2-4.3.24/library/packages/test/y2packager/resolvable_test.rb
--- old/yast2-4.3.19/library/packages/test/y2packager/resolvable_test.rb        
2020-07-29 14:07:59.000000000 +0200
+++ new/yast2-4.3.24/library/packages/test/y2packager/resolvable_test.rb        
2020-08-27 12:51:22.000000000 +0200
@@ -4,6 +4,15 @@
 require "y2packager/resolvable"
 require "tmpdir"
 
+################################################################################
+#
+# WARNING: The testing repository in the y2packager/zypp/test_repo directory
+#   contains only the "noarch" and "x86_64" packages.
+#   Be careful when writing tests here, on the other archs than x86_64 only
+#   the "noarch" packages will be visible!
+#
+################################################################################
+
 # This is rather an integration test because it actually
 # reads a real repository metadata using libzypp.
 describe Y2Packager::Resolvable do
@@ -43,6 +52,31 @@
       expect(res).to_not be_empty
       expect(res.all? { |r| r.kind == :package && r.name == "yast2-add-on" 
}).to be true
     end
+
+    it "finds packages via an RPM dependency filter" do
+      res = Y2Packager::Resolvable.find(kind: :package, provides: 
"application()")
+      # use some noarch package here, the testing data covers only the x86_64 
arch
+      # it is enough to check just one of them
+      expect(res).to include(an_object_having_attributes(name: 
"yast2-registration"))
+    end
+
+    it "finds packages via an RPM dependency regexp filter" do
+      res = Y2Packager::Resolvable.find(kind: :package, obsoletes_regexp: 
"^yast2-config-")
+      # use some noarch package here, the testing data covers only the x86_64 
arch
+      # it is enough to check just one of them
+      expect(res).to include(an_object_having_attributes(name: 
"yast2-firewall"))
+    end
+
+    it "returns an empty list if the RPM dependency filter does not match" do
+      res = Y2Packager::Resolvable.find(kind: :package, provides: 
"missing_provides")
+      expect(res).to be_empty
+    end
+
+    it "raises ArgumentError when the RPM dependency regexp filter is invalid" 
do
+      # the "(" character is a grouping meta character, the closing ")" is 
missing
+      expect { Y2Packager::Resolvable.find(kind: :package, provides_regexp: 
"foo(") }
+        .to raise_error(ArgumentError, /Invalid regular expression/)
+    end
   end
 
   describe ".any?" do
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-4.3.19/package/yast2.changes 
new/yast2-4.3.24/package/yast2.changes
--- old/yast2-4.3.19/package/yast2.changes      2020-07-29 14:07:59.000000000 
+0200
+++ new/yast2-4.3.24/package/yast2.changes      2020-08-27 12:51:22.000000000 
+0200
@@ -1,4 +1,37 @@
 -------------------------------------------------------------------
+Thu Aug 27 10:37:14 UTC 2020 - Ladislav Slezák <[email protected]>
+
+- Fixed accidentaly broken dependencies (related to bsc#1175317)
+- 4.3.24
+
+-------------------------------------------------------------------
+Thu Aug 27 09:20:42 UTC 2020 - Ladislav Slezák <[email protected]>
+
+- Yet another unit test architecture fix :-(
+  (related to bsc#1175317)
+- 4.3.23
+
+-------------------------------------------------------------------
+Thu Aug 27 08:30:07 UTC 2020 - Ladislav Slezák <[email protected]>
+
+- Fix for the previous change: fixed unit test failure on non
+  x86_64 archs (related to bsc#1175317)
+- 4.3.22
+
+-------------------------------------------------------------------
+Wed Aug 26 08:22:45 UTC 2020 - Ladislav Slezák <[email protected]>
+
+- Y2Packager::Resolvable.find(): improved error handling,
+  added more unit tests (related to bsc#1175317)
+- 4.3.21
+
+-------------------------------------------------------------------
+Tue Aug 25 09:46:20 UTC 2020 - Imobach Gonzalez Sosa <[email protected]>
+
+- Unify profile element paths (bsc#1175680).
+- 4.3.20
+
+-------------------------------------------------------------------
 Tue Jul 28 14:27:40 UTC 2020 - Imobach Gonzalez Sosa <[email protected]>
 
 - XML: do not export the system ID if it is not defined
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-4.3.19/package/yast2.spec 
new/yast2-4.3.24/package/yast2.spec
--- old/yast2-4.3.19/package/yast2.spec 2020-07-29 14:07:59.000000000 +0200
+++ new/yast2-4.3.24/package/yast2.spec 2020-08-27 12:51:22.000000000 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           yast2
-Version:        4.3.19
+Version:        4.3.24
 Release:        0
 Summary:        YaST2 Main Package
 License:        GPL-2.0-only
@@ -49,8 +49,8 @@
 # Needed already in build time
 BuildRequires:  yast2-core >= 2.18.12
 BuildRequires:  yast2-devtools >= 3.1.10
-# Pkg.Resolvables()
-BuildRequires:  yast2-pkg-bindings >= 4.2.0
+# RPM dependency filters in Pkg.Resolvables()
+BuildRequires:  yast2-pkg-bindings >= 4.3.0
 BuildRequires:  rubygem(%rb_default_ruby_abi:yast-rake)
 # for XML module
 BuildRequires:  rubygem(%rb_default_ruby_abi:nokogiri)
@@ -88,8 +88,8 @@
 Requires:       yast2-hardware-detection
 # for SLPAPI.pm
 Requires:       yast2-perl-bindings
-# Pkg.Resolvables()
-Requires:       yast2-pkg-bindings >= 4.2.0
+# RPM dependency filters in Pkg.Resolvables()
+Requires:  yast2-pkg-bindings >= 4.3.0
 # for y2start
 Requires:       yast2-ruby-bindings >= 3.2.10
 # new UI::SetApplicationTitle


Reply via email to