diff --git a/.riot/requirements/1230d1c.txt b/.riot/requirements/1230d1c.txt new file mode 100644 index 00000000000..5eaeaa41cd5 --- /dev/null +++ b/.riot/requirements/1230d1c.txt @@ -0,0 +1,38 @@ +# +# This file is autogenerated by pip-compile with Python 3.10 +# by the following command: +# +# pip-compile --no-annotate .riot/requirements/1230d1c.in +# +attrs==25.3.0 +certifi==2025.4.26 +charset-normalizer==3.4.2 +coverage[toml]==7.8.2 +exceptiongroup==1.3.0 +h11==0.16.0 +hypothesis==6.45.0 +idna==3.10 +iniconfig==2.1.0 +mock==5.2.0 +opentracing==2.4.0 +outcome==1.3.0.post0 +packaging==25.0 +pluggy==1.6.0 +pygments==2.19.1 +pysocks==1.7.1 +pytest==8.4.0 +pytest-cov==6.1.1 +pytest-mock==3.14.1 +python-dotenv==1.1.0 +requests==2.32.4 +selenium==4.33.0 +sniffio==1.3.1 +sortedcontainers==2.4.0 +tomli==2.2.1 +trio==0.30.0 +trio-websocket==0.12.2 +typing-extensions==4.13.2 +urllib3[socks]==2.4.0 +webdriver-manager==4.0.2 +websocket-client==1.8.0 +wsproto==1.2.0 diff --git a/.riot/requirements/143a175.txt b/.riot/requirements/143a175.txt new file mode 100644 index 00000000000..cdad4bedf95 --- /dev/null +++ b/.riot/requirements/143a175.txt @@ -0,0 +1,38 @@ +# +# This file is autogenerated by pip-compile with Python 3.10 +# by the following command: +# +# pip-compile --no-annotate .riot/requirements/143a175.in +# +attrs==25.3.0 +certifi==2025.4.26 +charset-normalizer==3.4.2 +coverage[toml]==7.8.2 +exceptiongroup==1.3.0 +h11==0.16.0 +hypothesis==6.45.0 +idna==3.10 +iniconfig==2.1.0 +mock==5.2.0 +opentracing==2.4.0 +outcome==1.3.0.post0 +packaging==25.0 +pluggy==1.6.0 +pygments==2.19.1 +pysocks==1.7.1 +pytest==8.4.0 +pytest-cov==6.1.1 +pytest-mock==3.14.1 +python-dotenv==1.1.0 +requests==2.32.4 +selenium==4.33.0 +sniffio==1.3.1 +sortedcontainers==2.4.0 +tomli==2.2.1 +trio==0.30.0 +trio-websocket==0.12.2 +typing-extensions==4.13.2 +urllib3[socks]==2.4.0 +webdriver-manager==4.0.2 +websocket-client==1.8.0 +wsproto==1.2.0 diff --git a/.riot/requirements/18e9ec9.txt b/.riot/requirements/18e9ec9.txt new file mode 100644 index 00000000000..9052ff1de61 --- /dev/null +++ b/.riot/requirements/18e9ec9.txt @@ -0,0 +1,36 @@ +# +# This file is autogenerated by pip-compile with Python 3.12 +# by the following command: +# +# pip-compile --no-annotate .riot/requirements/18e9ec9.in +# +attrs==25.3.0 +certifi==2025.4.26 +charset-normalizer==3.4.2 +coverage[toml]==7.8.2 +h11==0.16.0 +hypothesis==6.45.0 +idna==3.10 +iniconfig==2.1.0 +mock==5.2.0 +opentracing==2.4.0 +outcome==1.3.0.post0 +packaging==25.0 +pluggy==1.6.0 +pygments==2.19.1 +pysocks==1.7.1 +pytest==8.4.0 +pytest-cov==6.1.1 +pytest-mock==3.14.1 +python-dotenv==1.1.0 +requests==2.32.4 +selenium==4.33.0 +sniffio==1.3.1 +sortedcontainers==2.4.0 +trio==0.30.0 +trio-websocket==0.12.2 +typing-extensions==4.13.2 +urllib3[socks]==2.4.0 +webdriver-manager==4.0.2 +websocket-client==1.8.0 +wsproto==1.2.0 diff --git a/.riot/requirements/1db770e.txt b/.riot/requirements/1db770e.txt new file mode 100644 index 00000000000..59cfb978b22 --- /dev/null +++ b/.riot/requirements/1db770e.txt @@ -0,0 +1,36 @@ +# +# This file is autogenerated by pip-compile with Python 3.12 +# by the following command: +# +# pip-compile --no-annotate .riot/requirements/1db770e.in +# +attrs==25.3.0 +certifi==2025.4.26 +charset-normalizer==3.4.2 +coverage[toml]==7.8.2 +h11==0.16.0 +hypothesis==6.45.0 +idna==3.10 +iniconfig==2.1.0 +mock==5.2.0 +opentracing==2.4.0 +outcome==1.3.0.post0 +packaging==25.0 +pluggy==1.6.0 +pygments==2.19.1 +pysocks==1.7.1 +pytest==8.4.0 +pytest-cov==6.1.1 +pytest-mock==3.14.1 +python-dotenv==1.1.0 +requests==2.32.4 +selenium==4.33.0 +sniffio==1.3.1 +sortedcontainers==2.4.0 +trio==0.30.0 +trio-websocket==0.12.2 +typing-extensions==4.13.2 +urllib3[socks]==2.4.0 +webdriver-manager==4.0.2 +websocket-client==1.8.0 +wsproto==1.2.0 diff --git a/hatch.toml b/hatch.toml index 4188dfda98d..dbf51d4fc05 100644 --- a/hatch.toml +++ b/hatch.toml @@ -757,35 +757,6 @@ view = [ "python scripts/ci_visibility/view_snapshot.py {args:}", ] -[envs.selenium] -template = "selenium" -dependencies = [ - "pytest", - "pytest-cov", - "hypothesis", - "selenium~=4.0", - "webdriver-manager" -] - -[evs.selenium.env-vars] -DD_AGENT_TRACER_URL = "9126" - -[envs.selenium.scripts] -test = [ - "pip freeze", - "pytest -c /dev/null --no-ddtrace --no-cov tests/contrib/selenium {args:}", -] - -[[envs.selenium.matrix]] -python = ["3.10", "3.12"] -tested_pytest_plugin_version = ["v1", "v2"] - -[envs.selenium.overrides] -matrix.tested_pytest_plugin_version.env-vars = [ - { key = "_TESTED_PYTEST_LEGACY_PLUGIN", value = "true", if = ["v1"]}, - { key = "_TESTED_PYTEST_LEGACY_PLUGIN", value = "false", if = ["v2"]} -] - [envs.appsec_integrations_pygoat] template = "appsec_integrations_pygoat" dependencies = [ diff --git a/lib-injection/sources/min_compatible_versions.csv b/lib-injection/sources/min_compatible_versions.csv index 3c83eceeb63..ff5fc3f531c 100644 --- a/lib-injection/sources/min_compatible_versions.csv +++ b/lib-injection/sources/min_compatible_versions.csv @@ -171,6 +171,7 @@ rq,~=1.8.0 ruamel.yaml,0 sanic,~=20.12 sanic-testing,~=0.8.3 +selenium,~=4.0 slotscheck,==0.17.0 snowflake-connector-python,~=2.3.0 spyne,0 @@ -188,6 +189,7 @@ vcrpy,==4.2.1 vertexai,0 vertica-python,>=0.6.0 virtualenv-clone,0 +webdriver-manager,0 websockets,<11.0 webtest,0 werkzeug,<1.0 diff --git a/min_compatible_versions.csv b/min_compatible_versions.csv index 3c83eceeb63..ff5fc3f531c 100644 --- a/min_compatible_versions.csv +++ b/min_compatible_versions.csv @@ -171,6 +171,7 @@ rq,~=1.8.0 ruamel.yaml,0 sanic,~=20.12 sanic-testing,~=0.8.3 +selenium,~=4.0 slotscheck,==0.17.0 snowflake-connector-python,~=2.3.0 spyne,0 @@ -188,6 +189,7 @@ vcrpy,==4.2.1 vertexai,0 vertica-python,>=0.6.0 virtualenv-clone,0 +webdriver-manager,0 websockets,<11.0 webtest,0 werkzeug,<1.0 diff --git a/riotfile.py b/riotfile.py index c05905b5d1d..b9308a3ed9f 100644 --- a/riotfile.py +++ b/riotfile.py @@ -3082,6 +3082,36 @@ def select_pys(min_version: str = MIN_PYTHON_VERSION, max_version: str = MAX_PYT ), ], ), + Venv( + name="selenium", + pys=["3.10", "3.12"], + pkgs={ + "selenium": "~=4.0", + "webdriver-manager": latest, + }, + command="pytest --no-cov {cmdargs} -c /dev/null --no-ddtrace tests/contrib/selenium", + env={ + "DD_AGENT_TRACER_URL": "9126", + }, + venvs=[ + Venv( + venvs=[ + Venv( + name="selenium-pytest-legacy-plugin-true", + env={ + "_TESTED_PYTEST_LEGACY_PLUGIN": "true", + }, + ), + Venv( + name="selenium-pytest-legacy-plugin-false", + env={ + "_TESTED_PYTEST_LEGACY_PLUGIN": "false", + }, + ), + ], + ), + ], + ), Venv( name="freezegun", command="pytest tests/contrib/freezegun {cmdargs}", diff --git a/tests/ci_visibility/suitespec.yml b/tests/ci_visibility/suitespec.yml index e2850d69dfb..7f1c3dd92db 100644 --- a/tests/ci_visibility/suitespec.yml +++ b/tests/ci_visibility/suitespec.yml @@ -97,7 +97,7 @@ suites: - '@selenium' - tests/contrib/selenium/* - tests/snapshots/test_selenium* - runner: hatch + runner: riot snapshot: true unittest: parallelism: 2