mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-07-30 10:38:07 -07:00
dev-python/pyudev: remove old
This commit is contained in:
@@ -1,4 +1,2 @@
|
||||
DIST pyudev-0.16.1.tar.gz 74953 SHA256 765d1c14bd9bd031f64e2612225621984cb2bbb8cbc0c03538bcc4c735ff1c95 SHA512 7f62c6794027411583f874bdf746de457f19048955867d30008bc1ee0d30040a97f73b9e52ae3645d469fc401128703d4e703e294b85481e927ffaba27e45e6a WHIRLPOOL 4c366a1eed92bf274ef84eab6242beb09cd6e906556f6ccb24113fafec2dcc47b8da94487505473fc6f7b39539cdc2809cef2d07a1ab8c0616fc73efba9b2e1a
|
||||
DIST pyudev-0.19.0.tar.gz 96556 SHA256 5abcbd03e4965110d1fedcbdd5532974cb4638ceef34337aa2d5758eceb54ad3 SHA512 7faee69e8e3512e27b0d9271191d4b2906652b2c7f3a803be026a10499d184c1fc41db80624dec9f33ee890d71a695214c6bfd47f6cc41b979f71f619836f3f8 WHIRLPOOL 6b496f0f977b97247a13ba4f9f8efe24624d932c6cfc7616922473d8839a90500f60d3b238bbab4a9c9cdd6c5997606ee41de63669e3b2fa868d1b6f28ae492b
|
||||
DIST pyudev-0.20.0.tar.gz 93217 SHA256 14d85bc9611dbf798732996cb7107858f58a3a1b9d246e4063c7a20ade65842a SHA512 e86a776a2b6d29f206cdd0057c6f9b1e705d981ec8c2de49259887647856531af68238b80751102a3ffc8cea6f234cc520d62c8bc2da686e453ed010da3ebb02 WHIRLPOOL 8344c668c1cc2e7971a67d0e628e3ce96254648ad06b48f260dd4ee54e3e205e533e59b692169b38dd656c08d8cd615d0c7c518b5c2a785553b8c6468e70520c
|
||||
DIST pyudev-0.21.0.tar.gz 89469 SHA256 094b7a100150114748aaa3b70663485dd360457a709bfaaafe5a977371033f2b SHA512 ba5b6156768b65b9655d809b14378b01173643781b9c4017271e880cdfed442c44ac49eb26c970e4275b820e01678e3001870591fccf88dc713ec941e2b85d11 WHIRLPOOL e69865d8b33ab103e0ff6371df4e05617c3907cbfc98d508285c7464065ccace6dc7d4e963035e19392e6ab39881281e684ddd4f7765fc599874411204ea825b
|
||||
|
||||
@@ -1,213 +0,0 @@
|
||||
commit b1cc8624a2ad8afdc04181ccf6ca42c37a9a701e
|
||||
Author: mulhern <amulhern@redhat.com>
|
||||
Date: Mon Feb 15 14:13:49 2016 -0500
|
||||
|
||||
Fixes for ID_PATH parsing.
|
||||
|
||||
* Disable individual fields matching '-'.
|
||||
* Do not try to parse delimiter '-' between distinct ids.
|
||||
* Change format for a sas path.
|
||||
* Handle virtio-pci.
|
||||
|
||||
Signed-off-by: mulhern <amulhern@redhat.com>
|
||||
|
||||
diff --git a/src/pyudev/_parsing/_id_path.py b/src/pyudev/_parsing/_id_path.py
|
||||
index c94f332..0b65c43 100644
|
||||
--- a/src/pyudev/_parsing/_id_path.py
|
||||
+++ b/src/pyudev/_parsing/_id_path.py
|
||||
@@ -35,6 +35,16 @@
|
||||
from ._shared import Parser
|
||||
|
||||
|
||||
+class IdPathField(Field):
|
||||
+ """
|
||||
+ Overrides default regular expression.
|
||||
+ """
|
||||
+ # pylint: disable=too-few-public-methods
|
||||
+
|
||||
+ def __init__(self, name, regexp=r'[^-]+', description=None):
|
||||
+ super(IdPathField, self).__init__(name, regexp, description)
|
||||
+
|
||||
+
|
||||
class IdPathParsers(object):
|
||||
"""
|
||||
Aggregate parsers.
|
||||
@@ -42,70 +52,73 @@ class IdPathParsers(object):
|
||||
# pylint: disable=too-few-public-methods
|
||||
|
||||
PARSERS = [
|
||||
- Parser(r'acpi-%s', [Field('sys_name')]),
|
||||
- Parser(r'ap-%s', [Field('sys_name')]),
|
||||
- Parser(r'ata-%s', [Field('port_no')]),
|
||||
- Parser(r'bcma-%s', [Field('core')]),
|
||||
- Parser(r'cciss-disk%s', [Field('disk')]),
|
||||
- Parser(r'ccw-%s', [Field('sys_name')]),
|
||||
- Parser(r'ccwgroup-%s', [Field('sys_name')]),
|
||||
- Parser(r'fc-%s-%s', [Field('port_name'), Field('lun')]),
|
||||
+ Parser(r'acpi-%s', [IdPathField('sys_name')]),
|
||||
+ Parser(r'ap-%s', [IdPathField('sys_name')]),
|
||||
+ Parser(r'ata-%s', [IdPathField('port_no')]),
|
||||
+ Parser(r'bcma-%s', [IdPathField('core')]),
|
||||
+ Parser(r'cciss-disk%s', [IdPathField('disk')]),
|
||||
+ Parser(r'ccw-%s', [IdPathField('sys_name')]),
|
||||
+ Parser(r'ccwgroup-%s', [IdPathField('sys_name')]),
|
||||
+ Parser(r'fc-%s-%s', [IdPathField('port_name'), IdPathField('lun')]),
|
||||
Parser(
|
||||
r'ip-%s:%s-iscsi-%s-%s',
|
||||
[
|
||||
- Field('persistent_address'),
|
||||
- Field('persistent_port'),
|
||||
- Field('target_name'),
|
||||
- Field('lun')
|
||||
+ IdPathField('persistent_address'),
|
||||
+ IdPathField('persistent_port'),
|
||||
+ IdPathField('target_name'),
|
||||
+ IdPathField('lun')
|
||||
]
|
||||
),
|
||||
- Parser(r'iucv-%s', [Field('sys_name')]),
|
||||
- Parser(r'nst%s', [Field('name')]),
|
||||
- Parser(r'pci-%s', [Field('sys_name')]),
|
||||
- Parser(r'platform-%s', [Field('sys_name')]),
|
||||
- Parser(r'sas-%s-%s', [Field('sas_address'), Field('lun')]),
|
||||
+ Parser(r'iucv-%s', [IdPathField('sys_name')]),
|
||||
+ Parser(r'nst%s', [IdPathField('name')]),
|
||||
+ Parser(r'pci-%s', [IdPathField('sys_name')]),
|
||||
+ Parser(r'platform-%s', [IdPathField('sys_name')]),
|
||||
+ Parser(r'sas-%s-lun-%s',
|
||||
+ [IdPathField('sas_address'), IdPathField('lun')]
|
||||
+ ),
|
||||
Parser(
|
||||
r'sas-exp%s-phy%s-%s',
|
||||
[
|
||||
- Field(
|
||||
+ IdPathField(
|
||||
'sas_address',
|
||||
r'.*',
|
||||
'sysfs sas_address attribute of expander'
|
||||
),
|
||||
- Field(
|
||||
+ IdPathField(
|
||||
'phy_identifier',
|
||||
r'.*',
|
||||
'sysfs phy_identifier attribute of target sas device'
|
||||
),
|
||||
- Field('lun', description='sysnum of device (0 if none)')
|
||||
+ IdPathField('lun', description='sysnum of device (0 if none)')
|
||||
]
|
||||
),
|
||||
Parser(
|
||||
r'sas-phy%s-%s',
|
||||
[
|
||||
- Field(
|
||||
+ IdPathField(
|
||||
'phy_identifier',
|
||||
r'.*',
|
||||
'sysfs phy_identifier attribute of target sas device'
|
||||
),
|
||||
- Field('lun', description='sysnum of device (0 if none)')
|
||||
+ IdPathField('lun', description='sysnum of device (0 if none)')
|
||||
]
|
||||
),
|
||||
- Parser(r'scm-%s', [Field('sys_name')]),
|
||||
+ Parser(r'scm-%s', [IdPathField('sys_name')]),
|
||||
Parser(
|
||||
r'scsi-%s:%s:%s:%s',
|
||||
[
|
||||
- Field('host'),
|
||||
- Field('bus'),
|
||||
- Field('target'),
|
||||
- Field('lun')
|
||||
+ IdPathField('host'),
|
||||
+ IdPathField('bus'),
|
||||
+ IdPathField('target'),
|
||||
+ IdPathField('lun')
|
||||
]
|
||||
),
|
||||
- Parser('serio-%s', [Field('sysnum')]),
|
||||
- Parser('st%s', [Field('name')]),
|
||||
- Parser('usb-0:%s', [Field('port')]),
|
||||
- Parser('vmbus-%s-%s', [Field('guid'), Field('lun')]),
|
||||
- Parser('xen-%s', [Field('sys_name')])
|
||||
+ Parser('serio-%s', [IdPathField('sysnum')]),
|
||||
+ Parser('st%s', [IdPathField('name')]),
|
||||
+ Parser('usb-0:%s', [IdPathField('port')]),
|
||||
+ Parser('virtio-pci-%s', [IdPathField('sys_name')]),
|
||||
+ Parser('vmbus-%s-%s', [IdPathField('guid'), IdPathField('lun')]),
|
||||
+ Parser('xen-%s', [IdPathField('sys_name')])
|
||||
]
|
||||
|
||||
|
||||
@@ -166,6 +179,6 @@ def parse(self, value):
|
||||
|
||||
(parser, best_match) = max(matches, key=lambda x: len(x[0].prefix))
|
||||
match_list.append((parser, best_match))
|
||||
- value = value[len(best_match.group('total')):]
|
||||
+ value = value[len(best_match.group('total')) + 1:]
|
||||
|
||||
return match_list
|
||||
diff --git a/tests/test_parsing.py b/tests/test_parsing.py
|
||||
index 619fb01..fba5575 100644
|
||||
--- a/tests/test_parsing.py
|
||||
+++ b/tests/test_parsing.py
|
||||
@@ -52,20 +52,27 @@ class TestIDPATH(object):
|
||||
Test parsing ID_PATH values.
|
||||
"""
|
||||
# pylint: disable=too-few-public-methods
|
||||
-
|
||||
- @given(
|
||||
- strategies.sampled_from(_DEVICES).filter(
|
||||
- lambda x: x.get('ID_PATH') is not None
|
||||
- )
|
||||
+ _devices = [d for d in _DEVICES if d.get('ID_PATH') is not None]
|
||||
+ @pytest.mark.skipif(
|
||||
+ len(_devices) == 0,
|
||||
+ reason="no devices with ID_PATH property"
|
||||
)
|
||||
+ @given(strategies.sampled_from(_devices))
|
||||
+ @settings(min_satisfying_examples=1)
|
||||
def test_parsing(self, a_device):
|
||||
"""
|
||||
Test that parsing is satisfactory on all examples.
|
||||
"""
|
||||
+ parsers = _parsing.IdPathParsers.PARSERS
|
||||
id_path = a_device.get('ID_PATH')
|
||||
- parser = _parsing.IdPathParse(_parsing.IdPathParsers.PARSERS)
|
||||
+ parser = _parsing.IdPathParse(parsers)
|
||||
result = parser.parse(id_path)
|
||||
assert isinstance(result, list) and result != []
|
||||
+ assert all(
|
||||
+ any(r[1].group('total').startswith(p.prefix) for p in parsers) \
|
||||
+ for r in result
|
||||
+ )
|
||||
+ assert not any(r[1].group('total').startswith('-') for r in result)
|
||||
|
||||
_devices = [d for d in _DEVICES if d.get('ID_SAS_PATH') is not None]
|
||||
@pytest.mark.skipif(
|
||||
@@ -78,10 +85,25 @@ def test_parsing_sas_path(self, a_device):
|
||||
"""
|
||||
Test that parsing is satisfactory on all examples.
|
||||
"""
|
||||
+ parsers = _parsing.IdPathParsers.PARSERS
|
||||
id_path = a_device.get('ID_SAS_PATH')
|
||||
- parser = _parsing.IdPathParse(_parsing.IdPathParsers.PARSERS)
|
||||
+ parser = _parsing.IdPathParse(parsers)
|
||||
result = parser.parse(id_path)
|
||||
assert isinstance(result, list) and result != []
|
||||
+ assert all(
|
||||
+ any(r[1].group('total').startswith(p.prefix) for p in parsers) \
|
||||
+ for r in result
|
||||
+ )
|
||||
+ assert not any(r[1].group('total').startswith('-') for r in result)
|
||||
+
|
||||
+ def test_failure(self):
|
||||
+ """
|
||||
+ Test at least one failure.
|
||||
+ """
|
||||
+ id_path = 'pci-0000_09_00_0-sas0x5000155359566200-lun-0'
|
||||
+ parser = _parsing.IdPathParse(_parsing.IdPathParsers.PARSERS)
|
||||
+ result = parser.parse(id_path)
|
||||
+ assert result == []
|
||||
|
||||
|
||||
class TestDevlinks(object):
|
||||
@@ -1,69 +0,0 @@
|
||||
# Copyright 1999-2015 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=5
|
||||
|
||||
PYTHON_COMPAT=( python{2_7,3_4} )
|
||||
|
||||
inherit distutils-r1
|
||||
|
||||
DESCRIPTION="Python binding to libudev"
|
||||
HOMEPAGE="http://pyudev.readthedocs.org https://github.com/pyudev/pyudev"
|
||||
SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
|
||||
|
||||
LICENSE="LGPL-2.1"
|
||||
SLOT="0"
|
||||
KEYWORDS="amd64 arm ~arm64 x86"
|
||||
IUSE="pygobject pyqt4 pyside test"
|
||||
|
||||
RDEPEND="virtual/udev
|
||||
pygobject? ( dev-python/pygobject:2[$(python_gen_usedep 'python2*')] )
|
||||
pyqt4? ( dev-python/PyQt4[${PYTHON_USEDEP}] )
|
||||
pyside? ( dev-python/pyside[$(python_gen_usedep '!(python3_3)')] )"
|
||||
DEPEND="${RDEPEND}
|
||||
dev-python/setuptools[${PYTHON_USEDEP}]
|
||||
test? ( dev-python/mock[${PYTHON_USEDEP}]
|
||||
dev-python/pytest[${PYTHON_USEDEP}] )"
|
||||
|
||||
DOCS=( CHANGES.rst README.rst )
|
||||
|
||||
REQUIRED_USE="pygobject? ( || ( $(python_gen_useflags 'python2*') ) )
|
||||
pyside? ( $(python_gen_useflags '!(python3_3)') )"
|
||||
|
||||
python_prepare_all() {
|
||||
# tests are known to pass then fail on alternate runs
|
||||
# tests: fix run_path
|
||||
sed -i -e "s|== \('/run/udev'\)|in (\1,'/dev/.udev')|g" \
|
||||
tests/test_core.py || die
|
||||
|
||||
if ! use pygobject; then
|
||||
rm pyudev/glib.py || die
|
||||
sed -i -e "s|[, ]*GlibBinding()||g" \
|
||||
tests/test_observer.py || die
|
||||
fi
|
||||
if ! use pyqt4; then
|
||||
rm pyudev/pyqt4.py || die
|
||||
sed -i -e "s|Qt4Binding('PyQt4')[, ]*||g" \
|
||||
tests/test_observer.py || die
|
||||
fi
|
||||
if ! use pyside; then
|
||||
rm pyudev/pyside.py || die
|
||||
sed -i -e "s|Qt4Binding('PySide')[, ]*||g" \
|
||||
tests/test_observer.py || die
|
||||
fi
|
||||
if ! use pyqt4 && ! use pyside; then
|
||||
rm pyudev/_qt_base.py || die
|
||||
fi
|
||||
if ! use pyqt4 && ! use pyside && ! use pygobject; then
|
||||
rm tests/test_observer.py || die
|
||||
fi
|
||||
|
||||
ewarn "If your PORTAGE_TMPDIR is longer in length then '/var/tmp/',"
|
||||
ewarn "change it to /var/tmp to ensure tests will pass."
|
||||
|
||||
distutils-r1_python_prepare_all
|
||||
}
|
||||
|
||||
python_test() {
|
||||
py.test || die "Tests fail with ${EPYTHON}"
|
||||
}
|
||||
@@ -1,62 +0,0 @@
|
||||
# Copyright 1999-2016 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
PYTHON_COMPAT=( python{2_7,3_4} )
|
||||
|
||||
inherit distutils-r1
|
||||
|
||||
DESCRIPTION="Python binding to libudev"
|
||||
HOMEPAGE="http://pyudev.readthedocs.org https://github.com/pyudev/pyudev"
|
||||
SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
|
||||
|
||||
LICENSE="LGPL-2.1"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~arm ~arm64 ~x86"
|
||||
IUSE="pygobject pyqt4 pyside test"
|
||||
|
||||
RDEPEND="virtual/udev
|
||||
dev-python/six[${PYTHON_USEDEP}]
|
||||
pygobject? ( dev-python/pygobject:2[$(python_gen_usedep 'python2*')] )
|
||||
pyqt4? ( dev-python/PyQt4[${PYTHON_USEDEP}] )
|
||||
pyside? ( dev-python/pyside[$(python_gen_usedep '!(python3_3)')] )"
|
||||
DEPEND="${RDEPEND}
|
||||
dev-python/setuptools[${PYTHON_USEDEP}]
|
||||
test? (
|
||||
dev-python/docutils[${PYTHON_USEDEP}]
|
||||
dev-python/hypothesis[${PYTHON_USEDEP}]
|
||||
dev-python/mock[${PYTHON_USEDEP}]
|
||||
>=dev-python/pytest-2.8[${PYTHON_USEDEP}]
|
||||
)"
|
||||
|
||||
DOCS=( CHANGES.rst README.rst )
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}/${P}-Fixes-for-ID_PATH-parsing.patch"
|
||||
"${FILESDIR}/${P}-skip-non-deterministic-test.patch"
|
||||
)
|
||||
|
||||
REQUIRED_USE="pygobject? ( || ( $(python_gen_useflags 'python2*') ) )
|
||||
pyside? ( $(python_gen_useflags '!(python3_3)') )"
|
||||
|
||||
python_prepare_all() {
|
||||
if use test; then
|
||||
ewarn "If your PORTAGE_TMPDIR is longer in length then '/var/tmp/',"
|
||||
ewarn "change it to /var/tmp to ensure tests will pass."
|
||||
fi
|
||||
|
||||
# tests are known to pass then fail on alternate runs
|
||||
# tests: fix run_path
|
||||
sed -i -e "s|== \('/run/udev'\)|in (\1,'/dev/.udev')|g" \
|
||||
tests/test_core.py || die
|
||||
|
||||
# test needs needs newer dev-cpp/gccxml
|
||||
rm -f tests/test_libudev.py
|
||||
|
||||
distutils-r1_python_prepare_all
|
||||
}
|
||||
|
||||
python_test() {
|
||||
py.test || die "Tests fail with ${EPYTHON}"
|
||||
}
|
||||
Reference in New Issue
Block a user