# Copyright 1999-2021 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 PYTHON_COMPAT=( python3_{7..10} ) inherit distutils-r1 virtualx DESCRIPTION="pytest plugin for PyQt5 and PySide2 applications" HOMEPAGE=" https://pypi.org/project/pytest-qt/ https://github.com/pytest-dev/pytest-qt/" SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz" LICENSE="MIT" SLOT="0" KEYWORDS="amd64 x86" RDEPEND="dev-python/QtPy[gui,testlib,widgets(+),${PYTHON_USEDEP}]" BDEPEND=" test? ( dev-python/PyQt5[gui,testlib,widgets,${PYTHON_USEDEP}] $(python_gen_cond_dep ' dev-python/pyside2[gui,testlib,widgets,${PYTHON_USEDEP}] ' python3_{7..9} ) ) " # Patch 1 skips a test that does not work inside the emerge environment: # pytestqt.exceptions.TimeoutError: widget not activated in 1000 ms. # Patch 2 fixes upstream bug 314 PATCHES=( "${FILESDIR}/${P}-skip-show-window-test.patch" "${FILESDIR}/${P}-fix-file-match-test.patch" ) distutils_enable_tests pytest distutils_enable_sphinx docs dev-python/sphinx_rtd_theme python_prepare_all() { # This is not going to work since we want to test both implementations # and therefore pull in both and explicitly set PYTEST_QT_API sed -i -e 's:test_qt_api_ini_config_with_envvar:_&:' \ -e 's:test_qt_api_ini_config:_&:' \ tests/test_basics.py || die distutils-r1_python_prepare_all } src_test() { virtx python_foreach_impl python_test } python_test() { distutils_install_for_testing PYTEST_QT_API="pyqt5" epytest if [[ "${EPYTHON}" == "python3.10" ]]; then return else PYTEST_QT_API="pyside2" epytest fi }