commit:     ecb55e122fc370c8eae066d5daa720efafe42df2
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Mon Jan 19 04:59:55 2026 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Mon Jan 19 05:38:14 2026 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ecb55e12

dev-python/selenium: Bump to 4.40.0

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 dev-python/selenium/Manifest               |   2 +
 dev-python/selenium/selenium-4.40.0.ebuild | 160 +++++++++++++++++++++++++++++
 2 files changed, 162 insertions(+)

diff --git a/dev-python/selenium/Manifest b/dev-python/selenium/Manifest
index 592db0a9619f..678337b1947a 100644
--- a/dev-python/selenium/Manifest
+++ b/dev-python/selenium/Manifest
@@ -5,6 +5,7 @@ DIST selenium-4.36.0.tar.gz 913613 BLAKE2B 
cc4354d8c5a85aea2ed8c825b2ed06833db7f
 DIST selenium-4.37.0.tar.gz 918689 BLAKE2B 
2ca4067e3e1729345b078515fc362571c73e818f9f71697f96648829d777df50e51d6ef29c1af5082718c5ce127e9bb8af4e3a7e3ed9b3f4f90164334c1693a6
 SHA512 
0406c57c1bd7614fed716c9fb59be089f63c102e2f7fc06ee38db4a3390bb3bda37f171818a3e6697ebe84f380238cb9d97214dbd5f7a99a2b6038cf6e75d682
 DIST selenium-4.38.0.tar.gz 924101 BLAKE2B 
e0bb400e646a36abdaf11c2916257af63984c44bc748b3a9764905d860fa2ece8ec75ee5b7a5618e5b0cff5c95aae01e07d39005efb3c48a4ca8e8ce282c9ed5
 SHA512 
85e8b5a9a201838a82afc68e7eb0255aa67a50c51f62b705e4d064a27a5b80535960d980816266876054eb29917da1cf63d9d4c4924fe6cd2632822a1518817b
 DIST selenium-4.39.0.tar.gz 928575 BLAKE2B 
8a95a0ee4293156ddaccf9334e24df26de552b96f86827471027b011269f35f141174b486084731be4fb01d8a302c5c4d02ff04642adc089bcea5307b9e8aa05
 SHA512 
2950a52f452a652fd89f38f9c0d03abe9827be646827121f78c39f27995edeeb12177822215704b7e3f06e4e901e21ac87dadd68015c7a240bed09a914508dc3
+DIST selenium-4.40.0.tar.gz 930444 BLAKE2B 
0118f8135d0cd81809655763b8b40c12ffe5e93c7a39f4de9b857e1f2601ed122894d7f2d1b850327e7c147881893ac8a43f0cfee9afdc2ac6874e68c5662f2c
 SHA512 
9f501a8c2e95e57e47cbc7b11462100d6ad950123c989a750840ba5a764b4ebb3486adaca3eca7bb385b836abecfbb79a14255de9613ec916b87c36389f1fc1d
 DIST selenium-selenium-4.26.1-python.gh.tar.gz 77109265 BLAKE2B 
c0c5693c64fa65a627e5edf0cbbc051410fcddf59e4fd80c362b9a382c586fc3ad3d574674e5523ab284b40b6639e95e85fd1c8195f2f1a6f35ad6532ed667ce
 SHA512 
7ace69332f17c6f7e28b81223f4c8c62cde1832b5acaf2fd1c777a08a5a9cfebb5d9c83daa10462eeb3acb9c7cb5038711f5acee51f5dad3910d7e29e4387d3f
 DIST selenium-selenium-4.34.2-python.gh.tar.gz 52515190 BLAKE2B 
319a7083d5942c1962b4f48f907fea12943a403e4490f74f3cd38662f1c63f57270b27b6039a5a8f29a980540cd0dcf1d1c7560c7ac126f07e491983dc0e81ef
 SHA512 
5ca0b6e970ded3dc93cd55a2c1af7c43063d87f57f119a011313eb7d08faa4057896a56d4eac2e13d39857c94b54f04840a053153cc39008c76cbdd33c8ddbba
 DIST selenium-selenium-4.35.0.gh.tar.gz 52550104 BLAKE2B 
b7ed0fb513cfb2ed24aa8393497b349f930739c3d24a330e5942fbaa5505f31d7086396a430776a3a28a5f65927b92bf27c0a32e8c36d893b5d62ef73151d5ef
 SHA512 
dc73829e3b0fcb7fb7ee1cc04574b95b63d23f67974575dbd66338e14a5cb2b06f983145ce874be0d7124e8828b0a41b99c75d3befb19e04cbf8d027d0bb983a
@@ -12,3 +13,4 @@ DIST selenium-selenium-4.36.0.gh.tar.gz 52567842 BLAKE2B 
e5e715ce0d4e491f2551ea1
 DIST selenium-selenium-4.37.0.gh.tar.gz 52580241 BLAKE2B 
360f0c435cd79c37d65e03a6e049ab75cde20683599965a4ffbd155dd31ca7c8e0c5bbca83f3688d29a2404a51b6c6633581e369bcfb95b7b13b8508b0b65787
 SHA512 
0389e5dad02719da66689a9509ca95ae009120218f47ffedc1db2bb4063e95d842b527be23828a988c66c8b2ab7452817571aeda14b4f3254c5536d2d4b0f535
 DIST selenium-selenium-4.38.0.gh.tar.gz 52583428 BLAKE2B 
539234726775fd23357bf18881242b8b9c27ca62a9a3dd27d5625ba571d9e83df5639fedcd062474358ab821c6c7609668481db1a5311a2388d52e922c4e9f5a
 SHA512 
68b6e819ecfd9bdd02701ebe96e9d28aa98893a738c5684162e6bfd263652f13d49567b4e2365286fcd08501b00024646e65e7e6b54ee713af42ed0ae99a4985
 DIST selenium-selenium-4.39.0.gh.tar.gz 52628198 BLAKE2B 
91745d908c8ce1c2a898daacf7e5b3c1d309e3f63e450f4d5e7d343ecf67a587b57b5c573630adcf736b4bcf28abd9b2cda101a632f48bec8eddd6fc7a67e510
 SHA512 
e780848fce92ce99977a7c24983e075bc7338450196e8511a11bdace9c7d6e7de0b64e471a02d7403c10031100dfff674b302f24133e49d11ed5af4ca1cc20ce
+DIST selenium-selenium-4.40.0.gh.tar.gz 43521447 BLAKE2B 
42a71e2b00f96621f453e7c72c8c13f9876a82edb66a1c0d85ef5dda58c5831023b8924ab77e38a46d6810d617ee8760a409b7112ae92b1daa9d840956ca5c6e
 SHA512 
0e2360f80463142dde933b8c92c4800f9b5a4e89b5301068a5d3a568e393730c84534fc6379a041f7c39ad5e8f45729e5a140f72e3eeddeb1293ebe2fc9db7fa

diff --git a/dev-python/selenium/selenium-4.40.0.ebuild 
b/dev-python/selenium/selenium-4.40.0.ebuild
new file mode 100644
index 000000000000..79a090d6131e
--- /dev/null
+++ b/dev-python/selenium/selenium-4.40.0.ebuild
@@ -0,0 +1,160 @@
+# Copyright 1999-2026 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://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 ~loong ~ppc ~ppc64 ~riscv ~s390 ~x86"
+IUSE="test test-rust"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+       >=dev-python/certifi-2026.1.4[${PYTHON_USEDEP}]
+       >=dev-python/trio-0.31.0[${PYTHON_USEDEP}]
+       >=dev-python/trio-websocket-0.12.2[${PYTHON_USEDEP}]
+       >=dev-python/typing-extensions-4.15.0[${PYTHON_USEDEP}]
+       >=dev-python/urllib3-2.6.0[${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-util/selenium-manager-${PV}
+                               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
+       # unpin deps
+       sed -i -e 's:,<[0-9.]*::' pyproject.toml || die
+       # remove nonsense typing deps
+       sed -i -e '/types/d' -e '/typing/d' pyproject.toml || die
+}
+
+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_PLUGINS=( pytest-mock )
+       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"
+       )
+       if use test-rust; then
+               local -x PATH=${T}/bin:${PATH}
+               local -x SE_MANAGER_PATH="$(type -P selenium-manager)"
+
+               local EPYTEST_RERUNS=5
+               pytest_args+=(
+                       --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
+                       # throws some error that pytest doesn't even show
+                       
test/selenium/webdriver/firefox/ff_installs_addons_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_emulation_tests.py
+                       test/selenium/webdriver/common/bidi_input_tests.py
+                       test/selenium/webdriver/common/bidi_network_tests.py
+                       test/selenium/webdriver/common/bidi_permissions_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
+                       
test/selenium/webdriver/remote/remote_custom_locator_tests.py::test_find_element_with_custom_locator
+                       
test/selenium/webdriver/remote/remote_custom_locator_tests.py::test_find_elements_with_custom_locator
+
+                       # Internet
+                       
test/selenium/webdriver/remote/remote_server_tests.py::test_download_latest_server
+               )
+       else
+               EPYTEST_IGNORE+=(
+                       test/selenium
+               )
+       fi
+
+       cd "${WORKDIR}/${TEST_P}/py" || die
+       rm -rf selenium || die
+       epytest "${pytest_args[@]}"
+}

Reply via email to