diff options
Diffstat (limited to 'dev-python')
| -rw-r--r-- | dev-python/selenium/Manifest | 2 | ||||
| -rw-r--r-- | dev-python/selenium/selenium-4.34.2.ebuild | 152 |
2 files changed, 154 insertions, 0 deletions
diff --git a/dev-python/selenium/Manifest b/dev-python/selenium/Manifest index 3dfae4d20b1f..a5917c2fc577 100644 --- a/dev-python/selenium/Manifest +++ b/dev-python/selenium/Manifest @@ -3,8 +3,10 @@ DIST selenium-4.31.0.tar.gz 855418 BLAKE2B d06268cfc71cfde25718ecded62f455676813 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-4.34.0.tar.gz 895790 BLAKE2B 6f256ff92721eea31ec11dd0ced3d7ce7e1f79cb76664bed07297cfa872032652365ea17bc0a241a8417d3c47ea4242f520590a84024e5575e00e09cec5a9657 SHA512 374d5a321bbdbe260144e88b0cb1f10498e08368a3fc2142dbcb65e576a5188b5310dc3e0f5d8a114c5ac3a8ad9e5155c0cc5b66df13ea7fbd51a993b69472f3 +DIST selenium-4.34.2.tar.gz 896309 BLAKE2B 094d3596a86e1cd50a6967a65b3e7b9a73300403f5d88163ded8b1d3a62cb09d77057e9b90a35b39f3a6000a8ba604bd71ecb051866cf7ad88c5ab9e21752978 SHA512 f5911f41bc4988e1af26812299cf37aba7e88820cf4e719e0e04a36a5dbdba5420422c52393c8d31c4e0f88efe779e9beec2c490892e4546caa0a920047e01fa DIST selenium-selenium-4.26.1-python.gh.tar.gz 77109265 BLAKE2B c0c5693c64fa65a627e5edf0cbbc051410fcddf59e4fd80c362b9a382c586fc3ad3d574674e5523ab284b40b6639e95e85fd1c8195f2f1a6f35ad6532ed667ce SHA512 7ace69332f17c6f7e28b81223f4c8c62cde1832b5acaf2fd1c777a08a5a9cfebb5d9c83daa10462eeb3acb9c7cb5038711f5acee51f5dad3910d7e29e4387d3f 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 DIST selenium-selenium-4.34.0.gh.tar.gz 52524095 BLAKE2B 1fe7e662697039708ce84ef4941f028369ca54089cd4f5075b3df2aa0d08373a3779ca201daa29ff5c4ad3d139f751a4525e114bfa80e3d0d297901309bf3bda SHA512 6e431e82d1ef4cb5dd47f319a95a43ebf68924b73f5de8e562ba21a0420d58098dcf63578699d36e3da5a6180fe7e433a50389a362357eb7c7f6d0a5770966b6 +DIST selenium-selenium-4.34.2-python.gh.tar.gz 52515190 BLAKE2B 319a7083d5942c1962b4f48f907fea12943a403e4490f74f3cd38662f1c63f57270b27b6039a5a8f29a980540cd0dcf1d1c7560c7ac126f07e491983dc0e81ef SHA512 5ca0b6e970ded3dc93cd55a2c1af7c43063d87f57f119a011313eb7d08faa4057896a56d4eac2e13d39857c94b54f04840a053153cc39008c76cbdd33c8ddbba diff --git a/dev-python/selenium/selenium-4.34.2.ebuild b/dev-python/selenium/selenium-4.34.2.ebuild new file mode 100644 index 000000000000..3c554b489833 --- /dev/null +++ b/dev-python/selenium/selenium-4.34.2.ebuild @@ -0,0 +1,152 @@ +# 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 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +IUSE="test test-rust" +RESTRICT="!test? ( test )" + +RDEPEND=" + >=dev-python/certifi-2025.6.15[${PYTHON_USEDEP}] + >=dev-python/trio-0.30[${PYTHON_USEDEP}] + >=dev-python/trio-websocket-0.12.2[${PYTHON_USEDEP}] + >=dev-python/typing-extensions-4.14.0[${PYTHON_USEDEP}] + >=dev-python/urllib3-2.5.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 + 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:~=:>=:g' 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=() + 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)" + + EPYTEST_PLUGINS+=( pytest-rerunfailures ) + pytest_args+=( + --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_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 + ) + else + EPYTEST_IGNORE+=( + test/selenium + ) + fi + + cd "${WORKDIR}/${TEST_P}/py" || die + rm -rf selenium || die + epytest "${pytest_args[@]}" +} |
