Files
fm-orchestrator/tests/integration/test_v3_buildrequire.py
2021-04-21 16:31:48 -04:00

43 lines
1.5 KiB
Python

# -*- coding: utf-8 -*-
# SPDX-License-Identifier: MIT
def test_v3_buildrequire(mbs, clone_and_start_build):
"""Test buildrequire fields in the v3-packager mmd.
Preconditions:
* 2 contexts defined in mmd, one of which 'build-requires' another module
(as well as a koji-resolver enabled platform).
* Build-required module is tagged in koji with koji_tag_with_modules from said platform.
Steps:
* Submit a build.
* Wait until the build(s) are in build state.
* Cancel the build(s).
Checks:
* That that number of builds produced is equal to the number of configurations.
* That each build has expected buildrequires items.
"""
repo, builds = clone_and_start_build()
contexts = {
cfg["context"]: cfg for cfg in repo.modulemd["data"]["configurations"]
}
assert len(builds) == len(contexts)
for build in builds:
mbs.wait_for_module_build(build, lambda bld: bld.get("state") >= 2)
ctx = build.module_build_data["context"]
assert ctx in contexts
for buildrequire, data in build.module_build_data["buildrequires"].items():
if buildrequire == "platform":
mmd_platform = contexts[ctx]["platform"]
assert data["stream"] == mmd_platform \
if mmd_platform.endswith(".z") else f"{mmd_platform}.z"
continue
assert buildrequire in contexts[ctx]["buildrequires"]
assert data["stream"] == contexts[ctx]["buildrequires"][buildrequire][0]