commit: ccc6c93b9d8ae4e9cbd21ac8bd74f5f689fef860 Author: Michał Górny <mgorny <AT> gentoo <DOT> org> AuthorDate: Sat May 24 04:28:56 2025 +0000 Commit: Michał Górny <mgorny <AT> gentoo <DOT> org> CommitDate: Sat May 24 06:10:54 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ccc6c93b
dev-python/selenium: Bump to 4.33.0 Signed-off-by: Michał Górny <mgorny <AT> gentoo.org> dev-python/selenium/Manifest | 2 + .../files/selenium-4.33.0-pytest-ignore.patch | 29 ++++ dev-python/selenium/selenium-4.33.0.ebuild | 157 +++++++++++++++++++++ 3 files changed, 188 insertions(+) diff --git a/dev-python/selenium/Manifest b/dev-python/selenium/Manifest index 8318eaba94db..68296d70aefb 100644 --- a/dev-python/selenium/Manifest +++ b/dev-python/selenium/Manifest @@ -5,6 +5,7 @@ DIST selenium-4.29.0.tar.gz 985717 BLAKE2B 61dbda8dcc3280289a2f84159edd11bbef66c DIST selenium-4.30.0.tar.gz 859424 BLAKE2B af4a48506b8749620441272a892dd21c8dcb0075ddfe4d489b803be2ec81c6489367483c7d1444de2c91a173148b519e700aa937a7be11c5703baa5cf1baa441 SHA512 6e8b73c0b877064987d66a7ebfd04edc550332ea0dbdcbd84d2060e47f8fce0817c47480fb18849332513e6e115239f25e09ad02f5ba72271af9bbc998f482f2 DIST selenium-4.31.0.tar.gz 855418 BLAKE2B d06268cfc71cfde25718ecded62f4556768138b428b63009d747c4a5e88f6e72bb975ac3b576eee44a014f2e0b55c4ac4fa17e0ddcbac15140bfee44ad584b23 SHA512 478060d4a87d0c000edfb76bed1ff40e0806b226eda41caa0d9818d650abe6a735513bac8520097659b22e64f145cf31d753d4d2209680cfa15a8a86454d0626 DIST selenium-4.32.0.tar.gz 870997 BLAKE2B b25ceff282c7be6de7e3a02c71769aa08db6d726010b879f4feb7e0f96b465ad5ce9d5942d941f3d1dd4c1c664faeb0e5be5b01c69150420dd1b15b19197971b SHA512 8c46e7e07b1a647c7901401a8d7a2930f95a5df5c4ed81d3364446b88a9c55de5c8401ede06aea6e142807025f890e2c026407b9468a44e239b5bed6a2ffdbb0 +DIST selenium-4.33.0.tar.gz 882387 BLAKE2B 62f32dc6aea5d7d16c546283d884d4f56b86911d7dbeeeb37a3f978d7b2161a8178e6d244b0dd6e6c5ca1a2eb29b0b758ed537d4b13cad5c71012b3d24c38b3e SHA512 c1f4969279d6df92f8537fe3d8cad1cd8265c6942a765399d8024aafeeb90dc0af6e7c11509dcead18a89f03c3486cd526448b27fae91bfc670fbaea7c6a37af DIST selenium-selenium-4.25.0.gh.tar.gz 77158053 BLAKE2B 9978239a874d32e23d98ec98eb5292153496c42abcdd0f959875b2b460df5a85c0b532b6843e0d13b931078490958ebdc2944a8c21ce2eae24a0ac6a3c830772 SHA512 6d11d1aa22d27dbc07c3d39f5f852080c5089b12b1da0251e7b09c38ac3b8f56f452a24c64a20685eb0aff238698ab4bd18a8b7089c69f261cfbcdc679ceeac8 DIST selenium-selenium-4.26.1-python.gh.tar.gz 77109265 BLAKE2B c0c5693c64fa65a627e5edf0cbbc051410fcddf59e4fd80c362b9a382c586fc3ad3d574674e5523ab284b40b6639e95e85fd1c8195f2f1a6f35ad6532ed667ce SHA512 7ace69332f17c6f7e28b81223f4c8c62cde1832b5acaf2fd1c777a08a5a9cfebb5d9c83daa10462eeb3acb9c7cb5038711f5acee51f5dad3910d7e29e4387d3f DIST selenium-selenium-4.28.1-python.gh.tar.gz 52438112 BLAKE2B 62e2a8334238a6fbe063eda6253f2e6d6ab83484dde2b6b7d2fb6fab3e37d7c1d78b82b424c665c5b38fa06928ec693ece8dab03831132b3d7666c296c4cd39f SHA512 f5c917615a7424470c095c7b9730c02e1e7d7e691b51bc29fbb2d72f3ea08d647705d67702e287e962c033f1269b7cff8cba93bef4999de09c90a6f0e9029efa @@ -12,3 +13,4 @@ DIST selenium-selenium-4.29.0.gh.tar.gz 52589103 BLAKE2B 65b202e599c1a3d31ebd15a DIST selenium-selenium-4.30.0.gh.tar.gz 52519870 BLAKE2B 440198b919d2c3400666bc07d246bff04521ec10716fadf660c564bd316e5889c4ecb314a45422661623b2a17e47e93921cad6eb97d3ca1b6f47cbae0ad42ac7 SHA512 561551002d2c37acc9a0b5fc40e3989a47d69dc0692a6fe44c90b0b77bf0056bc390848020fea7f5681ccbb5ec9808912cc5e63c286577ec60d787f3d2991b82 DIST selenium-selenium-4.31.0.gh.tar.gz 52458288 BLAKE2B 649d585e116ccd82e68f3b74b50cbbda5b9ac02c6ab8e72473b5775265205dc31ec69c846b1b39c91dceb63234bb02bf4833b321d101227f5873db6ad8897038 SHA512 e440e1b8e15b9e1f592b2466738f3982355a0757458bd7c8ef7eba31548df2bd449e54cea273a47f2b6bd0e68a2d75a1af67a791eff0cf3f601e685c4b8b237a DIST selenium-selenium-4.32.0.gh.tar.gz 52479399 BLAKE2B 01a2c0c172d4d25045b7f16d16c23945f4aaf48b422a9c926cdd6dbc728193a94d068c69f0317d3e5b8dd17df655581b3e5fd1e845cb18c1080f7a4aeb88d1dc SHA512 3beac9d23e9b92e54ff53195bb6376f6938019af9fdf9ad42210deb4bcd3b0fafe9e5098d4ba6e974d4d7f6bce6788622c0bd89ccf07117f3f7c7abad4e8831c +DIST selenium-selenium-4.33.0.gh.tar.gz 52518597 BLAKE2B 126fd55707580ff1e8a1df129680dcfb3f6edd11cacc335bb0163cf0af7b9f713a5c73d70e963089e0bffd14bede21c04dcec8eb99aaa5be6719717411c73088 SHA512 6392f952081cac1c2d9a5d9b1a93da270a6605f370d25fa3e79551b8df648f527b1936448e42d5e75d89613a7306a5d8f351e471b7c783ef35e7b22be9eb2955 diff --git a/dev-python/selenium/files/selenium-4.33.0-pytest-ignore.patch b/dev-python/selenium/files/selenium-4.33.0-pytest-ignore.patch new file mode 100644 index 000000000000..94d2477172ec --- /dev/null +++ b/dev-python/selenium/files/selenium-4.33.0-pytest-ignore.patch @@ -0,0 +1,29 @@ +From d4efc1b1f38611984b9d4f3c3aac1ba37224e8d0 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <[email protected]> +Date: Sat, 24 May 2025 06:54:07 +0200 +Subject: [PATCH] [py] Fix pytest_ignore_collect hook to respect --ignore + +Fix the `pytest_ignore_collect` hook to respect `--ignore` specified +by the user. Returning `False` stops pytest from consulting additional +hooks, including its default hooks that are necessary to process +`--ignore` option. By returning `True` or `None`, the hook combines +files ignored by default with ignores specified by the user. +--- + py/conftest.py | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/py/conftest.py b/py/conftest.py +index 2c4d0e62d6..45e5c704f8 100644 +--- a/py/conftest.py ++++ b/py/conftest.py +@@ -90,7 +90,9 @@ def pytest_ignore_collect(collection_path, config): + _drivers = set(drivers).difference(drivers_opt or drivers) + if drivers_opt: + _drivers.add("unit") +- return len([d for d in _drivers if d.lower() in collection_path.parts]) > 0 ++ if len([d for d in _drivers if d.lower() in collection_path.parts]) > 0: ++ return True ++ return None + + + def pytest_generate_tests(metafunc): diff --git a/dev-python/selenium/selenium-4.33.0.ebuild b/dev-python/selenium/selenium-4.33.0.ebuild new file mode 100644 index 000000000000..1fbe3f87abc4 --- /dev/null +++ b/dev-python/selenium/selenium-4.33.0.ebuild @@ -0,0 +1,157 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_TESTED=( python3_{11..14} pypy3_11 ) +PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" ) + +inherit distutils-r1 pypi + +# base releases are usually ${P}, followups ${P}-python +TEST_TAG=${P} +[[ ${PV} != *.0 ]] && TEST_TAG+=-python +TEST_P=selenium-${TEST_TAG} + +DESCRIPTION="Python language binding for Selenium Remote Control" +HOMEPAGE=" + https://www.seleniumhq.org/ + https://github.com/SeleniumHQ/selenium/tree/trunk/py/ + https://pypi.org/project/selenium/ +" +SRC_URI+=" + test? ( + https://github.com/SeleniumHQ/selenium/archive/${TEST_TAG}.tar.gz + -> ${TEST_P}.gh.tar.gz + ) +" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86" +IUSE="test test-rust" +RESTRICT="!test? ( test )" + +RDEPEND=" + >=dev-python/certifi-2025.4.26[${PYTHON_USEDEP}] + <dev-python/trio-1[${PYTHON_USEDEP}] + >=dev-python/trio-0.30[${PYTHON_USEDEP}] + <dev-python/trio-websocket-1[${PYTHON_USEDEP}] + >=dev-python/trio-websocket-0.12.2[${PYTHON_USEDEP}] + <dev-python/typing-extensions-5[${PYTHON_USEDEP}] + >=dev-python/typing-extensions-4.13.2[${PYTHON_USEDEP}] + <dev-python/urllib3-3[${PYTHON_USEDEP}] + >=dev-python/urllib3-2.4.0[${PYTHON_USEDEP}] + <dev-python/websocket-client-2[${PYTHON_USEDEP}] + >=dev-python/websocket-client-1.8.0[${PYTHON_USEDEP}] +" +BDEPEND=" + test? ( + ${RDEPEND} + $(python_gen_cond_dep ' + dev-python/filetype[${PYTHON_USEDEP}] + dev-python/pytest-mock[${PYTHON_USEDEP}] + test-rust? ( + dev-python/pytest[${PYTHON_USEDEP}] + dev-python/pytest-rerunfailures[${PYTHON_USEDEP}] + dev-python/pytest-xdist[${PYTHON_USEDEP}] + dev-util/selenium-manager + net-misc/geckodriver + || ( + www-client/firefox + www-client/firefox-bin + ) + ) + ' "${PYTHON_TESTED[@]}") + ) +" + +src_prepare() { + distutils-r1_src_prepare + + # do not build selenium-manager implicitly + sed -e 's:\[tool\.setuptools-rust:[tool.ignore-me:' \ + -i pyproject.toml || die + + cd "${WORKDIR}/${TEST_P}" || die + eapply "${FILESDIR}/${P}-pytest-ignore.patch" +} + +python_test() { + # NB: xdist is causing random pytest crashes with high job numbers + + if ! has "${EPYTHON/./_}" "${PYTHON_TESTED[@]}"; then + einfo "Skipping tests on ${EPYTHON}" + return + fi + + local EPYTEST_IGNORE=() + local EPYTEST_DESELECT=( + # expects vanilla certifi + test/unit/selenium/webdriver/remote/remote_connection_tests.py::test_get_connection_manager_for_certs_and_timeout + ) + local pytest_args=( + # https://github.com/SeleniumHQ/selenium/blob/selenium-4.8.2-python/py/test/runner/run_pytest.py#L20-L24 + # seriously? + -o "python_files=*_tests.py test_*.py" + -p pytest_mock + ) + if use test-rust; then + local -x PATH=${T}/bin:${PATH} + local -x SE_MANAGER_PATH="$(type -P selenium-manager)" + + pytest_args+=( + -p rerunfailures --reruns=5 + + --driver=firefox + --browser-binary="$(type -P firefox || type -P firefox-bin)" + --driver-binary="$(type -P geckodriver)" + --headless + ) + + local EPYTEST_IGNORE+=( + # requires some "python.runfiles", also bidi tests generally fail + test/selenium/webdriver/common/bidi_webextension_tests.py + ) + EPYTEST_DESELECT+=( + # expects prebuilt executables for various systems + test/selenium/webdriver/common/selenium_manager_tests.py::test_uses_windows + test/selenium/webdriver/common/selenium_manager_tests.py::test_uses_linux + test/selenium/webdriver/common/selenium_manager_tests.py::test_uses_mac + test/selenium/webdriver/common/selenium_manager_tests.py::test_errors_if_invalid_os + + # TODO: these don't respect --*-binary and try to fetch versions + test/selenium/webdriver/firefox + test/selenium/webdriver/marionette/mn_context_tests.py::test_context_sets_correct_context_and_returns + test/selenium/webdriver/marionette/mn_context_tests.py::test_context_sets_correct_context_and_returns + test/selenium/webdriver/marionette/mn_options_tests.py::TestIntegration::test_we_can_pass_options + test/selenium/webdriver/marionette/mn_set_context_tests.py::test_we_can_switch_context_to_chrome + + # TODO + 'test/selenium/webdriver/common/devtools_tests.py::test_check_console_messages[firefox]' + + # TODO + test/selenium/webdriver/common/bidi_browser_tests.py + test/selenium/webdriver/common/bidi_browsing_context_tests.py + test/selenium/webdriver/common/bidi_network_tests.py + test/selenium/webdriver/common/bidi_script_tests.py + test/selenium/webdriver/common/bidi_session_tests.py + test/selenium/webdriver/common/bidi_storage_tests.py + test/selenium/webdriver/common/bidi_tests.py + test/selenium/webdriver/marionette/mn_options_tests.py::TestUnit::test_binary + test/selenium/webdriver/marionette/mn_options_tests.py::TestUnit::test_ctor + test/selenium/webdriver/marionette/mn_options_tests.py::TestUnit::test_prefs + test/selenium/webdriver/marionette/mn_options_tests.py::TestUnit::test_to_capabilities + ) + else + EPYTEST_IGNORE+=( + test/selenium + ) + fi + + cd "${WORKDIR}/${TEST_P}/py" || die + rm -rf selenium || die + local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 + epytest "${pytest_args[@]}" +}
