forked from pool/python-sh
Accepting request 670583 from devel:languages:python
- Add patches from Fedora: * always-use-fully-versioned-python-command-in-tests.patch * no-coverage.patch * 0001-Fix-tests-for-the-drop-the-unversion-python.patch * pep-0538-test-fix.patch OBS-URL: https://build.opensuse.org/request/show/670583 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-sh?expand=0&rev=5
This commit is contained in:
commit
83e56e35d0
29
0001-Fix-tests-for-the-drop-the-unversion-python.patch
Normal file
29
0001-Fix-tests-for-the-drop-the-unversion-python.patch
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
From 392a0471ed19d71a226442270127a9414ccc7908 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Pierre-Yves Chibon <pingou@pingoured.fr>
|
||||||
|
Date: Tue, 24 Jul 2018 17:39:58 +0200
|
||||||
|
Subject: [PATCH] Fix tests for the drop the unversion python
|
||||||
|
|
||||||
|
Signed-off-by: Pierre-Yves Chibon <pingou@pingoured.fr>
|
||||||
|
---
|
||||||
|
test.py | 5 ++++-
|
||||||
|
1 file changed, 4 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/test.py b/test.py
|
||||||
|
index 68ef40c..71994fa 100644
|
||||||
|
--- a/test.py
|
||||||
|
+++ b/test.py
|
||||||
|
@@ -3007,7 +3007,10 @@ class ExecutionContextTests(unittest.TestCase):
|
||||||
|
import sh
|
||||||
|
_sh = sh()
|
||||||
|
omg = _sh
|
||||||
|
- from omg import python
|
||||||
|
+ if IS_PY2:
|
||||||
|
+ from omg import python2
|
||||||
|
+ else:
|
||||||
|
+ from omg import python3
|
||||||
|
|
||||||
|
def test_importer_only_works_with_sh(self):
|
||||||
|
def unallowed_import():
|
||||||
|
--
|
||||||
|
2.14.4
|
||||||
|
|
77
always-use-fully-versioned-python-command-in-tests.patch
Normal file
77
always-use-fully-versioned-python-command-in-tests.patch
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
From 94774d2574668aa9f7bc775cc13087a7aed03f12 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Carl George <carl@george.computer>
|
||||||
|
Date: Wed, 20 Jun 2018 11:02:01 -0500
|
||||||
|
Subject: [PATCH] always use fully versioned python command in tests
|
||||||
|
|
||||||
|
---
|
||||||
|
test.py | 18 ++++++++++--------
|
||||||
|
1 file changed, 10 insertions(+), 8 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/test.py b/test.py
|
||||||
|
index 68ef40c..ef4f589 100644
|
||||||
|
--- a/test.py
|
||||||
|
+++ b/test.py
|
||||||
|
@@ -93,13 +93,13 @@ def append_module_path(env, m):
|
||||||
|
ioStringIO = StringIO
|
||||||
|
from io import BytesIO as cStringIO
|
||||||
|
iocStringIO = cStringIO
|
||||||
|
- python = sh.Command(sh.which("python%d.%d" % sys.version_info[:2]))
|
||||||
|
else:
|
||||||
|
from StringIO import StringIO
|
||||||
|
from cStringIO import StringIO as cStringIO
|
||||||
|
from io import StringIO as ioStringIO
|
||||||
|
from io import BytesIO as iocStringIO
|
||||||
|
- python = sh.python
|
||||||
|
+
|
||||||
|
+system_python = sh.Command(sh.which("python%d.%d" % sys.version_info[:2]))
|
||||||
|
|
||||||
|
THIS_DIR = dirname(os.path.abspath(__file__))
|
||||||
|
|
||||||
|
@@ -108,7 +108,7 @@ def append_module_path(env, m):
|
||||||
|
# module, and not the system one
|
||||||
|
baked_env = os.environ.copy()
|
||||||
|
append_module_path(baked_env, sh)
|
||||||
|
-python = python.bake(_env=baked_env)
|
||||||
|
+python = system_python.bake(_env=baked_env)
|
||||||
|
|
||||||
|
|
||||||
|
if hasattr(logging, 'NullHandler'):
|
||||||
|
@@ -1634,10 +1634,10 @@ def test_cmd_eq(self):
|
||||||
|
|
||||||
|
def test_fg(self):
|
||||||
|
py = create_tmp_test("exit(0)")
|
||||||
|
- # notice we're using `sh.python`, and not `python`. this is because
|
||||||
|
+ # notice we're using `system_python`, and not `python`. this is because
|
||||||
|
# `python` has an env baked into it, and we want `_env` to be None for
|
||||||
|
# coverage
|
||||||
|
- sh.python(py.name, _fg=True)
|
||||||
|
+ system_python(py.name, _fg=True)
|
||||||
|
|
||||||
|
def test_fg_env(self):
|
||||||
|
py = create_tmp_test("""
|
||||||
|
@@ -2058,8 +2058,10 @@ def test_signal_group(self):
|
||||||
|
""")
|
||||||
|
|
||||||
|
parent = create_tmp_test("""
|
||||||
|
+import sys
|
||||||
|
import sh
|
||||||
|
-p = sh.python("{child_file}", _bg=True, _new_session=False)
|
||||||
|
+system_python = sh.Command(sh.which("python%d.%d" % sys.version_info[:2]))
|
||||||
|
+p = system_python("{child_file}", _bg=True, _new_session=False)
|
||||||
|
print(p.pid)
|
||||||
|
print(p.process.pgid)
|
||||||
|
p.wait()
|
||||||
|
@@ -2875,11 +2877,11 @@ def test_threaded_with_contexts(self):
|
||||||
|
def f1():
|
||||||
|
with p1:
|
||||||
|
time.sleep(1)
|
||||||
|
- results[0] = str(sh.python("one"))
|
||||||
|
+ results[0] = str(system_python("one"))
|
||||||
|
|
||||||
|
def f2():
|
||||||
|
with p2:
|
||||||
|
- results[1] = str(sh.python("two"))
|
||||||
|
+ results[1] = str(system_python("two"))
|
||||||
|
|
||||||
|
t1 = threading.Thread(target=f1)
|
||||||
|
t1.start()
|
61
no-coverage.patch
Normal file
61
no-coverage.patch
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
diff -Naurp sh-1.12.14.orig/sh.py sh-1.12.14/sh.py
|
||||||
|
--- sh-1.12.14.orig/sh.py 2017-06-06 21:51:42.000000000 -0500
|
||||||
|
+++ sh-1.12.14/sh.py 2017-06-07 08:49:59.350791975 -0500
|
||||||
|
@@ -3519,14 +3519,9 @@ if __name__ == "__main__": # pragma: no
|
||||||
|
|
||||||
|
if action in ("test", "travis"):
|
||||||
|
import test
|
||||||
|
- coverage = None
|
||||||
|
- if test.HAS_UNICODE_LITERAL:
|
||||||
|
- import coverage
|
||||||
|
|
||||||
|
env = os.environ.copy()
|
||||||
|
env["SH_TESTS_RUNNING"] = "1"
|
||||||
|
- if coverage:
|
||||||
|
- test.append_module_path(env, coverage)
|
||||||
|
|
||||||
|
# if we're testing locally, run all versions of python on the system
|
||||||
|
if action == "test":
|
||||||
|
diff -Naurp sh-1.12.14.orig/test.py sh-1.12.14/test.py
|
||||||
|
--- sh-1.12.14.orig/test.py 2017-06-06 21:51:42.000000000 -0500
|
||||||
|
+++ sh-1.12.14/test.py 2017-06-07 08:49:59.351791993 -0500
|
||||||
|
@@ -6,31 +6,6 @@ IS_PY3 = sys.version_info[0] == 3
|
||||||
|
IS_PY2 = not IS_PY3
|
||||||
|
MINOR_VER = sys.version_info[1]
|
||||||
|
|
||||||
|
-# coverage doesn't work in python 3.1, 3.2 due to it just being a shit
|
||||||
|
-# python
|
||||||
|
-HAS_UNICODE_LITERAL = not (IS_PY3 and MINOR_VER in (1, 2))
|
||||||
|
-
|
||||||
|
-cov = None
|
||||||
|
-if HAS_UNICODE_LITERAL:
|
||||||
|
- run_idx = int(os.environ.pop("SH_TEST_RUN_IDX", "0"))
|
||||||
|
- first_run = run_idx == 0
|
||||||
|
-
|
||||||
|
- import coverage
|
||||||
|
-
|
||||||
|
- # for some reason, we can't run auto_data on the first run, or the coverage
|
||||||
|
- # numbers get really screwed up
|
||||||
|
- auto_data = True
|
||||||
|
- if first_run:
|
||||||
|
- auto_data = False
|
||||||
|
-
|
||||||
|
- cov = coverage.Coverage(auto_data=auto_data)
|
||||||
|
-
|
||||||
|
- if first_run:
|
||||||
|
- cov.erase()
|
||||||
|
-
|
||||||
|
- cov.start()
|
||||||
|
-
|
||||||
|
-
|
||||||
|
from os.path import exists, join, realpath, dirname, split
|
||||||
|
import unittest
|
||||||
|
try:
|
||||||
|
@@ -3045,6 +3020,4 @@ if __name__ == "__main__":
|
||||||
|
exit(1)
|
||||||
|
|
||||||
|
finally:
|
||||||
|
- if cov:
|
||||||
|
- cov.stop()
|
||||||
|
- cov.save()
|
||||||
|
+ pass
|
50
pep-0538-test-fix.patch
Normal file
50
pep-0538-test-fix.patch
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
diff -Naurp sh-1.12.14.orig/test.py sh-1.12.14/test.py
|
||||||
|
--- sh-1.12.14.orig/test.py 2017-06-06 21:51:42.000000000 -0500
|
||||||
|
+++ sh-1.12.14/test.py 2017-06-07 11:27:04.912212886 -0500
|
||||||
|
@@ -515,17 +515,28 @@ while True:
|
||||||
|
"VERSIONER_PYTHON_VERSION",
|
||||||
|
]
|
||||||
|
|
||||||
|
+ # Fedora adds some extra environment variables as well.
|
||||||
|
+ # See https://www.python.org/dev/peps/pep-0538/ for more info.
|
||||||
|
+ fedora_cruft = [
|
||||||
|
+ "LC_CTYPE",
|
||||||
|
+ "LANG"
|
||||||
|
+ ]
|
||||||
|
+
|
||||||
|
# first we test that the environment exists in our child process as
|
||||||
|
# we've set it
|
||||||
|
py = create_tmp_test("""
|
||||||
|
import os
|
||||||
|
|
||||||
|
osx_cruft = %s
|
||||||
|
+fedora_cruft = %s
|
||||||
|
for key in osx_cruft:
|
||||||
|
try: del os.environ[key]
|
||||||
|
except: pass
|
||||||
|
+for key in fedora_cruft:
|
||||||
|
+ try: del os.environ[key]
|
||||||
|
+ except: pass
|
||||||
|
print(os.environ["HERP"] + " " + str(len(os.environ)))
|
||||||
|
-""" % osx_cruft)
|
||||||
|
+""" % (osx_cruft, fedora_cruft))
|
||||||
|
out = python(py.name, _env=env).strip()
|
||||||
|
self.assertEqual(out, "DERP 1")
|
||||||
|
|
||||||
|
@@ -534,11 +545,15 @@ import os, sys
|
||||||
|
sys.path.insert(0, os.getcwd())
|
||||||
|
import sh
|
||||||
|
osx_cruft = %s
|
||||||
|
+fedora_cruft = %s
|
||||||
|
for key in osx_cruft:
|
||||||
|
try: del os.environ[key]
|
||||||
|
except: pass
|
||||||
|
+for key in fedora_cruft:
|
||||||
|
+ try: del os.environ[key]
|
||||||
|
+ except: pass
|
||||||
|
print(sh.HERP + " " + str(len(os.environ)))
|
||||||
|
-""" % osx_cruft)
|
||||||
|
+""" % (osx_cruft, fedora_cruft))
|
||||||
|
out = python(py.name, _env=env, _cwd=THIS_DIR).strip()
|
||||||
|
self.assertEqual(out, "DERP 1")
|
||||||
|
|
@ -1,3 +1,12 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Feb 1 13:16:33 UTC 2019 - Tomáš Chvátal <tchvatal@suse.com>
|
||||||
|
|
||||||
|
- Add patches from Fedora:
|
||||||
|
* always-use-fully-versioned-python-command-in-tests.patch
|
||||||
|
* no-coverage.patch
|
||||||
|
* 0001-Fix-tests-for-the-drop-the-unversion-python.patch
|
||||||
|
* pep-0538-test-fix.patch
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Tue Dec 4 12:54:15 UTC 2018 - Matej Cepl <mcepl@suse.com>
|
Tue Dec 4 12:54:15 UTC 2018 - Matej Cepl <mcepl@suse.com>
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# spec file for package python-sh
|
# spec file for package python-sh
|
||||||
#
|
#
|
||||||
# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
|
# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
|
||||||
#
|
#
|
||||||
# All modifications and additions to the file contributed by third parties
|
# All modifications and additions to the file contributed by third parties
|
||||||
# remain the property of their copyright owners, unless otherwise agreed
|
# remain the property of their copyright owners, unless otherwise agreed
|
||||||
@ -17,7 +17,6 @@
|
|||||||
|
|
||||||
|
|
||||||
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
|
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
|
||||||
%bcond_without test
|
|
||||||
Name: python-sh
|
Name: python-sh
|
||||||
Version: 1.12.14
|
Version: 1.12.14
|
||||||
Release: 0
|
Release: 0
|
||||||
@ -26,12 +25,13 @@ License: MIT
|
|||||||
Group: Development/Languages/Python
|
Group: Development/Languages/Python
|
||||||
URL: https://github.com/amoffat/sh
|
URL: https://github.com/amoffat/sh
|
||||||
Source: https://files.pythonhosted.org/packages/source/s/sh/sh-%{version}.tar.gz
|
Source: https://files.pythonhosted.org/packages/source/s/sh/sh-%{version}.tar.gz
|
||||||
|
Patch0: always-use-fully-versioned-python-command-in-tests.patch
|
||||||
|
Patch1: no-coverage.patch
|
||||||
|
Patch2: 0001-Fix-tests-for-the-drop-the-unversion-python.patch
|
||||||
|
Patch3: pep-0538-test-fix.patch
|
||||||
BuildRequires: %{python_module setuptools}
|
BuildRequires: %{python_module setuptools}
|
||||||
BuildRequires: python-rpm-macros
|
BuildRequires: python-rpm-macros
|
||||||
BuildArch: noarch
|
BuildArch: noarch
|
||||||
%if %{with test}
|
|
||||||
BuildRequires: %{python_module coverage}
|
|
||||||
%endif
|
|
||||||
%python_subpackages
|
%python_subpackages
|
||||||
|
|
||||||
%description
|
%description
|
||||||
@ -46,6 +46,7 @@ sh is not a collection of system commands implemented in Python.
|
|||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q -n sh-%{version}
|
%setup -q -n sh-%{version}
|
||||||
|
%autopatch -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%python_build
|
%python_build
|
||||||
@ -53,10 +54,8 @@ sh is not a collection of system commands implemented in Python.
|
|||||||
%install
|
%install
|
||||||
%python_install
|
%python_install
|
||||||
|
|
||||||
%if %{with test}
|
|
||||||
%check
|
%check
|
||||||
%python_exec test.py
|
%python_exec test.py
|
||||||
%endif
|
|
||||||
|
|
||||||
%files %{python_files}
|
%files %{python_files}
|
||||||
%license LICENSE.txt
|
%license LICENSE.txt
|
||||||
|
Loading…
x
Reference in New Issue
Block a user