commit:     9bc5eb110a8c86181c81eaf8feb75393d8e166d4
Author:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
AuthorDate: Tue Aug 27 17:29:21 2024 +0000
Commit:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
CommitDate: Tue Aug 27 17:30:13 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9bc5eb11

dev-python/pyudev: add 0.24.3

Signed-off-by: Patrick McLean <chutzpah <AT> gentoo.org>

 dev-python/pyudev/Manifest                        |  1 +
 dev-python/pyudev/files/pyudev-0.24.3-tests.patch | 13 ++++
 dev-python/pyudev/pyudev-0.24.3.ebuild            | 77 +++++++++++++++++++++++
 3 files changed, 91 insertions(+)

diff --git a/dev-python/pyudev/Manifest b/dev-python/pyudev/Manifest
index b2322adc55a9..874c438f922a 100644
--- a/dev-python/pyudev/Manifest
+++ b/dev-python/pyudev/Manifest
@@ -1 +1,2 @@
 DIST pyudev-0.24.1.tar.gz 85963 BLAKE2B 
86c6d04691c99671735915564f58b4ef892e45925047487500bc7005343db7145941dde270f4ce9279881bd9bbf203965082d54b34b396febff52f387a1c26ac
 SHA512 
10e32d9a74884000fbf8b86bee60530f6e7b936b990e7ae3b76099ace71834602de404721101c1076ef57365622a9a8f4819d57f58508ced09a21b7d50326886
+DIST pyudev-0.24.3.gh.tar.gz 80807 BLAKE2B 
8b047c1d44f9bbb9ace782b690e0859eb3cdc2c1a994a398513e7cc2288803f8cfcdc227546de22275d47961f880bd76e0dec244e46abf451534f5648682febe
 SHA512 
9075437f6fdba0fc1921e252c0a49e1a5eeed8c5cf598856a32aa9f9fcb8885dc0727258d2965241b2e044acfdf70561d5aa3f1380b84e013afc7cb8dcbfce2b

diff --git a/dev-python/pyudev/files/pyudev-0.24.3-tests.patch 
b/dev-python/pyudev/files/pyudev-0.24.3-tests.patch
new file mode 100644
index 000000000000..a21327df2394
--- /dev/null
+++ b/dev-python/pyudev/files/pyudev-0.24.3-tests.patch
@@ -0,0 +1,13 @@
+diff --git a/tests/_device_tests/_attributes_tests.py 
b/tests/_device_tests/_attributes_tests.py
+index 71b3a7a..9136cea 100644
+--- a/tests/_device_tests/_attributes_tests.py
++++ b/tests/_device_tests/_attributes_tests.py
+@@ -49,7 +49,7 @@ def test_getitem(self, a_context, device_datum):
+         device = Devices.from_path(a_context, device_datum.device_path)
+         assert all(
+             isinstance(device.attributes.get(key), bytes)
+-            for key in device_datum.attributes.keys()
++            for key in device_datum.attributes.keys() if key is not None
+         )
+ 
+     @given(strategies.sampled_from(_DEVICES))

diff --git a/dev-python/pyudev/pyudev-0.24.3.ebuild 
b/dev-python/pyudev/pyudev-0.24.3.ebuild
new file mode 100644
index 000000000000..29d6755427f4
--- /dev/null
+++ b/dev-python/pyudev/pyudev-0.24.3.ebuild
@@ -0,0 +1,77 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9..13} )
+inherit distutils-r1 optfeature pypi
+
+DESCRIPTION="Python binding to libudev"
+HOMEPAGE="https://pyudev.readthedocs.io/en/latest/ 
https://github.com/pyudev/pyudev";
+SRC_URI="https://github.com/pyudev/pyudev/archive/refs/tags/v${PV}.tar.gz -> 
${P}.gh.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv 
~sparc ~x86"
+IUSE="qt5"
+
+# Known to fail on test system that aren't exactly the same devices as on CI
+#RESTRICT="test"
+
+RDEPEND="
+       virtual/udev
+"
+BDEPEND="
+       test? (
+               dev-python/docutils[${PYTHON_USEDEP}]
+               dev-python/hypothesis[${PYTHON_USEDEP}]
+       )
+"
+
+DOCS=( CHANGES.rst README.rst )
+
+PATCHES=(
+       "${FILESDIR}/pyudev-0.24.3-tests.patch"
+)
+
+distutils_enable_tests pytest
+
+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 -e "s|== \('/run/udev'\)|in (\1,'/dev/.udev')|g" \
+               -i tests/test_core.py || die
+
+       # disable usage of hypothesis timeouts (too short)
+       sed -e '/@settings/s/(/(deadline=None,/' -i tests{,/_device_tests}/*.py 
|| die
+
+       # remove GUI tests that require a display server
+       rm tests/test_observer.py tests/test_observer_deprecated.py || die
+
+       distutils-r1_python_prepare_all
+}
+
+python_test() {
+       local -a EPYTEST_DESELECT=(
+               # tests that require root access
+               tests/test_device.py::TestAttributes::test_asint
+               tests/test_device.py::TestAttributes::test_asbool
+               tests/test_device.py::TestAttributes::test_getitem
+               tests/test_device.py::TestAttributes::test_asstring
+
+               # tests don't work on systems that differ from the upstream CI
+               
tests/test_monitor.py::TestMonitorObserver::test_deprecated_handler
+               tests/test_monitor.py::TestMonitorObserver::test_fake
+       )
+       epytest tests
+}
+
+pkg_postinst() {
+       optfeature "PyQt5 bindings" "dev-python/PyQt5"
+}

Reply via email to