Compare commits

..

No commits in common. "rawhide" and "epel10" have entirely different histories.

7 changed files with 172 additions and 171 deletions

View file

@ -1 +0,0 @@
1

View file

@ -1,4 +1,4 @@
From 42a461b71597e85e7902571348786aa4ab848cf8 Mon Sep 17 00:00:00 2001 From 924b03e0446561bbfca9679a44642a1a96dd8f10 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Hrn=C4=8Diar?= <thrnciar@redhat.com> From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Hrn=C4=8Diar?= <thrnciar@redhat.com>
Date: Fri, 28 Mar 2025 09:44:24 +0100 Date: Fri, 28 Mar 2025 09:44:24 +0100
Subject: [PATCH] Fix tests Subject: [PATCH] Fix tests
@ -9,25 +9,41 @@ Content-Transfer-Encoding: 8bit
Co-Authored-By: Lumir Balhar <lbalhar@redhat.com> Co-Authored-By: Lumir Balhar <lbalhar@redhat.com>
Co-Authored-By: Miro Hrončok <miro@hroncok.cz> Co-Authored-By: Miro Hrončok <miro@hroncok.cz>
--- ---
pyproject.toml | 4 +--- pyproject.toml | 11 +----------
src/tox/pytest.py | 14 ++------------ src/tox/pytest.py | 16 +++-------------
tests/test_provision.py | 11 ++++------- tests/test_provision.py | 18 ++----------------
.../package/test_python_package_util.py | 10 ++++++++-- .../package/test_python_package_util.py | 10 ++++++++--
4 files changed, 15 insertions(+), 30 deletions(-) 4 files changed, 14 insertions(+), 41 deletions(-)
diff --git a/pyproject.toml b/pyproject.toml diff --git a/pyproject.toml b/pyproject.toml
index 6920d19..53326bc 100644 index 9b52c2f..335012b 100644
--- a/pyproject.toml --- a/pyproject.toml
+++ b/pyproject.toml +++ b/pyproject.toml
@@ -201,6 +195,7 @@ filterwarnings = [ @@ -82,22 +82,16 @@ dev = [
"error",
"ignore:unclosed database in <sqlite3.Connection object at:ResourceWarning",
"ignore:unclosed file <_io.TextIOWrapper:ResourceWarning",
+ "ignore:subprocess \\d+ is still running:ResourceWarning",
] ]
tmp_path_retention_policy = "failed" test = [
"build[virtualenv]>=1.2.2.post1",
@@ -222,9 +217,6 @@ report.omit = [ - "covdefaults>=2.3",
- "detect-test-pollution>=1.2",
- "devpi-process>=1.0.2",
- "diff-cover>=9.2",
"distlib>=0.3.9",
"flaky>=3.8.1",
"hatch-vcs>=0.4",
"hatchling>=1.27",
"psutil>=6.1.1",
"pytest>=8.3.4",
- "pytest-cov>=5",
"pytest-mock>=3.14",
"pytest-xdist>=3.6.1",
"re-assert>=1.1",
- "setuptools>=75.3; python_version<='3.8'",
- "setuptools>=75.8; python_version>'3.8'",
+ "setuptools>=75.1",
"time-machine>=2.15; implementation_name!='pypy'",
"wheel>=0.45.1",
]
@@ -223,9 +217,6 @@ report.omit = [
"tests/type_check/*", "tests/type_check/*",
] ]
run.parallel = true run.parallel = true
@ -38,10 +54,10 @@ index 6920d19..53326bc 100644
[tool.towncrier] [tool.towncrier]
name = "tox" name = "tox"
diff --git a/src/tox/pytest.py b/src/tox/pytest.py diff --git a/src/tox/pytest.py b/src/tox/pytest.py
index 31b3e6f..c358313 100644 index bca2ad8..973e714 100644
--- a/src/tox/pytest.py --- a/src/tox/pytest.py
+++ b/src/tox/pytest.py +++ b/src/tox/pytest.py
@@ -17,7 +17,6 @@ from typing import TYPE_CHECKING, Any, Protocol, cast @@ -17,7 +17,6 @@ from typing import TYPE_CHECKING, Any, Callable, Iterator, Protocol, Sequence, c
import pytest import pytest
from _pytest.fixtures import SubRequest # noqa: PLC2701 from _pytest.fixtures import SubRequest # noqa: PLC2701
@ -49,18 +65,21 @@ index 31b3e6f..c358313 100644
from virtualenv.info import fs_supports_symlink from virtualenv.info import fs_supports_symlink
import tox.run import tox.run
@@ -285,8 +284,8 @@ class ToxProject: @@ -280,10 +279,10 @@ class ToxProject:
m.setattr(sys, "argv", [sys.executable, "-m", "tox", *list(args)]) m.setattr(sys, "argv", [sys.executable, "-m", "tox", *list(args)])
m.setenv("VIRTUALENV_SYMLINK_APP_DATA", "1") m.setenv("VIRTUALENV_SYMLINK_APP_DATA", "1")
m.setenv("VIRTUALENV_SYMLINKS", "1") m.setenv("VIRTUALENV_SYMLINKS", "1")
- m.setenv("VIRTUALENV_PIP", "embed") - m.setenv("VIRTUALENV_PIP", "embed")
- m.setenv("VIRTUALENV_SETUPTOOLS", "embed")
+ m.setenv("VIRTUALENV_PIP", "bundle") + m.setenv("VIRTUALENV_PIP", "bundle")
if sys.version_info[:2] < (3, 9):
- m.setenv("VIRTUALENV_WHEEL", "embed")
- m.setenv("VIRTUALENV_SETUPTOOLS", "embed")
+ m.setenv("VIRTUALENV_WHEEL", "bundle")
+ m.setenv("VIRTUALENV_SETUPTOOLS", "bundle") + m.setenv("VIRTUALENV_SETUPTOOLS", "bundle")
try: try:
tox_run(args) tox_run(args)
except SystemExit as exception: except SystemExit as exception:
@@ -479,15 +478,6 @@ def enable_pypi_server(monkeypatch: pytest.MonkeyPatch, url: str | None) -> None @@ -476,15 +475,6 @@ def enable_pypi_server(monkeypatch: pytest.MonkeyPatch, url: str | None) -> None
monkeypatch.setenv("PIP_TIMEOUT", str(2)) monkeypatch.setenv("PIP_TIMEOUT", str(2))
@ -77,30 +96,35 @@ index 31b3e6f..c358313 100644
def _invalid_index_fake_port() -> int: def _invalid_index_fake_port() -> int:
with closing(socket.socket(socket.AF_INET, socket.SOCK_STREAM)) as socket_handler: with closing(socket.socket(socket.AF_INET, socket.SOCK_STREAM)) as socket_handler:
diff --git a/tests/test_provision.py b/tests/test_provision.py diff --git a/tests/test_provision.py b/tests/test_provision.py
index d1b6b2d..022e340 100644 index 2030cb9..f706d6c 100644
--- a/tests/test_provision.py --- a/tests/test_provision.py
+++ b/tests/test_provision.py +++ b/tests/test_provision.py
@@ -126,15 +126,13 @@ def _use_pypi_index(pypi_index: Index, monkeypatch: MonkeyPatch) -> None: @@ -98,22 +98,9 @@ def tox_wheels(tox_wheel: Path, tmp_path_factory: TempPathFactory) -> list[Path]
return result
-@pytest.fixture(scope="session")
-def pypi_index_self(pypi_server: IndexServer, tox_wheels: list[Path], demo_pkg_inline_wheel: Path) -> Index:
- with elapsed("start devpi and create index"): # takes around 1s
- self_index = pypi_server.create_index("self", "volatile=False")
- with elapsed("upload tox and its wheels to devpi"): # takes around 3.2s on build
- self_index.upload(*tox_wheels, demo_pkg_inline_wheel)
- return self_index
-
-
@pytest.fixture @pytest.fixture
-def _pypi_index_mirrored(local_pypi_indexes: tuple[Index, Index], monkeypatch: MonkeyPatch) -> None: -def _pypi_index_self(pypi_index_self: Index, monkeypatch: MonkeyPatch) -> None:
- pypi_index_mirrored, _ = local_pypi_indexes - pypi_index_self.use()
- _use_pypi_index(pypi_index_mirrored, monkeypatch) - monkeypatch.setenv("PIP_INDEX_URL", pypi_index_self.url)
+def _pypi_index_mirrored() -> None: - monkeypatch.setenv("PIP_RETRIES", str(2))
- monkeypatch.setenv("PIP_TIMEOUT", str(5))
-
+def _pypi_index_self():
+ pytest.skip("needs devpi-process") + pytest.skip("needs devpi-process")
@pytest.fixture
-def _pypi_index_self(local_pypi_indexes: tuple[Index, Index], monkeypatch: MonkeyPatch) -> None:
- _, pypi_index_self = local_pypi_indexes
- _use_pypi_index(pypi_index_self, monkeypatch)
+def _pypi_index_self() -> None:
+ pytest.skip("needs devpi-process")
def test_provision_requires_nok(tox_project: ToxProjectCreator) -> None: def test_provision_requires_nok(tox_project: ToxProjectCreator) -> None:
@@ -183,7 +181,6 @@ def test_provision_requires_ok(tox_project: ToxProjectCreator, tmp_path: Path) - ini = "[tox]\nrequires = pkg-does-not-exist\n setuptools==1\nskipsdist=true\n"
@@ -161,7 +148,6 @@ def test_provision_requires_ok(tox_project: ToxProjectCreator, tmp_path: Path) -
@pytest.mark.integration @pytest.mark.integration
@ -109,7 +133,7 @@ index d1b6b2d..022e340 100644
ini = "[tox]\nrequires=demo-pkg-inline\n[testenv]\npackage=skip\n[testenv:.tox]\nplatform=wrong_platform" ini = "[tox]\nrequires=demo-pkg-inline\n[testenv]\npackage=skip\n[testenv:.tox]\nplatform=wrong_platform"
proj = tox_project({"tox.ini": ini}) proj = tox_project({"tox.ini": ini})
diff --git a/tests/tox_env/python/virtual_env/package/test_python_package_util.py b/tests/tox_env/python/virtual_env/package/test_python_package_util.py diff --git a/tests/tox_env/python/virtual_env/package/test_python_package_util.py b/tests/tox_env/python/virtual_env/package/test_python_package_util.py
index 3802147..7f64d90 100644 index efb5b12..8a57426 100644
--- a/tests/tox_env/python/virtual_env/package/test_python_package_util.py --- a/tests/tox_env/python/virtual_env/package/test_python_package_util.py
+++ b/tests/tox_env/python/virtual_env/package/test_python_package_util.py +++ b/tests/tox_env/python/virtual_env/package/test_python_package_util.py
@@ -15,6 +15,12 @@ if TYPE_CHECKING: @@ -15,6 +15,12 @@ if TYPE_CHECKING:
@ -127,8 +151,8 @@ index 3802147..7f64d90 100644
def pkg_with_extras(pkg_with_extras_project: Path) -> PathDistribution: def pkg_with_extras(pkg_with_extras_project: Path) -> PathDistribution:
@@ -43,10 +49,10 @@ def test_load_dependency_many_extra(pkg_with_extras: PathDistribution) -> None: @@ -43,10 +49,10 @@ def test_load_dependency_many_extra(pkg_with_extras: PathDistribution) -> None:
exp = [ exp = [
Requirement("platformdirs>=4.3.8"), Requirement("platformdirs>=2.1"),
Requirement("colorama>=0.4.6"), Requirement("colorama>=0.4.3"),
- *(sphinx if sys.version_info[0:2] <= (3, 8) else []), - *(sphinx if sys.version_info[0:2] <= (3, 8) else []),
+ *(sphinx if not SETUPTOOLS_75_6 else []), + *(sphinx if not SETUPTOOLS_75_6 else []),
Requirement(f'covdefaults>=1.2; python_version == "2.7" or python_version == "{py_ver}"'), Requirement(f'covdefaults>=1.2; python_version == "2.7" or python_version == "{py_ver}"'),
@ -139,5 +163,5 @@ index 3802147..7f64d90 100644
for left, right in zip_longest(result, exp): for left, right in zip_longest(result, exp):
assert isinstance(right, Requirement) assert isinstance(right, Requirement)
-- --
2.51.1 2.49.0

102
plan.fmf
View file

@ -1,102 +0,0 @@
execute:
how: tmt
discover:
- name: rpms_pyproject-rpm-macros
how: shell
url: https://src.fedoraproject.org/rpms/pyproject-rpm-macros.git
tests:
- name: pyproject_pytest
path: /tests
test: ./mocktest.sh python-pytest
- name: pyproject_pluggy
path: /tests
test: ./mocktest.sh python-pluggy
- name: pyproject_openqa_client
path: /tests
test: ./mocktest.sh python-openqa_client
- name: same_repo
how: shell
dist-git-source: true
dist-git-download-only: true
tests:
- name: all_supplementing_pythons
test: ./tests/all_supplementing_pythons.py
- name: mock_with_tests
# Needs cwd to contain downloaded sources, path to mocktes.sh depends on tmt tree structure
test: |
cd $TMT_SOURCE_DIR &&
$TMT_TREE/../discover/rpms_pyproject-rpm-macros/tests/tests/mocktest.sh python-tox --enable-network --with ci_tests
- name: tests_python
how: shell
url: https://src.fedoraproject.org/tests/python.git
tests:
- name: smoke27
path: /smoke
test: VERSION=2.7 INSTALL_OR_SKIP=true METHOD=virtualenv TOX_REQUIRES="virtualenv<20.22.0" ./venv.sh
- name: smoke36
path: /smoke
test: VERSION=3.6 INSTALL_OR_SKIP=true TOX_REQUIRES="virtualenv<20.22.0" ./venv.sh
- name: smoke39
path: /smoke
test: VERSION=3.9 INSTALL_OR_SKIP=true ./venv.sh
- name: smoke310
path: /smoke
test: VERSION=3.10 INSTALL_OR_SKIP=true ./venv.sh
- name: smoke311
path: /smoke
test: VERSION=3.11 INSTALL_OR_SKIP=true ./venv.sh
- name: smoke312
path: /smoke
test: VERSION=3.12 ./venv.sh
- name: smoke313
path: /smoke
test: VERSION=3.13 INSTALL_OR_SKIP=true ./venv.sh
- name: smoke313t
path: /smoke
test: VERSION=3.13t INSTALL_OR_SKIP=true ./venv.sh
- name: smoke314
path: /smoke
test: VERSION=3.14 INSTALL_OR_SKIP=true ./venv.sh
- name: smoke314t
path: /smoke
test: VERSION=3.14t INSTALL_OR_SKIP=true ./venv.sh
- name: smoke315
path: /smoke
test: VERSION=3.15 INSTALL_OR_SKIP=true ./venv.sh
- name: smoke315t
path: /smoke
test: VERSION=3.15t INSTALL_OR_SKIP=true ./venv.sh
- name: smoke_pypy39
path: /smoke
test: PYTHON=pypy3.9 VERSION=3.9 INSTALL_OR_SKIP=true ./venv.sh
- name: smoke_pypy310
path: /smoke
test: PYTHON=pypy3.10 VERSION=3.10 INSTALL_OR_SKIP=true ./venv.sh
- name: smoke_pypy311
path: /smoke
test: PYTHON=pypy3.11 VERSION=3.11 INSTALL_OR_SKIP=true ./venv.sh
prepare:
- name: Install dependencies
how: install
package:
- gcc
- virtualenv
- python3-devel
- python3.12-devel
- python3-tox
- python3-dnf
- mock
- rpmdevtools
- rpm-build
- python3-pyyaml
- rpm
- dnf
- name: Update packages
how: shell
script: dnf upgrade -y
- name: rpm_qa
order: 100
how: shell
script: rpm -qa | sort | tee $TMT_PLAN_DATA/rpmqa.txt

View file

@ -20,7 +20,7 @@
%undefine _py3_shebang_s %undefine _py3_shebang_s
Name: python-tox Name: python-tox
Version: 4.33.0 Version: 4.26.0
Release: %autorelease Release: %autorelease
Summary: Virtualenv-based automation of test activities Summary: Virtualenv-based automation of test activities
@ -28,11 +28,11 @@ License: MIT
URL: https://tox.readthedocs.io/ URL: https://tox.readthedocs.io/
Source: %{pypi_source tox} Source: %{pypi_source tox}
# Remove usage of devpi-process. # Remove dependency on devpi-process.
# Remove coverage options. # Remove dependency on detect-test-pollution.
# Remove coverage-related dependencies.
# Adjust virtualenv environment variables to make it work with our patched virtualenv. # Adjust virtualenv environment variables to make it work with our patched virtualenv.
# Adjust setuptools-version specific ifs to check for setuptools version rather than Python version. # Adjust setuptools-version specific ifs to check for setuptools version rather than Python version.
# Ignore ResourceWarning: subprocess ... is still running (happens arbitrarily, possibly due to pytest-xdist usage)
Patch: fix-tests.patch Patch: fix-tests.patch
BuildArch: noarch BuildArch: noarch
@ -101,15 +101,10 @@ Recommends: python3-devel
# Upstream updates dependencies too aggressively # Upstream updates dependencies too aggressively
# see https://github.com/tox-dev/tox/pull/2843#discussion_r1065028356 # see https://github.com/tox-dev/tox/pull/2843#discussion_r1065028356
# First, carefully adjust the pins of build and runtime dependencies, sed -ri -e 's/"(packaging|filelock|platformdirs|psutil|pyproject-api|pytest|pytest-mock|pytest-xdist|wheel|pluggy|distlib|cachetools|build\[virtualenv\]|setuptools|flaky)>=.*/"\1",/g' \
# then remove all the >= specifiers from tests deps, whatever they are, -e 's/"(time-machine)>=[^;"]+/"\1/' \
# finally, remove undesired test dependencies.
sed -ri -e 's/"(packaging|filelock|platformdirs|pyproject-api|cachetools|hatch-vcs)>=.*/"\1",/g' \
-e 's/"(virtualenv)>=.*/"\1>=20.29",/g' \ -e 's/"(virtualenv)>=.*/"\1>=20.29",/g' \
-e 's/"(hatchling)>=.*/"\1>=1.13",/g' \ -e 's/"(hatchling)>=.*/"\1>=1.13",/g' \
-e 's/"(pluggy)>=.*/"\1>=1.5",/g' \
-e '/^test = \[/,/^\]/ { s/>=[^;"]+// }' \
-e '/^test = \[/,/^\]/ { /"(covdefaults|coverage|detect-test-pollution|devpi-process|diff-cover|pytest-cov)[;"]/d }' \
pyproject.toml pyproject.toml
%generate_buildrequires %generate_buildrequires
@ -167,7 +162,6 @@ k="${k-}${k+ and }not keyboard_interrupt"
k="${k-}${k+ and }not test_call_as_module" k="${k-}${k+ and }not test_call_as_module"
k="${k-}${k+ and }not test_call_as_exe" k="${k-}${k+ and }not test_call_as_exe"
k="${k-}${k+ and }not test_run_installpkg_targz" k="${k-}${k+ and }not test_run_installpkg_targz"
k="${k-}${k+ and }not test_pyproject_installpkg_pep517_envs"
test -z $VIRTUALENV_WHEEL && k="${k-}${k+ and }not test_result_json_sequential" test -z $VIRTUALENV_WHEEL && k="${k-}${k+ and }not test_result_json_sequential"
%endif %endif

View file

@ -1 +1 @@
SHA512 (tox-4.33.0.tar.gz) = e46a19ea92a556dc45a592a8d9567b863e072bd2ca8bc7866a3e4992f737fb29ff263a88cfd3cfaa9edaf4d097dd232d710ff9ac072bb16a98adcffea8fe3b70 SHA512 (tox-4.26.0.tar.gz) = ad2e311cd63c45a079b8c230a2feb364270b7a8bcf44b626385f8e442c6683ae841b3f34417b504f927608685a254fef3767d832fb5cfcc324c9cbf6ff7ea997

View file

@ -8,7 +8,7 @@ See https://lists.fedoraproject.org/archives/list/python-devel@lists.fedoraproje
This script: This script:
1) figures out all packages in the enabled repositories supplementing tox 1) figures out all packages in the enabled repositories supplementing tox
2) ensures there is a venv.sh test for each of them in plan.fmf 2) ensures there is a venv.sh test for each of them in tests.yml
That way, when we change tox (update, patch, etc.), That way, when we change tox (update, patch, etc.),
we will always test it with all Pythons that supplement it. we will always test it with all Pythons that supplement it.
@ -34,18 +34,16 @@ def parse_python_test_arg(command):
# First, construct a set of various Pythons we test, e.g. {python3.10, python3.7, pypy3.6, ...} # First, construct a set of various Pythons we test, e.g. {python3.10, python3.7, pypy3.6, ...}
tested_pythons = set() tested_pythons = set()
with open('plan.fmf') as f: with open('tests.yml') as f:
plan_fmf = yaml.safe_load(f) tests_yml = yaml.safe_load(f)
# this nested structure access is quite fragile, # this nested structure access is quite fragile,
# but at least it should fail the test if we reach to a wrong place # but at least it should fail the test if we reach to a wrong place
for discover_section in plan_fmf['discover']: for test in tests_yml[-1]['roles'][0]['tests']:
if discover_section['name'] != 'tests_python': for value in test.values():
continue run = value['run']
for test in discover_section['tests']: if run.endswith('./venv.sh'):
test_cmd = test['test'] tested_pythons.add(parse_python_test_arg(run))
if test_cmd.endswith('./venv.sh'): print('Tested Pythons found in tests.yml:', file=sys.stderr)
tested_pythons.add(parse_python_test_arg(test_cmd))
print('Tested Pythons found in plan.fmf:', file=sys.stderr)
for python in sorted(tested_pythons): for python in sorted(tested_pythons):
print(' ', python, file=sys.stderr) print(' ', python, file=sys.stderr)
@ -66,13 +64,10 @@ for nvra in supplementing_pkgs:
# We use this hack to treat -devel and -libs packages as if they were not such # We use this hack to treat -devel and -libs packages as if they were not such
# We also convert the freethreading packages to the exectuable name
def normalize_name(pkgname): def normalize_name(pkgname):
for suffix in '-devel', '-libs': for suffix in '-devel', '-libs':
if pkgname.endswith(suffix): if pkgname.endswith(suffix):
pkgname = pkgname.removesuffix(suffix) return pkgname.removesuffix(suffix)
if pkgname.endswith('-freethreading'):
pkgname = pkgname.removesuffix('-freethreading') + 't'
return pkgname return pkgname

91
tests/tests.yml Normal file
View file

@ -0,0 +1,91 @@
---
- hosts: localhost
tags:
- classic
tasks:
- dnf:
name: "*"
state: latest
- hosts: localhost
tags:
- classic
pre_tasks:
- import_role:
name: standard-test-source
vars:
fetch_only: True
roles:
- role: standard-test-basic
repositories:
- repo: "https://src.fedoraproject.org/tests/python.git"
dest: "python"
- repo: "https://src.fedoraproject.org/rpms/pyproject-rpm-macros.git"
dest: "pyproject-rpm-macros"
tests:
- mock_with_tests:
dir: .
run: pyproject-rpm-macros/tests/mocktest.sh python-tox --enable-network --with ci_tests
- all_supplementing_pythons:
dir: tests
run: ./all_supplementing_pythons.py
- smoke27:
dir: python/smoke
run: VERSION=2.7 INSTALL_OR_SKIP=true METHOD=virtualenv TOX_REQUIRES="virtualenv<20.22.0" ./venv.sh
- smoke36:
dir: python/smoke
run: VERSION=3.6 INSTALL_OR_SKIP=true TOX_REQUIRES="virtualenv<20.22.0" ./venv.sh
- smoke39:
dir: python/smoke
run: VERSION=3.9 INSTALL_OR_SKIP=true ./venv.sh
- smoke310:
dir: python/smoke
run: VERSION=3.10 INSTALL_OR_SKIP=true ./venv.sh
- smoke311:
dir: python/smoke
run: VERSION=3.11 INSTALL_OR_SKIP=true ./venv.sh
- smoke312:
dir: python/smoke
run: VERSION=3.12 ./venv.sh
- smoke313:
dir: python/smoke
run: VERSION=3.13 INSTALL_OR_SKIP=true ./venv.sh
- smoke313t:
dir: python/smoke
run: VERSION=3.13t INSTALL_OR_SKIP=true ./venv.sh
- smoke314:
dir: python/smoke
run: VERSION=3.14 INSTALL_OR_SKIP=true ./venv.sh
- smoke314t:
dir: python/smoke
run: VERSION=3.14t INSTALL_OR_SKIP=true ./venv.sh
- smoke_pypy39:
dir: python/smoke
run: PYTHON=pypy3.9 VERSION=3.9 INSTALL_OR_SKIP=true ./venv.sh
- smoke_pypy310:
dir: python/smoke
run: PYTHON=pypy3.10 VERSION=3.10 INSTALL_OR_SKIP=true ./venv.sh
- smoke_pypy311:
dir: python/smoke
run: PYTHON=pypy3.11 VERSION=3.11 INSTALL_OR_SKIP=true ./venv.sh
- pyproject_pytest:
dir: pyproject-rpm-macros/tests
run: ./mocktest.sh python-pytest
- pyproject_pluggy:
dir: pyproject-rpm-macros/tests
run: ./mocktest.sh python-pluggy
- pyproject_openqa_client:
dir: pyproject-rpm-macros/tests
run: ./mocktest.sh python-openqa_client
required_packages:
- gcc
- virtualenv
- python3-devel
- python3.12-devel
- python3-tox
- python3-dnf
- mock
- rpmdevtools
- rpm-build
- python3-pyyaml