mirror of
https://pagure.io/fm-orchestrator.git
synced 2026-03-22 13:00:09 +08:00
40 lines
1.5 KiB
Python
40 lines
1.5 KiB
Python
def test_buildonly(clone_and_start_build, mbs):
|
|
"""Test the buildonly attribute
|
|
|
|
Preconditions:
|
|
* modulemd with at least 1 'buildonly = true' RPM component.
|
|
|
|
Steps:
|
|
* Start the module build and wait for it to finish.
|
|
* Assert that the expected filter field was created in the module metadata.
|
|
"""
|
|
|
|
repo, builds = clone_and_start_build
|
|
|
|
# Check the original modulemd
|
|
modulemd = repo.modulemd
|
|
assert not modulemd["data"].get("filter")
|
|
assert modulemd["data"]["components"].get("rpms")
|
|
rpms = modulemd["data"]["components"].get("rpms")
|
|
|
|
build_only_rpms = [k for k, v in rpms.items() if bool(v.get("buildonly"))]
|
|
other_rpms = [k for k, v in rpms.items() if not bool(v.get("buildonly"))]
|
|
|
|
assert build_only_rpms, "No RPM has 'buildonly' field set to true"
|
|
|
|
# Wait until our build is ready
|
|
build_id = builds[0].id
|
|
mbs.wait_for_module_build_to_succeed(build_id, timeout=(60 * 60), interval=30)
|
|
|
|
# assert filter field in final modulemd
|
|
modulemd = mbs.get_module_build(build_id).get_modulemd()
|
|
assert modulemd["data"]["filter"], "No filters in the build metadata."
|
|
assert modulemd["data"]["filter"]["rpms"], "No RPM filters in the build metadata."
|
|
msg = "Expected RPM '{}' not found in the finished build filters."
|
|
for rpm in build_only_rpms:
|
|
assert rpm in modulemd["data"]["filter"]["rpms"], msg.format(rpm)
|
|
|
|
msg = "Not expected RPM '{}' found in the finished build filters."
|
|
for rpm in other_rpms:
|
|
assert rpm not in modulemd["data"]["filter"]["rpms"], msg.format(rpm)
|