From 46f27ce3ed89550acc2f2a3a32a46193e6c81dc4 Mon Sep 17 00:00:00 2001 From: jobrauer Date: Thu, 11 Mar 2021 15:02:41 +0100 Subject: [PATCH] Integration tests: enable parameters for clone_and_start_build fixture. --- tests/integration/conftest.py | 21 +++++++++++++++++---- tests/integration/test_buildonly.py | 2 +- tests/integration/test_rest_build_state.py | 2 +- tests/integration/test_static_context.py | 2 +- 4 files changed, 20 insertions(+), 7 deletions(-) diff --git a/tests/integration/conftest.py b/tests/integration/conftest.py index 9ee8b7eb..fdcfa496 100644 --- a/tests/integration/conftest.py +++ b/tests/integration/conftest.py @@ -96,10 +96,23 @@ def clone_and_start_build(repo, pkg_util): :rtype utils.Repo, list: """ repo.bump() - builds = pkg_util.run("--optional", "rebuild_strategy=all") - yield repo, builds - for build in builds: - pkg_util.cancel(build, ignore_errors=True) + _builds = [] + _cancel = True + + def _build(*args, cancel=True, **kwargs): + nonlocal _builds, _cancel + options = [str(i) for i in args] + builds = pkg_util.run(*options, **kwargs) + if not builds: + raise AssertionError(f"Packaging utility args={options} did not produce any builds") + _builds, _cancel = (builds, cancel) + return repo, builds + + yield _build + + if _cancel: + for build in _builds: + pkg_util.cancel(build, ignore_errors=True) @pytest.fixture(scope="function") diff --git a/tests/integration/test_buildonly.py b/tests/integration/test_buildonly.py index 2bf0ffac..49b54ec6 100644 --- a/tests/integration/test_buildonly.py +++ b/tests/integration/test_buildonly.py @@ -9,7 +9,7 @@ def test_buildonly(clone_and_start_build, mbs): * Assert that the expected filter field was created in the module metadata. """ - repo, builds = clone_and_start_build + repo, builds = clone_and_start_build("--optional", "rebuild_strategy=all") # Check the original modulemd modulemd = repo.modulemd diff --git a/tests/integration/test_rest_build_state.py b/tests/integration/test_rest_build_state.py index 3301d96e..a0dc44fd 100644 --- a/tests/integration/test_rest_build_state.py +++ b/tests/integration/test_rest_build_state.py @@ -8,7 +8,7 @@ def test_rest_module_build(clone_and_start_build, mbs, koji, pkg_util): * There is no need for exhaustive testing of the REST API here, as extensive coverage of it is already implemented in tests/test_web/test_views.py. """ - repo, builds = clone_and_start_build + repo, builds = clone_and_start_build("--optional", "rebuild_strategy=all") assert len(builds) >= 1 username = getpass.getuser() diff --git a/tests/integration/test_static_context.py b/tests/integration/test_static_context.py index ff74c231..5f9cd474 100644 --- a/tests/integration/test_static_context.py +++ b/tests/integration/test_static_context.py @@ -1,6 +1,6 @@ def test_static_context(clone_and_start_build, mbs): - repo, builds = clone_and_start_build + repo, builds = clone_and_start_build("--optional", "rebuild_strategy=all") static_contexts = repo.modulemd["data"]["xmd"]["mbs_options"]["contexts"]