From f0b3f0d90f73ef5cf5d1dce72b033340b63f2745 Mon Sep 17 00:00:00 2001 From: Colin Goutte Date: Thu, 2 May 2024 15:17:35 +0200 Subject: [PATCH] Add build for different python versions --- multiple_python_version/Makefile | 7 ++++- .../build_python_version.py | 27 +++++++++++++++++++ multiple_python_version/test_build.py | 22 +++++++++++++++ 3 files changed, 55 insertions(+), 1 deletion(-) create mode 100644 multiple_python_version/build_python_version.py create mode 100644 multiple_python_version/test_build.py diff --git a/multiple_python_version/Makefile b/multiple_python_version/Makefile index 9595a95..0520db1 100644 --- a/multiple_python_version/Makefile +++ b/multiple_python_version/Makefile @@ -10,6 +10,10 @@ pytest=$(python) -m pytest py_install=$(python) -m pip +ignorebuild_opt = +ifdef nobuild + ignorebuild_opt = --ignore=test_build.py +endif .venv3.$(minor): $(PYTHON) -m venv $(venv) @@ -18,7 +22,8 @@ py_install=$(python) -m pip test: venv $(pytest) --version || make install - $(pytest) -sv --durations=5 --ignore-glob=sample_* . + echo $(ignorebuild_opt) + $(pytest) -sv --durations=5 $(ignorebuild_opt) qtest: venv $(pytest) --lf --ff -v --durations=5 . diff --git a/multiple_python_version/build_python_version.py b/multiple_python_version/build_python_version.py new file mode 100644 index 0000000..7da459d --- /dev/null +++ b/multiple_python_version/build_python_version.py @@ -0,0 +1,27 @@ +first = 6 +last = 12 + +minors = [f"{minor}" for minor in range(first, last + 1)] +commands = [("make", "build", f"minor={minor}", "notestbuild=1") for minor in minors] + + +def create_build_run_params(minor): + return ("make", "build", f"minor={minor}", "nobuild=1") + + +def silent_call(*command_args): + from subprocess import run + + ran = run(command_args) + return ran.returncode == 0 + + +def build(minor): + return silent_call(*create_build_run_params(minor)) + + +if __name__ == "__main__": + for command in commands: + import os + + os.system(" ".join(command)) diff --git a/multiple_python_version/test_build.py b/multiple_python_version/test_build.py new file mode 100644 index 0000000..89e2a4e --- /dev/null +++ b/multiple_python_version/test_build.py @@ -0,0 +1,22 @@ +import build_python_version +import pytest + + +def test_todo(): + assert ( + tuple("make build minor=11 notestbuild=1".split(" ")) + in build_python_version.commands + ) + + +def test_build_exit_code(): + assert build_python_version.silent_call("ls", "-la") is True + assert build_python_version.silent_call("true") is True + assert build_python_version.silent_call("false") is False + + +@pytest.mark.parametrize("minor", [*build_python_version.minors]) +def test_build_version(minor): + assert build_python_version.build(minor) + + pass