Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package obs-service-tar_scm for 
openSUSE:Factory checked in at 2022-11-11 14:36:14
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/obs-service-tar_scm (Old)
 and      /work/SRC/openSUSE:Factory/.obs-service-tar_scm.new.1597 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "obs-service-tar_scm"

Fri Nov 11 14:36:14 2022 rev:74 rq:1035037 version:0.10.34.1667392550.026bf0e

Changes:
--------
--- /work/SRC/openSUSE:Factory/obs-service-tar_scm/obs-service-tar_scm.changes  
2022-10-10 18:44:20.430839981 +0200
+++ 
/work/SRC/openSUSE:Factory/.obs-service-tar_scm.new.1597/obs-service-tar_scm.changes
        2022-11-11 14:36:17.830226250 +0100
@@ -1,0 +2,8 @@
+Thu Nov 03 09:09:46 UTC 2022 - [email protected]
+
+- Update to version 0.10.34.1667392550.026bf0e:
+  * Fix testing in GH actions
+  * make linters happy again
+  * new find_latest_signed_commit algorithm
+
+-------------------------------------------------------------------

Old:
----
  obs-service-tar_scm-0.10.33.1664344889.48d1960.tar.gz

New:
----
  _maintainers
  obs-service-tar_scm-0.10.34.1667392550.026bf0e.tar.gz

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

Other differences:
------------------
++++++ obs-service-tar_scm.spec ++++++
--- /var/tmp/diff_new_pack.M0ZREq/_old  2022-11-11 14:36:18.498230108 +0100
+++ /var/tmp/diff_new_pack.M0ZREq/_new  2022-11-11 14:36:18.502230130 +0100
@@ -119,8 +119,8 @@
 
 %define pkg_name obs-service-tar_scm
 Name:           %{pkg_name}%{nsuffix}
-%define version_unconverted 0.10.33.1664344889.48d1960
-Version:        0.10.33.1664344889.48d1960
+%define version_unconverted 0.10.34.1667392550.026bf0e
+Version:        0.10.34.1667392550.026bf0e
 Release:        0
 Summary:        An OBS source service: create tar ball from svn/git/hg
 License:        GPL-2.0-or-later

++++++ PKGBUILD ++++++
--- /var/tmp/diff_new_pack.M0ZREq/_old  2022-11-11 14:36:18.538230338 +0100
+++ /var/tmp/diff_new_pack.M0ZREq/_new  2022-11-11 14:36:18.546230385 +0100
@@ -1,5 +1,5 @@
 pkgname=obs-service-tar_scm
-pkgver=0.10.33.1664344889.48d1960
+pkgver=0.10.34.1667392550.026bf0e
 pkgrel=0
 pkgdesc="Source Service for the OpenSUSE Build Service (OBS)"
 arch=('any')

++++++ _service ++++++
--- /var/tmp/diff_new_pack.M0ZREq/_old  2022-11-11 14:36:18.586230615 +0100
+++ /var/tmp/diff_new_pack.M0ZREq/_new  2022-11-11 14:36:18.594230662 +0100
@@ -9,6 +9,8 @@
     <param name="extract">dist/obs-service-tar_scm.spec</param>
     <param name="versionrewrite-pattern">v(.*)</param>
     <param name="revision">master</param>
+    <param name="latest-signed-tag">true</param>
+    <param name="maintainers-asc">_maintainers</param>
   </service>
   <service name="set_version" mode="disabled">
     <param name="basename">obs-service-tar_scm</param>

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.M0ZREq/_old  2022-11-11 14:36:18.618230800 +0100
+++ /var/tmp/diff_new_pack.M0ZREq/_new  2022-11-11 14:36:18.618230800 +0100
@@ -9,6 +9,6 @@
                 <param 
name="url">git://github.com/openSUSE/obs-service-tar_scm.git</param>
               <param 
name="changesrevision">85bfc3fabb06212b49a389afb3310bfbf2996913</param></service><service
 name="tar_scm">
                 <param 
name="url">https://github.com/openSUSE/obs-service-tar_scm.git</param>
-              <param 
name="changesrevision">48d1960591bf0d1a45b77da659399a9395427d28</param></service></servicedata>
+              <param 
name="changesrevision">026bf0e08d904f092e7dbdb893bd204efc7f59c9</param></service></servicedata>
 (No newline at EOF)
 

++++++ debian.dsc ++++++
--- /var/tmp/diff_new_pack.M0ZREq/_old  2022-11-11 14:36:18.634230893 +0100
+++ /var/tmp/diff_new_pack.M0ZREq/_new  2022-11-11 14:36:18.638230916 +0100
@@ -1,6 +1,6 @@
 Format: 1.0
 Source: obs-service-tar-scm
-Version: 0.10.33.1664344889.48d1960
+Version: 0.10.34.1667392550.026bf0e
 Provides: obs-service-obs_scm, obs-service-tar
 Binary: obs-service-tar_scm
 Maintainer: Adrian Schroeter <[email protected]>

++++++ obs-service-tar_scm-0.10.33.1664344889.48d1960.tar.gz -> 
obs-service-tar_scm-0.10.34.1667392550.026bf0e.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/obs-service-tar_scm-0.10.33.1664344889.48d1960/.github/workflows/main.yml 
new/obs-service-tar_scm-0.10.34.1667392550.026bf0e/.github/workflows/main.yml
--- 
old/obs-service-tar_scm-0.10.33.1664344889.48d1960/.github/workflows/main.yml   
    2022-09-28 08:01:29.000000000 +0200
+++ 
new/obs-service-tar_scm-0.10.34.1667392550.026bf0e/.github/workflows/main.yml   
    2022-11-02 13:35:50.000000000 +0100
@@ -25,14 +25,14 @@
     # Steps represent a sequence of tasks that will be executed as part of the 
job
     steps:
       # Checks-out your repository under $GITHUB_WORKSPACE, so your job can 
access it
-      - uses: actions/checkout@v2
+      - uses: actions/checkout@v3
 
       - name: Install required dpkg packages
         run: sudo apt-get install libxslt1-dev bzr subversion mercurial
 
       - name: Generate default locales
         run: |
-          sudo locale-gen "en_US.UTF-8"
+          sudo apt-get update && sudo apt-get install tzdata locales -y && 
sudo locale-gen "en_US.UTF-8"
           sudo dpkg-reconfigure locales
           sudo update-locale "LANG=en_US.UTF-8"
           sudo update-locale "LC_ALL=en_US.UTF-8"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/obs-service-tar_scm-0.10.33.1664344889.48d1960/.pylintrc 
new/obs-service-tar_scm-0.10.34.1667392550.026bf0e/.pylintrc
--- old/obs-service-tar_scm-0.10.33.1664344889.48d1960/.pylintrc        
2022-09-28 08:01:29.000000000 +0200
+++ new/obs-service-tar_scm-0.10.34.1667392550.026bf0e/.pylintrc        
2022-11-02 13:35:50.000000000 +0100
@@ -84,7 +84,16 @@
 #       a feature request to improve pylint in this respect:
 #           https://github.com/PyCQA/pylint/issues/246
 
-disable=import-star-module-level,old-octal-literal,oct-method,print-statement,unpacking-in-except,parameter-unpacking,backtick,old-raise-syntax,old-ne-operator,long-suffix,dict-view-method,dict-iter-method,metaclass-assignment,next-method-called,raising-string,indexing-exception,raw_input-builtin,long-builtin,file-builtin,execfile-builtin,coerce-builtin,cmp-builtin,buffer-builtin,basestring-builtin,apply-builtin,filter-builtin-not-iterating,using-cmp-argument,useless-suppression,range-builtin-not-iterating,suppressed-message,no-absolute-import,old-division,cmp-method,reload-builtin,zip-builtin-not-iterating,intern-builtin,unichr-builtin,reduce-builtin,standarderror-builtin,unicode-builtin,xrange-builtin,coerce-method,delslice-method,getslice-method,setslice-method,input-builtin,round-builtin,hex-method,nonzero-method,map-builtin-not-iterating,missing-docstring,old-style-class,bad-whitespace,consider-using-with,consider-using-f-string,duplicate-code
+# The following disables habe been activated to make most combinations
+# of pylint/python versions working again.
+#
+# * E0012 - bad-option-value
+# * R0022 - useless-option-value
+# * W0012 - unknown-option-value
+# * E0015 - unrecognized-option
+
+
+disable=import-star-module-level,old-octal-literal,oct-method,print-statement,unpacking-in-except,parameter-unpacking,backtick,old-raise-syntax,old-ne-operator,long-suffix,dict-view-method,dict-iter-method,metaclass-assignment,next-method-called,raising-string,indexing-exception,raw_input-builtin,long-builtin,file-builtin,execfile-builtin,coerce-builtin,cmp-builtin,buffer-builtin,basestring-builtin,apply-builtin,filter-builtin-not-iterating,using-cmp-argument,useless-suppression,range-builtin-not-iterating,suppressed-message,no-absolute-import,old-division,cmp-method,reload-builtin,zip-builtin-not-iterating,intern-builtin,unichr-builtin,reduce-builtin,standarderror-builtin,unicode-builtin,xrange-builtin,coerce-method,delslice-method,getslice-method,setslice-method,input-builtin,round-builtin,hex-method,nonzero-method,map-builtin-not-iterating,missing-docstring,old-style-class,bad-whitespace,consider-using-with,consider-using-f-string,duplicate-code,R0022,W0012,E0012,E0015
 
 
 [REPORTS]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/obs-service-tar_scm-0.10.33.1664344889.48d1960/.pylinttestsrc 
new/obs-service-tar_scm-0.10.34.1667392550.026bf0e/.pylinttestsrc
--- old/obs-service-tar_scm-0.10.33.1664344889.48d1960/.pylinttestsrc   
2022-09-28 08:01:29.000000000 +0200
+++ new/obs-service-tar_scm-0.10.34.1667392550.026bf0e/.pylinttestsrc   
2022-11-02 13:35:50.000000000 +0100
@@ -84,7 +84,15 @@
 #       a feature request to improve pylint in this respect:
 #           https://github.com/PyCQA/pylint/issues/246
 
-disable=import-star-module-level,old-octal-literal,oct-method,print-statement,unpacking-in-except,parameter-unpacking,backtick,old-raise-syntax,old-ne-operator,long-suffix,dict-view-method,dict-iter-method,metaclass-assignment,next-method-called,raising-string,indexing-exception,raw_input-builtin,long-builtin,file-builtin,execfile-builtin,coerce-builtin,cmp-builtin,buffer-builtin,basestring-builtin,apply-builtin,filter-builtin-not-iterating,using-cmp-argument,useless-suppression,range-builtin-not-iterating,suppressed-message,no-absolute-import,old-division,cmp-method,reload-builtin,zip-builtin-not-iterating,intern-builtin,unichr-builtin,reduce-builtin,standarderror-builtin,unicode-builtin,xrange-builtin,coerce-method,delslice-method,getslice-method,setslice-method,input-builtin,round-builtin,hex-method,nonzero-method,map-builtin-not-iterating,missing-docstring,old-style-class,bad-whitespace,duplicate-code,too-many-public-methods,protected-access,too-many-locals,consider-using-with,c
 onsider-using-f-string,super-with-arguments
+# The following disables habe been activated to make most combinations
+# of pylint/python versions working again.
+#
+# * E0012 - bad-option-value
+# * R0022 - useless-option-value
+# * W0012 - unknown-option-value
+# * E0015 - unrecognized-option
+
+disable=import-star-module-level,old-octal-literal,oct-method,print-statement,unpacking-in-except,parameter-unpacking,backtick,old-raise-syntax,old-ne-operator,long-suffix,dict-view-method,dict-iter-method,metaclass-assignment,next-method-called,raising-string,indexing-exception,raw_input-builtin,long-builtin,file-builtin,execfile-builtin,coerce-builtin,cmp-builtin,buffer-builtin,basestring-builtin,apply-builtin,filter-builtin-not-iterating,using-cmp-argument,useless-suppression,range-builtin-not-iterating,suppressed-message,no-absolute-import,old-division,cmp-method,reload-builtin,zip-builtin-not-iterating,intern-builtin,unichr-builtin,reduce-builtin,standarderror-builtin,unicode-builtin,xrange-builtin,coerce-method,delslice-method,getslice-method,setslice-method,input-builtin,round-builtin,hex-method,nonzero-method,map-builtin-not-iterating,missing-docstring,old-style-class,bad-whitespace,duplicate-code,too-many-public-methods,protected-access,too-many-locals,consider-using-with,c
 onsider-using-f-string,super-with-arguments,E0012,R0022,W0012,E0015
 
 
 [REPORTS]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/obs-service-tar_scm-0.10.33.1664344889.48d1960/TarSCM/helpers.py 
new/obs-service-tar_scm-0.10.34.1667392550.026bf0e/TarSCM/helpers.py
--- old/obs-service-tar_scm-0.10.33.1664344889.48d1960/TarSCM/helpers.py        
2022-09-28 08:01:29.000000000 +0200
+++ new/obs-service-tar_scm-0.10.34.1667392550.026bf0e/TarSCM/helpers.py        
2022-11-02 13:35:50.000000000 +0100
@@ -65,8 +65,9 @@
         return (proc.returncode, output)
 
     def safe_run(self, cmd, cwd, interactive=False):
-        """Execute the command cmd in the working directory cwd and check 
return
-        value. If the command returns non-zero raise a SystemExit exception.
+        """Execute the command cmd in the working directory cwd and check
+        return value. If the command returns non-zero raise a SystemExit
+        exception.
         """
         result = self.run_cmd(cmd, cwd, interactive, raisesysexit=True)
         return result
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/obs-service-tar_scm-0.10.33.1664344889.48d1960/TarSCM/scm/git.py 
new/obs-service-tar_scm-0.10.34.1667392550.026bf0e/TarSCM/scm/git.py
--- old/obs-service-tar_scm-0.10.33.1664344889.48d1960/TarSCM/scm/git.py        
2022-09-28 08:01:29.000000000 +0200
+++ new/obs-service-tar_scm-0.10.34.1667392550.026bf0e/TarSCM/scm/git.py        
2022-11-02 13:35:50.000000000 +0100
@@ -60,7 +60,7 @@
                          "\033[0m")
 
         if self.args.latest_signed_commit:
-            self.revision = self.find_latest_signed_commit()
+            self.revision = self.find_latest_signed_commit('HEAD')
             if not self.revision:
                 sys.exit("\033[31mNo signed commit found!"
                          "\033[0m")
@@ -505,42 +505,90 @@
         # Deny by default, might be local path
         return False
 
-    def find_latest_signed_commit(self):
-        result = self.helpers.safe_run(
-            ['git', 'log', '--pretty=format:%H %G? %h %D', "--topo-order"],
-            cwd=self.clone_dir)
-
-        revision = None
-
-        lines = result[1].split("\n")
-        while lines:
-            line = lines.pop(0)
-            commit = line.split(" ", 3)
-            logging.debug("Commit: %s - %s", commit[0], commit[1])
-            if re.match("^(G|U)$", commit[1]):
-                revision = commit[0]
-                logging.debug("Found signed commit: %r", commit)
-                lines[:0] = line
-
-                while not self._parent_tag and lines:
-                    tline = lines.pop(0)
-                    commit = tline.split(" ", 3)
-                    if len(commit) > 3:
-                        ptg = search_tags(commit[3], 1)
-                        if ptg:
-                            self._parent_tag = ptg[0]
-
-                if self._parent_tag:
-                    logging.debug("Found parent tag: %s", self._parent_tag)
+    def find_latest_signed_commit(self, commit):
+        if not commit:
+            commit = 'HEAD'
+        cmd = ['git', 'rev-list', '-n1', commit]
+        result = self.helpers.safe_run(cmd, cwd=self.clone_dir)
+        commit = result[1].rstrip()
+
+        while commit:
+            parents = self.get_parents(commit)
+            (commit, c_ok) = self.check_commit(commit, parents)
+            if c_ok:
+                return commit
+        return None
+
+    def check_commit(self, current_commit, parents):
+        # pylint: disable=R0911,R0912
+        left_parent = None
+        if parents:
+            left_parent = parents[0]
+        right_parent = None
+        if len(parents) > 1:
+            right_parent = parents[1]
+        # skip octopus merges and proceed with left parent
+        if len(parents) > 2:
+            return (left_parent, 0)
+        if not current_commit:
+            return ('', 0)
+
+        cmd = ['git', 'verify-commit', current_commit]
+        result = self.helpers.run_cmd(cmd, cwd=self.clone_dir)
+        if not result[0]:
+            return (current_commit, 1)
+
+        if right_parent:
+            c_ok = self.check_commit(
+                current_commit,
+                [right_parent])
+            if c_ok[1]:
+                parents = self.get_parents(left_parent)
+                if len(parents) > 1:
+                    mie = self.merge_is_empty(current_commit)
+                    if mie:
+                        c_ok = self.check_commit(
+                            current_commit,
+                            [left_parent])
+                        return (current_commit, c_ok[1])
                 else:
-                    logging.debug("No parent tag found")
-
-                break
-
-        if not revision:
-            logging.debug("No signed commit found")
-
-        return revision
+                    c_ok = self.check_commit(
+                        current_commit,
+                        [left_parent])
+                    if c_ok[1]:
+                        return (current_commit, 1)
+        elif left_parent:
+            parents = self.get_parents(left_parent)
+            if len(parents) > 1:
+                c_ok = self.check_commit(current_commit, parents)
+                if c_ok[1]:
+                    return (left_parent, 1)
+            else:
+                cmd = ['git', 'verify-commit', left_parent]
+                result = self.helpers.run_cmd(cmd, cwd=self.clone_dir)
+                if not result[0]:
+                    return (left_parent, 1)
+
+        return (left_parent, 0)
+
+    def merge_is_empty(self, sha1):
+        cmd  = ['git', 'diff-tree', '--cc', sha1]
+        result = self.helpers.safe_run(cmd, cwd=self.clone_dir)
+        lines = result[1].split("\n")
+        if lines[1]:
+            return 0
+        return 1
+
+    def get_parents(self, sha1):
+        cmd  = ['git', 'rev-list', '--parents', '-n', '1', sha1]
+        result = self.helpers.safe_run(cmd, cwd=self.clone_dir)
+        parents = result[1].rstrip().split(" ")
+        fcm = parents.pop(0)
+        if fcm != sha1:
+            raise Exception("First commit %s no equal sha1 %s" % (fcm, sha1))
+        if parents:
+            return parents
+        return []
 
     def find_latest_signed_tag(self):
         revision = None
Binary files 
old/obs-service-tar_scm-0.10.33.1664344889.48d1960/tests/fixtures/GitTests/test_find_valid_commit/fixtures.tar
 and 
new/obs-service-tar_scm-0.10.34.1667392550.026bf0e/tests/fixtures/GitTests/test_find_valid_commit/fixtures.tar
 differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/obs-service-tar_scm-0.10.33.1664344889.48d1960/tests/gitfixtures.py 
new/obs-service-tar_scm-0.10.34.1667392550.026bf0e/tests/gitfixtures.py
--- old/obs-service-tar_scm-0.10.33.1664344889.48d1960/tests/gitfixtures.py     
2022-09-28 08:01:29.000000000 +0200
+++ new/obs-service-tar_scm-0.10.34.1667392550.026bf0e/tests/gitfixtures.py     
2022-11-02 13:35:50.000000000 +0100
@@ -16,6 +16,14 @@
     def init(self):
         self.user_name  = 'test'
         self.user_email = '[email protected]'
+
+        tmpdir = os.path.join(os.path.dirname(
+            os.path.abspath(__file__)), 'tmp')
+        gitconfig = os.path.join(tmpdir, '.gitconfig')
+        os.environ["GIT_CONFIG_GLOBAL"] = gitconfig
+        self.safe_run('config --global protocol.file.allow always')
+        self.safe_run('config --global commit.gpgsign false')
+
         self.create_repo(self.repo_path)
         self.wdir = self.repo_path
         self.submodules_path = self.container_dir + '/submodules'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/obs-service-tar_scm-0.10.33.1664344889.48d1960/tests/gittests.py 
new/obs-service-tar_scm-0.10.34.1667392550.026bf0e/tests/gittests.py
--- old/obs-service-tar_scm-0.10.33.1664344889.48d1960/tests/gittests.py        
2022-09-28 08:01:29.000000000 +0200
+++ new/obs-service-tar_scm-0.10.34.1667392550.026bf0e/tests/gittests.py        
2022-11-02 13:35:50.000000000 +0100
@@ -7,6 +7,7 @@
 import tarfile
 import shutil
 import io
+import inspect
 
 try:
     from unittest import mock
@@ -430,3 +431,133 @@
         status = fix.safe_run('status -s')
         os.chdir(cwd)
         self.assertTrue(status[0] == b' M file.4\n?? test.txt\n')
+
+    def test_find_valid_commit(self):
+        cln = self.__class__.__name__
+        fnn = inspect.stack()[0][3]
+        basedir = os.path.abspath(os.path.dirname(__file__))
+        tar_path = os.path.join(basedir, 'fixtures', cln, fnn, 'fixtures.tar')
+        if not os.path.isfile(tar_path):
+            raise AssertionError("File does not exist: %s" % tar_path)
+        basedir = os.path.abspath(os.path.join(os.getcwd(),'..'))
+        org_gnupghome = os.getenv('GNUPGHOME')
+        os.environ["GNUPGHOME"] = os.path.join(basedir, '.gnupg')
+        with tarfile.open(tar_path, "r") as tar:
+            tar.extractall(basedir)
+
+        # prepare test
+        f_args  = FakeCli()
+        f_tasks = FakeTasks()
+        git = Git(f_args, f_tasks)
+
+        self.assertEqual(git.merge_is_empty('181fb87'), 0)
+        self.assertEqual(git.merge_is_empty('62368a6'), 1)
+        self.assertEqual(git.merge_is_empty('79880ce'), 1)
+        self.assertEqual(git.merge_is_empty('d4d309f'), 1)
+        self.assertEqual(git.merge_is_empty('2169a75'), 1)
+        self.assertEqual(git.merge_is_empty('b678c16'), 1)
+
+        expected = [
+            [
+                '',
+                '62368a6718a739b89d1d3831cb1305bfc0792a81'
+            ],
+            [
+                '62368a6718a739b89d1d3831cb1305bfc0792a81',
+                '62368a6718a739b89d1d3831cb1305bfc0792a81'
+            ],
+            [
+                '1c2319e4a1e631fbe8b5903eb8df3c9edbd38ac7',
+                '1c2319e4a1e631fbe8b5903eb8df3c9edbd38ac7'
+            ],
+            [
+                '79880ce4f6726d95c6efafced72d997ee712136a',
+                '79880ce4f6726d95c6efafced72d997ee712136a'
+            ],
+            [
+                'f72f7bf1612102aa0cbb37a8d2feb85279b76cfa',
+                'f72f7bf1612102aa0cbb37a8d2feb85279b76cfa'
+            ],
+            [
+                'da3cd3b114c995a53fd5eb41a4366c6a1f067b53',
+                'da3cd3b114c995a53fd5eb41a4366c6a1f067b53'
+            ],
+            [
+                'fb54afb594a0e27dc4047da8ddf2adbe8af60bb5',
+                '2169a7524bb39ba9e0e619ec41f50132c1075a5c'
+            ],
+            [
+                'd4d309f876b927e9816ee0fce439c082d316c6aa',
+                '2169a7524bb39ba9e0e619ec41f50132c1075a5c'
+            ],
+            [
+                '12756203831dcf056b7bc907e516b3ab4b2eae87',
+                '12756203831dcf056b7bc907e516b3ab4b2eae87'
+            ],
+            [
+                '8ae3f352b1e1a08a3e5c696891014b11379c4567',
+                '8ae3f352b1e1a08a3e5c696891014b11379c4567'
+            ],
+            [
+                '82d3064bce8b38956956bbe3130495bd33502cb5',
+                '2169a7524bb39ba9e0e619ec41f50132c1075a5c'
+            ],
+            [
+                '2169a7524bb39ba9e0e619ec41f50132c1075a5c',
+                '2169a7524bb39ba9e0e619ec41f50132c1075a5c'
+            ],
+            [
+                '4d1b74ff1c753843a86310ebb7a14692b30892ad',
+                '4d1b74ff1c753843a86310ebb7a14692b30892ad'
+            ],
+            [
+                '29305458b0dd532c1465cd6bec86aec5f62bd8bb',
+                '29305458b0dd532c1465cd6bec86aec5f62bd8bb'
+            ],
+            [
+                'd1e4164d1bd155bec8ed9370698c8faa40531d68',
+                'd1e4164d1bd155bec8ed9370698c8faa40531d68'
+            ],
+            [
+                '05e017515ae51d6102908399b08a62b69c007002',
+                '05e017515ae51d6102908399b08a62b69c007002'
+            ],
+            [
+                'b678c1654d9fb3e918e4a2147e7b7eb027176910',
+                None
+            ],
+            [
+                'd4e47fe91df3e70621ee17e79c103c25ac9bdd57',
+                None
+            ],
+            [
+                'd0d8815d51145d29b0dc7967e203df804f18f904',
+                None
+            ],
+            [
+                '7627d9029be2f115c2a34af9e0d5e16698e090ca',
+                None
+            ],
+            [
+                'a1a8e5a26e69b31b53dc74f7bdf37e20dc9e0167',
+                None
+            ],
+            [
+                '68cfb194866c2034fa41eb8a1d329e3bc1dc5037',
+                None
+            ],
+            [
+                '6640eafee928cb9bb44065953ffcfb8355e3c88e',
+                None
+            ],
+        ]
+
+        for case in expected:
+            rev = git.find_latest_signed_commit(case[0])
+            self.assertEqual(rev, case[1])
+
+        empty=git.merge_is_empty('181fb87')
+        self.assertEqual(empty, 0)
+
+        if org_gnupghome:
+            os.environ["GNUPGHOME"] = org_gnupghome
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/obs-service-tar_scm-0.10.33.1664344889.48d1960/tests/tasks.py 
new/obs-service-tar_scm-0.10.34.1667392550.026bf0e/tests/tasks.py
--- old/obs-service-tar_scm-0.10.33.1664344889.48d1960/tests/tasks.py   
2022-09-28 08:01:29.000000000 +0200
+++ new/obs-service-tar_scm-0.10.34.1667392550.026bf0e/tests/tasks.py   
2022-11-02 13:35:50.000000000 +0100
@@ -7,6 +7,7 @@
 import io
 
 try:
+    # pylint: disable=ungrouped-imports
     from unittest.mock import MagicMock
 except ImportError:
     from mock import MagicMock
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/obs-service-tar_scm-0.10.33.1664344889.48d1960/tests/test.py 
new/obs-service-tar_scm-0.10.34.1667392550.026bf0e/tests/test.py
--- old/obs-service-tar_scm-0.10.33.1664344889.48d1960/tests/test.py    
2022-09-28 08:01:29.000000000 +0200
+++ new/obs-service-tar_scm-0.10.34.1667392550.026bf0e/tests/test.py    
2022-11-02 13:35:50.000000000 +0100
@@ -70,6 +70,7 @@
             to_run = {}
             for arg in sys.argv[1:]:
                 rmatch = re.match('^/(.+)/$', arg)
+                # pylint: disable=unnecessary-lambda-assignment
                 if rmatch:
                     # regexp mode
                     regexp = rmatch.group(1)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/obs-service-tar_scm-0.10.33.1664344889.48d1960/tests/utils.py 
new/obs-service-tar_scm-0.10.34.1667392550.026bf0e/tests/utils.py
--- old/obs-service-tar_scm-0.10.33.1664344889.48d1960/tests/utils.py   
2022-09-28 08:01:29.000000000 +0200
+++ new/obs-service-tar_scm-0.10.34.1667392550.026bf0e/tests/utils.py   
2022-11-02 13:35:50.000000000 +0100
@@ -8,6 +8,7 @@
 import io
 import shutil
 import subprocess
+import sys
 import six
 
 
@@ -22,12 +23,32 @@
     os.makedirs(path)
     os.chdir(cwd)
 
+def check_locale(loc):
+    try:
+        aloc_tmp = subprocess.check_output(['locale', '-a'])
+    except AttributeError:
+        aloc_tmp, _ = subprocess.Popen(['locale', '-a'],
+                                       stdout=subprocess.PIPE,
+                                       stderr=subprocess.STDOUT).communicate()
+    aloc = {}
+
+    for tloc in aloc_tmp.split(b'\n'):
+        aloc[tloc] = 1
+
+    for tloc in loc:
+        print("Checking .... %s"%tloc, file=sys.stderr)
+        try:
+            if aloc[tloc.encode()]:
+                return tloc
+        except KeyError:
+            pass
+
+    return 'C'
 
 def run_cmd(cmd):
-    os.putenv('LANG', 'C.utf-8')
-    os.putenv('LC_ALL', 'C.utf-8')
-    os.environ['LANG'] = 'C.utf-8'
-    os.environ['LC_ALL'] = 'C.utf-8'
+    use_locale = check_locale(["en_US.utf8", 'C.utf8'])
+    os.environ['LANG']   = use_locale
+    os.environ['LC_ALL'] = use_locale
     if six.PY3:
         cmd = cmd.encode('UTF-8')
     proc = subprocess.Popen(

Reply via email to