Accepting request 867674 from devel:languages:python

OBS-URL: https://build.opensuse.org/request/show/867674
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-psutil?expand=0&rev=60
This commit is contained in:
Dominique Leuenberger 2021-02-01 12:27:11 +00:00 committed by Git OBS Bridge
commit b174a440f4
6 changed files with 162 additions and 30 deletions

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:af73f7bcebdc538eda9cc81d19db1db7bf26f103f91081d780bbacfcb620dee2
size 465556

3
psutil-5.8.0.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:0c9ccb99ab76025f2f0bbecf341d4656e9c1351db8cc8a03ccd62e318ab4b5c6
size 470886

View File

@ -1,3 +1,51 @@
-------------------------------------------------------------------
Fri Jan 29 08:19:00 UTC 2021 - Antonio Larrosa <alarrosa@suse.com>
- Do not install tests (and change the way they're run since they
were run from %{buildroot})
-------------------------------------------------------------------
Thu Jan 28 16:25:35 UTC 2021 - Antonio Larrosa <alarrosa@suse.com>
- Add patch to skip tests related to rlimit and zombie processes
that fail when building for python2 on i586:
* skip_rlimit_tests_on_python2.patch
-------------------------------------------------------------------
Mon Jan 25 16:03:37 UTC 2021 - Antonio Larrosa <alarrosa@suse.com>
- update to 5.8.0:
* Enhancements:
- 1863: disk_partitions() exposes 2 extra fields: maxfile and
maxpath, which are the maximum file name and path name
length.
- 1872: [Windows] added support for PyPy 2.7.
- 1879: provide pre-compiled wheels for Linux and macOS.
- 1880: get rid of Travis and Cirrus CI services (they are no
longer free). CI testing is now done by GitHub Actions on
Linux, macOS and FreeBSD (yes). AppVeyor is still being used
for Windows CI.
* Bug fixes:
- 1708: [Linux] get rid of sensors_temperatures() duplicates.
(patch by Tim Schlueter).
- 1839: [Windows] always raise AccessDenied when failing to
query 64 processes from 32 bit ones (NtWoW64 APIs).
- 1866: [Windows] process exe(), cmdline(), environ() may raise
"invalid access to memory location" on Python 3.9.
- 1874: [Solaris] wrong swap output given when encrypted column
is present.
- 1875: [Windows] process username() may raise
ERROR_NONE_MAPPED if the SID has no corresponding account
name. In this case AccessDenied is now raised.
- 1877: [Windows] OpenProcess may fail with ERROR_SUCCESS.
Turn it into AccessDenied or NoSuchProcess depending on
whether the PID is alive.
- 1886: [macOS] EIO error may be raised on cmdline() and
environment(). Now it gets translated into AccessDenied.
- 1891: [macOS] get rid of deprecated getpagesize().
- Rebase patch and skip three other tests that fail on obs
* skip-obs.patch
------------------------------------------------------------------- -------------------------------------------------------------------
Fri Dec 11 12:19:05 UTC 2020 - Benjamin Greiner <code@bnavigator.de> Fri Dec 11 12:19:05 UTC 2020 - Benjamin Greiner <code@bnavigator.de>

View File

@ -1,7 +1,7 @@
# #
# spec file for package python-psutil # spec file for package python-psutil
# #
# Copyright (c) 2020 SUSE LLC # Copyright (c) 2021 SUSE LLC
# #
# 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
@ -24,7 +24,7 @@
%endif %endif
%bcond_without python2 %bcond_without python2
Name: python-psutil Name: python-psutil
Version: 5.7.3 Version: 5.8.0
Release: 0 Release: 0
Summary: A process utilities module for Python Summary: A process utilities module for Python
License: BSD-3-Clause License: BSD-3-Clause
@ -34,6 +34,8 @@ Patch1: skip-obs.patch
# PATCH-FIX-UPSTREAM skip_failing_tests.patch gh#giampaolo/psutil#1635 mcepl@suse.com # PATCH-FIX-UPSTREAM skip_failing_tests.patch gh#giampaolo/psutil#1635 mcepl@suse.com
# skip tests failing because of incomplete emulation of the environment in osc build # skip tests failing because of incomplete emulation of the environment in osc build
Patch2: skip_failing_tests.patch Patch2: skip_failing_tests.patch
# PATCH-FIX-SLE skip_rlimit_tests_on_python2.patch alarrosa@suse.com
Patch3: skip_rlimit_tests_on_python2.patch
BuildRequires: %{python_module devel} BuildRequires: %{python_module devel}
BuildRequires: %{python_module setuptools} BuildRequires: %{python_module setuptools}
BuildRequires: fdupes BuildRequires: fdupes
@ -75,6 +77,7 @@ sed -i "1s/#!.*//" psutil/{__init__.py,_compat.py,_psbsd.py,_pslinux.py,_psosx.p
%{python_expand mkdir -p %{buildroot}%{_docdir}/%{$python_prefix}-psutil %{python_expand mkdir -p %{buildroot}%{_docdir}/%{$python_prefix}-psutil
cp -r scripts %{buildroot}%{_docdir}/%{$python_prefix}-psutil/ cp -r scripts %{buildroot}%{_docdir}/%{$python_prefix}-psutil/
find %{buildroot}%{_docdir}/%{$python_prefix}-psutil/scripts/ -type f -name "*.py" -exec sed -i "s|#!%{_bindir}/env python.*|#!%{__$python}|" {} \; find %{buildroot}%{_docdir}/%{$python_prefix}-psutil/scripts/ -type f -name "*.py" -exec sed -i "s|#!%{_bindir}/env python.*|#!%{__$python}|" {} \;
rm -rf %{buildroot}%{$python_sitearch}/psutil/tests
%fdupes %{buildroot}%{_docdir}/%{$python_prefix}-psutil/ %fdupes %{buildroot}%{_docdir}/%{$python_prefix}-psutil/
%fdupes %{buildroot}%{$python_sitearch} %fdupes %{buildroot}%{$python_sitearch}
} }
@ -84,9 +87,10 @@ find %{buildroot}%{_docdir}/%{$python_prefix}-psutil/scripts/ -type f -name "*.p
export LANG=en_US.UTF-8 export LANG=en_US.UTF-8
export PSUTIL_TESTING=1 export PSUTIL_TESTING=1
export TRAVIS=1 export TRAVIS=1
march=`python3 -c "import platform ; print(platform.machine())"`
# Note test_fetch_all is a bit flaky, occasionally failing # Note test_fetch_all is a bit flaky, occasionally failing
%python_expand PYTHONPATH=%{buildroot}%{$python_sitearch} $python -Wa psutil/tests/runner.py %python_expand PYTHONPATH=build/lib.linux-${march}-%{$python_version}/ $python -Wa psutil/tests/runner.py
%endif %endif
%files %{python_files} %files %{python_files}

View File

@ -1,8 +1,16 @@
Index: psutil-5.7.3/psutil/tests/test_misc.py Index: psutil-5.8.0/psutil/tests/test_misc.py
=================================================================== ===================================================================
--- psutil-5.7.3.orig/psutil/tests/test_misc.py --- psutil-5.8.0.orig/psutil/tests/test_misc.py
+++ psutil-5.7.3/psutil/tests/test_misc.py +++ psutil-5.8.0/psutil/tests/test_misc.py
@@ -664,7 +664,7 @@ class TestScripts(PsutilTestCase): @@ -354,6 +354,7 @@ class TestMisc(PsutilTestCase):
check(psutil.disk_usage(os.getcwd()))
check(psutil.users())
+ @unittest.skipIf(True, 'does not work on obs')
def test_setup_script(self):
setup_py = os.path.join(ROOT_DIR, 'setup.py')
if CI_TESTING and not os.path.exists(setup_py):
@@ -667,7 +668,7 @@ class TestScripts(PsutilTestCase):
src = f.read() src = f.read()
ast.parse(src) ast.parse(src)
@ -11,7 +19,7 @@ Index: psutil-5.7.3/psutil/tests/test_misc.py
# make sure all example scripts have a test method defined # make sure all example scripts have a test method defined
meths = dir(self) meths = dir(self)
for name in os.listdir(SCRIPTS_DIR): for name in os.listdir(SCRIPTS_DIR):
@@ -682,7 +682,7 @@ class TestScripts(PsutilTestCase): @@ -685,7 +686,7 @@ class TestScripts(PsutilTestCase):
if not stat.S_IXUSR & os.stat(path)[stat.ST_MODE]: if not stat.S_IXUSR & os.stat(path)[stat.ST_MODE]:
self.fail('%r is not executable' % path) self.fail('%r is not executable' % path)
@ -20,11 +28,11 @@ Index: psutil-5.7.3/psutil/tests/test_misc.py
self.assert_stdout('disk_usage.py') self.assert_stdout('disk_usage.py')
def test_free(self): def test_free(self):
Index: psutil-5.7.3/psutil/tests/test_linux.py Index: psutil-5.8.0/psutil/tests/test_linux.py
=================================================================== ===================================================================
--- psutil-5.7.3.orig/psutil/tests/test_linux.py --- psutil-5.8.0.orig/psutil/tests/test_linux.py
+++ psutil-5.7.3/psutil/tests/test_linux.py +++ psutil-5.8.0/psutil/tests/test_linux.py
@@ -682,7 +682,7 @@ class TestSystemCPUCountLogical(PsutilTe @@ -675,7 +675,7 @@ class TestSystemCPUCountLogical(PsutilTe
self.assertEqual(psutil.cpu_count(logical=True), num) self.assertEqual(psutil.cpu_count(logical=True), num)
@unittest.skipIf(not which("lscpu"), "lscpu utility not available") @unittest.skipIf(not which("lscpu"), "lscpu utility not available")
@ -33,7 +41,7 @@ Index: psutil-5.7.3/psutil/tests/test_linux.py
out = sh("lscpu -p") out = sh("lscpu -p")
num = len([x for x in out.split('\n') if not x.startswith('#')]) num = len([x for x in out.split('\n') if not x.startswith('#')])
self.assertEqual(psutil.cpu_count(logical=True), num) self.assertEqual(psutil.cpu_count(logical=True), num)
@@ -725,7 +725,7 @@ class TestSystemCPUCountLogical(PsutilTe @@ -718,7 +718,7 @@ class TestSystemCPUCountLogical(PsutilTe
class TestSystemCPUCountPhysical(PsutilTestCase): class TestSystemCPUCountPhysical(PsutilTestCase):
@unittest.skipIf(not which("lscpu"), "lscpu utility not available") @unittest.skipIf(not which("lscpu"), "lscpu utility not available")
@ -42,7 +50,7 @@ Index: psutil-5.7.3/psutil/tests/test_linux.py
out = sh("lscpu -p") out = sh("lscpu -p")
core_ids = set() core_ids = set()
for line in out.split('\n'): for line in out.split('\n'):
@@ -1080,7 +1080,7 @@ class TestSystemDiskPartitions(PsutilTes @@ -1068,7 +1068,7 @@ class TestSystemDiskPartitions(PsutilTes
@unittest.skipIf(not hasattr(os, 'statvfs'), "os.statvfs() not available") @unittest.skipIf(not hasattr(os, 'statvfs'), "os.statvfs() not available")
@skip_on_not_implemented() @skip_on_not_implemented()
@ -51,7 +59,7 @@ Index: psutil-5.7.3/psutil/tests/test_linux.py
# test psutil.disk_usage() and psutil.disk_partitions() # test psutil.disk_usage() and psutil.disk_partitions()
# against "df -a" # against "df -a"
def df(path): def df(path):
@@ -1254,7 +1254,7 @@ class TestSystemDiskIoCounters(PsutilTes @@ -1242,7 +1242,7 @@ class TestSystemDiskIoCounters(PsutilTes
self.assertEqual(ret.read_count, 1) self.assertEqual(ret.read_count, 1)
self.assertEqual(ret.write_count, 5) self.assertEqual(ret.write_count, 5)
@ -60,29 +68,49 @@ Index: psutil-5.7.3/psutil/tests/test_linux.py
def exists(path): def exists(path):
if path == '/proc/diskstats': if path == '/proc/diskstats':
return False return False
Index: psutil-5.7.3/psutil/tests/test_posix.py Index: psutil-5.8.0/psutil/tests/test_posix.py
=================================================================== ===================================================================
--- psutil-5.7.3.orig/psutil/tests/test_posix.py --- psutil-5.8.0.orig/psutil/tests/test_posix.py
+++ psutil-5.7.3/psutil/tests/test_posix.py +++ psutil-5.8.0/psutil/tests/test_posix.py
@@ -371,7 +371,7 @@ class TestSystemAPIs(PsutilTestCase): @@ -376,7 +376,7 @@ class TestSystemAPIs(PsutilTestCase):
# AIX can return '-' in df output instead of numbers, e.g. for /proc # AIX can return '-' in df output instead of numbers, e.g. for /proc
@unittest.skipIf(AIX, "unreliable on AIX") @unittest.skipIf(AIX, "unreliable on AIX")
@retry_on_failure()
- def test_disk_usage(self): - def test_disk_usage(self):
+ def _test_disk_usage(self): + def _test_disk_usage(self):
def df(device): def df(device):
out = sh("df -k %s" % device).strip() out = sh("df -k %s" % device).strip()
line = out.split('\n')[1] line = out.split('\n')[1]
Index: psutil-5.7.3/psutil/tests/test_system.py Index: psutil-5.8.0/psutil/tests/test_system.py
=================================================================== ===================================================================
--- psutil-5.7.3.orig/psutil/tests/test_system.py --- psutil-5.8.0.orig/psutil/tests/test_system.py
+++ psutil-5.7.3/psutil/tests/test_system.py +++ psutil-5.8.0/psutil/tests/test_system.py
@@ -591,7 +591,7 @@ class TestDiskAPIs(PsutilTestCase): @@ -200,6 +200,7 @@ class TestMiscAPIs(PsutilTestCase):
self.assertLess(bt, time.time())
@unittest.skipIf(CI_TESTING and not psutil.users(), "unreliable on CI")
+ @unittest.skipIf(True, "does not work on obs")
def test_users(self):
users = psutil.users()
self.assertNotEqual(users, [])
@@ -580,7 +581,7 @@ class TestDiskAPIs(PsutilTestCase):
def test_disk_usage_bytes(self): def test_disk_usage_bytes(self):
psutil.disk_usage(b'.') psutil.disk_usage(b'.')
- def test_disk_partitions(self): - def test_disk_partitions(self):
+ def _test_disk_partitions(self): + def _test_disk_partitions(self):
# all = False def check_ntuple(nt):
ls = psutil.disk_partitions(all=False) self.assertIsInstance(nt.device, str)
# on travis we get: self.assertIsInstance(nt.mountpoint, str)
Index: psutil-5.8.0/psutil/tests/test_contracts.py
===================================================================
--- psutil-5.8.0.orig/psutil/tests/test_contracts.py
+++ psutil-5.8.0/psutil/tests/test_contracts.py
@@ -246,6 +246,7 @@ class TestSystemAPITypes(PsutilTestCase)
self.assertIsInstance(k, str)
self.assert_ntuple_of_nums(v, type_=(int, long))
+ @unittest.skipIf(True, "does not work on obs")
def test_disk_partitions(self):
# Duplicate of test_system.py. Keep it anyway.
for disk in psutil.disk_partitions():

View File

@ -0,0 +1,52 @@
Index: psutil-5.8.0/psutil/tests/test_process.py
===================================================================
--- psutil-5.8.0.orig/psutil/tests/test_process.py
+++ psutil-5.8.0/psutil/tests/test_process.py
@@ -416,6 +416,7 @@ class TestProcess(PsutilTestCase):
p.ionice(init)
@unittest.skipIf(not HAS_RLIMIT, "not supported")
+ @unittest.skipIf(sys.version_info.major == 2, "not supported on python2")
def test_rlimit_get(self):
import resource
p = psutil.Process(os.getpid())
@@ -439,6 +440,7 @@ class TestProcess(PsutilTestCase):
self.assertGreaterEqual(ret[1], -1)
@unittest.skipIf(not HAS_RLIMIT, "not supported")
+ @unittest.skipIf(sys.version_info.major == 2, "not supported on python2")
def test_rlimit_set(self):
p = self.spawn_psproc()
p.rlimit(psutil.RLIMIT_NOFILE, (5, 5))
@@ -452,6 +454,7 @@ class TestProcess(PsutilTestCase):
p.rlimit(psutil.RLIMIT_NOFILE, (5, 5, 5))
@unittest.skipIf(not HAS_RLIMIT, "not supported")
+ @unittest.skipIf(sys.version_info.major == 2, "not supported on python2")
def test_rlimit(self):
p = psutil.Process()
testfn = self.get_testfn()
@@ -472,6 +475,7 @@ class TestProcess(PsutilTestCase):
self.assertEqual(p.rlimit(psutil.RLIMIT_FSIZE), (soft, hard))
@unittest.skipIf(not HAS_RLIMIT, "not supported")
+ @unittest.skipIf(sys.version_info.major == 2, "not supported on python2")
def test_rlimit_infinity(self):
# First set a limit, then re-set it by specifying INFINITY
# and assume we overridden the previous limit.
@@ -487,6 +491,7 @@ class TestProcess(PsutilTestCase):
self.assertEqual(p.rlimit(psutil.RLIMIT_FSIZE), (soft, hard))
@unittest.skipIf(not HAS_RLIMIT, "not supported")
+ @unittest.skipIf(sys.version_info.major == 2, "not supported on python2")
def test_rlimit_infinity_value(self):
# RLIMIT_FSIZE should be RLIM_INFINITY, which will be a really
# big number on a platform with large file support. On these
@@ -1270,6 +1275,7 @@ class TestProcess(PsutilTestCase):
self.assertEqual(normcase(p.exe()), normcase(PYTHON_EXE))
@unittest.skipIf(not POSIX, 'POSIX only')
+ @unittest.skipIf(sys.version_info.major == 2, "not supported on python2")
def test_zombie_process(self):
def succeed_or_zombie_p_exc(fun):
try: