Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package yast2-metapackage-handler for 
openSUSE:Factory checked in at 2022-04-14 17:24:55
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/yast2-metapackage-handler (Old)
 and      /work/SRC/openSUSE:Factory/.yast2-metapackage-handler.new.1941 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "yast2-metapackage-handler"

Thu Apr 14 17:24:55 2022 rev:56 rq:969678 version:4.5.0

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/yast2-metapackage-handler/yast2-metapackage-handler.changes
      2021-05-20 19:23:14.722397634 +0200
+++ 
/work/SRC/openSUSE:Factory/.yast2-metapackage-handler.new.1941/yast2-metapackage-handler.changes
    2022-04-14 17:25:26.807262079 +0200
@@ -1,0 +2,5 @@
+Wed Apr 06 13:24:58 UTC 2022 - Ladislav Slez??k <lsle...@suse.cz>
+
+- Bump version to 4.5.0 (bsc#1198109)
+
+-------------------------------------------------------------------

Old:
----
  yast2-metapackage-handler-4.4.1.tar.bz2

New:
----
  yast2-metapackage-handler-4.5.0.tar.bz2

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

Other differences:
------------------
++++++ yast2-metapackage-handler.spec ++++++
--- /var/tmp/diff_new_pack.F7NUU1/_old  2022-04-14 17:25:27.231262575 +0200
+++ /var/tmp/diff_new_pack.F7NUU1/_new  2022-04-14 17:25:27.239262584 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package yast2-metapackage-handler
 #
-# Copyright (c) 2021 SUSE LLC
+# Copyright (c) 2022 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
 
 
 Name:           yast2-metapackage-handler
-Version:        4.4.1
+Version:        4.5.0
 Release:        0
 Summary:        YaST2 - Easy Installation of Add-on RPMs using Metapackages
 License:        GPL-2.0-or-later

++++++ yast2-metapackage-handler-4.4.1.tar.bz2 -> 
yast2-metapackage-handler-4.5.0.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-metapackage-handler-4.4.1/.github/workflows/ci.yml 
new/yast2-metapackage-handler-4.5.0/.github/workflows/ci.yml
--- old/yast2-metapackage-handler-4.4.1/.github/workflows/ci.yml        
2021-05-19 17:21:29.000000000 +0200
+++ new/yast2-metapackage-handler-4.5.0/.github/workflows/ci.yml        
2022-04-12 13:35:30.000000000 +0200
@@ -8,7 +8,14 @@
 jobs:
   Tests:
     runs-on: ubuntu-latest
-    container: registry.opensuse.org/yast/head/containers/yast-ruby:latest
+
+    strategy:
+      fail-fast: false
+      matrix:
+        distro:  [ "tumbleweed", "leap_latest" ]
+
+    container:
+      image: 
registry.opensuse.org/yast/head/containers_${{matrix.distro}}/yast-ruby
 
     steps:
 
@@ -27,13 +34,22 @@
 
     # send the coverage report to coveralls.io
     - name: Coveralls Report
+      # send it only from the TW build to avoid duplicate submits
+      if: ${{ matrix.distro == 'tumbleweed' }}
       uses: coverallsapp/github-action@master
       with:
         github-token: ${{ secrets.GITHUB_TOKEN }}
 
   Package:
     runs-on: ubuntu-latest
-    container: registry.opensuse.org/yast/head/containers/yast-ruby:latest
+
+    strategy:
+      fail-fast: false
+      matrix:
+        distro:  [ "tumbleweed", "leap_latest" ]
+
+    container:
+      image: 
registry.opensuse.org/yast/head/containers_${{matrix.distro}}/yast-ruby
 
     steps:
 
@@ -45,7 +61,14 @@
 
   Yardoc:
     runs-on: ubuntu-latest
-    container: registry.opensuse.org/yast/head/containers/yast-ruby:latest
+
+    strategy:
+      fail-fast: false
+      matrix:
+        distro: [ "leap_latest" ]
+
+    container:
+      image: 
registry.opensuse.org/yast/head/containers_${{matrix.distro}}/yast-ruby
 
     steps:
 
@@ -59,7 +82,14 @@
   # checks into one job avoids that overhead
   Checks:
     runs-on: ubuntu-latest
-    container: registry.opensuse.org/yast/head/containers/yast-ruby:latest
+
+    strategy:
+      fail-fast: false
+      matrix:
+        distro: [ "leap_latest" ]
+
+    container:
+      image: 
registry.opensuse.org/yast/head/containers_${{matrix.distro}}/yast-ruby
 
     steps:
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-metapackage-handler-4.4.1/package/yast2-metapackage-handler.changes 
new/yast2-metapackage-handler-4.5.0/package/yast2-metapackage-handler.changes
--- 
old/yast2-metapackage-handler-4.4.1/package/yast2-metapackage-handler.changes   
    2021-05-19 17:21:29.000000000 +0200
+++ 
new/yast2-metapackage-handler-4.5.0/package/yast2-metapackage-handler.changes   
    2022-04-12 13:35:30.000000000 +0200
@@ -1,4 +1,9 @@
 -------------------------------------------------------------------
+Wed Apr 06 13:24:58 UTC 2022 - Ladislav Slez??k <lsle...@suse.cz>
+
+- Bump version to 4.5.0 (bsc#1198109)
+
+-------------------------------------------------------------------
 Mon May 17 08:53:44 UTC 2021 - Dirk M??ller <dmuel...@suse.com>
 
 - only own the files, not the directories themselves (bsc#1184786)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-metapackage-handler-4.4.1/package/yast2-metapackage-handler.spec 
new/yast2-metapackage-handler-4.5.0/package/yast2-metapackage-handler.spec
--- old/yast2-metapackage-handler-4.4.1/package/yast2-metapackage-handler.spec  
2021-05-19 17:21:29.000000000 +0200
+++ new/yast2-metapackage-handler-4.5.0/package/yast2-metapackage-handler.spec  
2022-04-12 13:35:30.000000000 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           yast2-metapackage-handler
-Version:        4.4.1
+Version:        4.5.0
 Release:        0
 Summary:        YaST2 - Easy Installation of Add-on RPMs using Metapackages
 License:        GPL-2.0-or-later
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-metapackage-handler-4.4.1/spec/OneClickInstallWorkerFunctions_spec.rb 
new/yast2-metapackage-handler-4.5.0/spec/OneClickInstallWorkerFunctions_spec.rb
--- 
old/yast2-metapackage-handler-4.4.1/spec/OneClickInstallWorkerFunctions_spec.rb 
    2021-05-19 17:21:29.000000000 +0200
+++ 
new/yast2-metapackage-handler-4.5.0/spec/OneClickInstallWorkerFunctions_spec.rb 
    2022-04-12 13:35:30.000000000 +0200
@@ -117,4 +117,80 @@
       end
     end
   end
+
+  describe '#InstallPackages' do
+    before do
+      allow(Yast::Pkg).to receive(:ResolvableInstallRepo).and_return(true)
+    end
+    context "when package depedencies are resolved" do
+      before do
+        allow(Yast::Pkg).to receive(:PkgSolve).and_return(true)
+      end
+      it "installs packages" do
+        expect(subject.InstallPackages("vim")).to be true
+      end
+    end
+    context "when package depedencies are not resolved" do
+      before do
+        allow(Yast::Pkg).to receive(:PkgSolve).and_return(false)
+      end
+      it "installs packages if package selection is accepted" do
+        allow(Yast::PackagesUI).to 
receive(:RunPackageSelector).and_return(:accept)
+        expect(subject.InstallPackages("vim")).to be true
+      end
+      it "does not install packages if package selection is not accepted" do
+        allow(Yast::PackagesUI).to 
receive(:RunPackageSelector).and_return(:cancel)
+        expect(subject.InstallPackages("vim")).to be false
+      end
+    end
+  end
+
+  describe '#InstallPatterns' do
+    context "when pattern depedencies are resolved" do
+      before do
+        allow(Yast::Pkg).to receive(:PkgSolve).and_return(true)
+      end
+      it "installs pattern" do
+        expect(subject.InstallPatterns("gnome")).to be true
+      end
+    end
+    context "when pattern depedencies are not resolved" do
+      before do
+        allow(Yast::Pkg).to receive(:PkgSolve).and_return(false)
+      end
+      it "installs pattern if package selection is accepted" do
+        allow(Yast::PackagesUI).to 
receive(:RunPackageSelector).and_return(:accept)
+        expect(subject.InstallPatterns("gnome")).to be true
+      end
+      it "does not install pattern if package selection is not accepted" do
+        allow(Yast::PackagesUI).to 
receive(:RunPackageSelector).and_return(:cancel)
+        expect(subject.InstallPatterns("gnome")).to be false
+      end
+    end
+  end
+
+  describe '#RemovePackages' do
+    context "when package depedensies are resolved" do
+      before do
+        allow(Yast::Pkg).to receive(:PkgSolve).and_return(true)
+      end
+      it "removes installed package" do
+        expect(subject.RemovePackages("vim")).to be true
+      end
+    end
+    context "when package depedencies are not resolved" do
+      before do
+        allow(Yast::Pkg).to receive(:PkgSolve).and_return(false)
+      end
+      it "removes installed packages if package selection is accepted" do
+        allow(Yast::PackagesUI).to 
receive(:RunPackageSelector).and_return(:accept)
+        expect(subject.RemovePackages("vim")).to be true 
+      end
+      it "does not remove installed packages if package selection is not 
accepted" do
+        allow(Yast::PackagesUI).to 
receive(:RunPackageSelector).and_return(:cancel)
+        expect(subject.RemovePackages("vim")).to be false 
+      end
+    end
+  end
+
 end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-metapackage-handler-4.4.1/spec/OneClickInstall_spec.rb 
new/yast2-metapackage-handler-4.5.0/spec/OneClickInstall_spec.rb
--- old/yast2-metapackage-handler-4.4.1/spec/OneClickInstall_spec.rb    
2021-05-19 17:21:29.000000000 +0200
+++ new/yast2-metapackage-handler-4.5.0/spec/OneClickInstall_spec.rb    
2022-04-12 13:35:30.000000000 +0200
@@ -28,36 +28,172 @@
 describe Yast::OneClickInstall do
   let(:filepath) { File.join(DATA_PATH, "vim.ymp") }
   let(:output) { "" }
+  let(:urls) { ["http://download.opensuse.org/tumbleweed/repo/oss/";,
+                "http://download.opensuse.org/tumbleweed/repo/non-oss/";] }
+  let!(:repositories) { subject.instance_variable_set(:@repositories, 
+                                                     { urls[0] => { "name" => 
"oss" , "recommended" => "true" },
+                                                       urls[1] => { "name" => 
"non-oss" , "recommended" => "false" }}) }
+  let!(:software) { subject.instance_variable_set(:@software, 
+                                                 { "vim" => { "recommended" => 
"true" , "action" => "install" , "type" => "package" },
+                                                   "tftp" => { "recommended" 
=> "false" , "action" => "install" , "type" => "package" },
+                                                   "x11" => { "recommended" => 
"true" , "action" => "install" , "type" => "pattern" },
+                                                   "sap_server" => { 
"recommended" => "true" , "action" => "remove" , "type" => "pattern" }}) }
 
   describe "#xml_from_file" do
-    context "ymp file parsed" do
-      it "parses the XML file" do
-        doc = subject.xml_from_file(filepath)
-        expect(doc).to be_instance_of(REXML::Document)
-        doc.write(output)
-        expect(output).to include("vim")
-      end
+    it "parses the XML file" do
+      doc = subject.xml_from_file(filepath)
+      expect(doc).to be_instance_of(REXML::Document)
+      doc.write(output)
+      expect(output).to include("vim")
     end
   end
 
   describe "#xpath_match" do
-    context "matching node" do
-      it "returns and array of elements, matching xpath" do
-        doc = REXML::Document.new(File.read(filepath))
-        expect(subject.xpath_match(doc, "metapackage//url").first.text).to 
eq("http://download.opensuse.org/tumbleweed/repo/oss/";)
-      end
+    it "returns and array of elements, matching xpath" do
+      doc = REXML::Document.new(File.read(filepath))
+      expect(subject.xpath_match(doc, "metapackage//url").first.text).to 
eq(urls[0])
     end
   end
 
   describe "#SetRequiredRepository" do
-    context "set repository to recommended" do
-      it "Ensures that the repository with the specified URL is selected for 
addition" do
-        url = "http://download.opensuse.org/tumbleweed/repo/oss/";
-        subject.instance_variable_set(:@repositories, { url => { "name" => 
"vim" , "recommended" => "false" }})
-        subject.SetRequiredRepository(url)
-        repos = subject.instance_variable_get(:@repositories)
-        expect(repos[url]["name"]).to eql("vim")
-        expect(repos[url]["recommended"]).to eql("true")
+    it "Ensures that the repository with the specified URL is selected for 
addition" do
+      subject.instance_variable_set(:@repositories, { urls[0] => { "name" => 
"oss" , "recommended" => "false" }})
+      subject.SetRequiredRepository(urls[0])
+      repos = subject.instance_variable_get(:@repositories)
+      expect(repos[urls[0]]).to match_array( "name" => "oss" , "recommended" 
=> "true" )
+    end
+  end
+
+  describe "#SetNonRequiredRepository" do
+    it "Ensures that the repository with the specified URL is not selected for 
addition" do
+      subject.instance_variable_set(:@repositories, { urls[1] => { "name" => 
"non-oss" , "recommended" => "true" }})
+      subject.SetNonRequiredRepository(urls[1])
+      repos = subject.instance_variable_get(:@repositories)
+      expect(repos[urls[1]]["name"]).to eql("non-oss")
+      expect(repos[urls[1]]["recommended"]).to eql("false")
+    end
+  end
+
+  describe "#SetRequiredRepositories" do
+    it "Ensures that the repositories with the specified URL are selected for 
addition" do
+      subject.SetRequiredRepositories(urls)
+      repos = subject.instance_variable_get(:@repositories)
+      expect(repos[urls[0]]).to match_array( "name" => "oss" , "recommended" 
=> "true" )
+      expect(repos[urls[1]]).to match_array( "name" => "non-oss" , 
"recommended" => "true" )
+    end
+  end
+  
+  describe "#GetRequiredRepositories" do
+    it "Returns a list of the URLs of the repositories currently selected for 
addition" do
+      repos = subject.GetRequiredRepositories
+      expect(repos).to match_array([urls[0]]) 
+    end
+  end
+
+  describe "#GetNonRequiredRepositories" do
+    it "Returns a list of the URLs of the repositories currently not selected 
for addition" do
+      repos = subject.GetNonRequiredRepositories
+      expect(repos).to match_array(urls[1])
+    end
+  end
+
+  describe "#GetRequiredSoftware" do
+    it "Returns a list of the names of the software currently selected for 
installation" do
+      software_to_install = subject.GetRequiredSoftware
+      expect(software_to_install).to match_array(["vim" , "x11"])
+    end
+  end
+
+  describe "#GetRequiredRemoveSoftware" do
+    it "Returns a list of the names of the software currently selected for 
removal" do
+      software_to_remove = subject.GetRequiredRemoveSoftware
+      expect(software_to_remove).to match_array(["sap_server"])
+    end
+  end
+
+  describe "#GetRequiredPackages" do
+    it "Returns a list of the names of the packages currently selected for 
installation" do
+      packages_to_install = subject.GetRequiredPackages
+      expect(packages_to_install).to match_array(["vim"])
+    end
+  end
+
+  describe "#GetRequiredPatterns" do
+    it "Returns a list of the names of the patterns currently selected for 
installation" do
+      patterns_to_install = subject.GetRequiredPatterns
+      expect(patterns_to_install).to match_array(["x11"])
+    end
+  end
+
+  describe "#HaveAnyRecommended" do
+    it "Returns boolean, depending on the existence of any recommended 
repositories or software" do
+      any_recommended = subject.HaveAnyRecommended
+      expect(any_recommended).to be true
+    end
+  end  
+
+  describe "#makeXMLFriendly" do
+    it "converts map structure (eg. @repositories) to a list of maps with a 
key element" do
+      flattened = subject.makeXMLFriendly(software)
+      expect(flattened).to match_array([
+        {"recommended"=>"true", "action"=>"remove", "type"=>"pattern", 
"key"=>"sap_server"},
+        {"recommended"=>"false", "action"=>"install", "type"=>"package", 
"key"=>"tftp"},
+        {"recommended"=>"true", "action"=>"install", "type"=>"package", 
"key"=>"vim"},
+        {"recommended"=>"true", "action"=>"install", "type"=>"pattern", 
"key"=>"x11"}])
+    end
+  end
+
+  describe "#fromXMLFriendly" do
+    it "converts back from makeXMLFriendly to original structure" do
+      flattened = [
+        {"recommended"=>"true", "action"=>"remove", "type"=>"pattern", 
"key"=>"sap_server"},
+        {"recommended"=>"false", "action"=>"install", "type"=>"package", 
"key"=>"tftp"},
+        {"recommended"=>"true", "action"=>"install", "type"=>"package", 
"key"=>"vim"},
+        {"recommended"=>"true", "action"=>"install", "type"=>"pattern", 
"key"=>"x11"}]
+      unflattened = subject.fromXMLFriendly(flattened)
+      expect(unflattened).to match_array(software)
+    end
+  end
+
+  describe "#ToXML" do
+    it "serializes to XML file, according to OneClickInstall data structure" do
+      output_file = File.join(DATA_PATH, "serialized_result.xml")
+      subject.ToXML(output_file)
+      result = File.read(output_file)
+      expected_file = File.join(DATA_PATH, "serialized_expected.xml")
+      expected = File.read(expected_file)
+      expect(result).to eql(expected)
+      File.delete(output_file)
+    end
+  end
+
+  describe "#FromXML" do
+    it "deserializes according to OneClickInstall data structure to XML" do
+      filename = File.join(DATA_PATH, "to_deserialize.xml")
+      subject.FromXML(filename) 
+      expect(subject.instance_variable_get(:@software)).to 
match_array({"zdoom"=>{"action"=>"install", "recommended"=>"false", 
"type"=>"package"}})
+      expect(subject.instance_variable_get(:@repositories)).to 
match_array({"https://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Tumbleweed/"=>{"name"=>"packman",
 "recommended"=>"false"}})
+      expect(subject.instance_variable_get(:@remainSubscribed)).to be true
+      expect(subject.instance_variable_get(:@summary)).to be_empty
+      expect(subject.instance_variable_get(:@description)).to be_empty
+      expect(subject.instance_variable_get(:@name)).to be_empty
+    end
+  end
+
+  describe "#Load" do
+    context "when loading YMP file" do
+      it "loads the Metapackage data from the YML file supplied for further 
processing" do
+        subject.Load(filepath)
+        expect(subject.instance_variable_get(:@repositories)[urls[0]]).to 
include("name"=>"openSUSE:Factory",
+                                                                               
   "summary"=>"The next openSUSE distribution",
+                                                                               
   "recommended"=>"true") 
+        expect(subject.instance_variable_get(:@software)["vim"]).to 
include("summary"=>"Vi IMproved",
+                                                                            
"recommended"=>"true",
+                                                                            
"action"=>"install",
+                                                                            
"type"=>"package") 
+        expect(subject.instance_variable_get(:@name)).to eql("vim")
+        expect(subject.instance_variable_get(:@remainSubscribed)).to be true
+        expect(subject.instance_variable_get(:@description)).to include("Vim 
(Vi IMproved) is an almost compatible version of the UNIX editor")
       end
     end
   end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-metapackage-handler-4.4.1/spec/data/serialized_expected.xml 
new/yast2-metapackage-handler-4.5.0/spec/data/serialized_expected.xml
--- old/yast2-metapackage-handler-4.4.1/spec/data/serialized_expected.xml       
1970-01-01 01:00:00.000000000 +0100
+++ new/yast2-metapackage-handler-4.5.0/spec/data/serialized_expected.xml       
2022-04-12 13:35:30.000000000 +0200
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+<!DOCTYPE OneClickInstall SYSTEM "/un/defined">
+<OneClickInstall xmlns="http://www.suse.com/1.0/yast2ns"; 
xmlns:config="http://www.suse.com/1.0/configns";>
+  <description/>
+  <name/>
+  <remainSubscribed t="boolean">true</remainSubscribed>
+  <repositories t="list">
+    <repository t="map">
+      <key>http://download.opensuse.org/tumbleweed/repo/non-oss/</key>
+      <name>non-oss</name>
+      <recommended>false</recommended>
+    </repository>
+    <repository t="map">
+      <key>http://download.opensuse.org/tumbleweed/repo/oss/</key>
+      <name>oss</name>
+      <recommended>true</recommended>
+    </repository>
+  </repositories>
+  <software t="list">
+    <listentry t="map">
+      <action>remove</action>
+      <key>sap_server</key>
+      <recommended>true</recommended>
+      <type>pattern</type>
+    </listentry>
+    <listentry t="map">
+      <action>install</action>
+      <key>tftp</key>
+      <recommended>false</recommended>
+      <type>package</type>
+    </listentry>
+    <listentry t="map">
+      <action>install</action>
+      <key>vim</key>
+      <recommended>true</recommended>
+      <type>package</type>
+    </listentry>
+    <listentry t="map">
+      <action>install</action>
+      <key>x11</key>
+      <recommended>true</recommended>
+      <type>pattern</type>
+    </listentry>
+  </software>
+  <summary/>
+</OneClickInstall>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-metapackage-handler-4.4.1/spec/data/to_deserialize.xml 
new/yast2-metapackage-handler-4.5.0/spec/data/to_deserialize.xml
--- old/yast2-metapackage-handler-4.4.1/spec/data/to_deserialize.xml    
1970-01-01 01:00:00.000000000 +0100
+++ new/yast2-metapackage-handler-4.5.0/spec/data/to_deserialize.xml    
2022-04-12 13:35:30.000000000 +0200
@@ -0,0 +1,23 @@
+<?xml version="1.0"?>
+<!DOCTYPE OneClickInstall SYSTEM "/un/defined">
+<OneClickInstall xmlns="http://www.suse.com/1.0/yast2ns"; 
xmlns:config="http://www.suse.com/1.0/configns";>
+  <description/>
+  <name/>
+  <remainSubscribed t="boolean">true</remainSubscribed>
+  <repositories t="list">
+    <repository t="map">
+      
<key>https://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Tumbleweed/</key>
+      <name>packman</name>
+      <recommended>false</recommended>
+    </repository>
+  </repositories>  
+  <software t="list">
+    <listentry t="map">
+      <action>install</action>
+      <key>zdoom</key>
+      <recommended>false</recommended>
+      <type>package</type>
+    </listentry>
+  </software>
+  <summary/>
+</OneClickInstall>

Reply via email to