mirror of
https://pagure.io/fm-orchestrator.git
synced 2026-06-27 23:46:33 +08:00
unit tests
This commit is contained in:
@@ -24,3 +24,4 @@ data:
|
|||||||
requires: {}
|
requires: {}
|
||||||
mse: true
|
mse: true
|
||||||
koji_tag: module-f28-build
|
koji_tag: module-f28-build
|
||||||
|
koji_side_tag_format: module-f28-{side_tag}-build
|
||||||
|
|||||||
@@ -99,6 +99,33 @@ class TestDBModule:
|
|||||||
"testmodule", "master", "20170109091357", "78e4a6fd").keys()
|
"testmodule", "master", "20170109091357", "78e4a6fd").keys()
|
||||||
assert set(result) == expected
|
assert set(result) == expected
|
||||||
|
|
||||||
|
@pytest.mark.parametrize("missing_format", [False, True])
|
||||||
|
def test_get_module_build_dependencies_side_tag(
|
||||||
|
self, missing_format, reuse_component_init_data):
|
||||||
|
"""
|
||||||
|
Test that we get the correct base module tag when a side tag is specified
|
||||||
|
"""
|
||||||
|
platform = models.ModuleBuild.get_by_id(db_session, 1)
|
||||||
|
module = models.ModuleBuild.get_by_id(db_session, 2)
|
||||||
|
mmd = module.mmd()
|
||||||
|
xmd = mmd.get_xmd()
|
||||||
|
side_tag = "SIDETAG"
|
||||||
|
expected = {"module-f28-SIDETAG-build"}
|
||||||
|
xmd["mbs"]["side_tag"] = side_tag
|
||||||
|
mmd.set_xmd(xmd)
|
||||||
|
if missing_format:
|
||||||
|
# remove koji_tag_format from our platform
|
||||||
|
platform_mmd = platform.mmd()
|
||||||
|
platform_xmd = platform_mmd.get_xmd()
|
||||||
|
del platform_xmd["mbs"]["koji_side_tag_format"]
|
||||||
|
platform_mmd.set_xmd(platform_xmd)
|
||||||
|
platform.modulemd = mmd_to_str(mmd)
|
||||||
|
db_session.commit()
|
||||||
|
expected = {"module-f28-build"}
|
||||||
|
resolver = mbs_resolver.GenericResolver.create(db_session, conf, backend="db")
|
||||||
|
result = resolver.get_module_build_dependencies(mmd=mmd).keys()
|
||||||
|
assert set(result) == expected
|
||||||
|
|
||||||
def test_get_module_build_dependencies_recursive(self, reuse_component_init_data):
|
def test_get_module_build_dependencies_recursive(self, reuse_component_init_data):
|
||||||
"""
|
"""
|
||||||
Tests that the buildrequires are returned when it is two layers deep
|
Tests that the buildrequires are returned when it is two layers deep
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ from module_build_service.common.utils import (mmd_to_str, load_mmd,
|
|||||||
from module_build_service.scheduler.db_session import db_session
|
from module_build_service.scheduler.db_session import db_session
|
||||||
from module_build_service.web.submit import (
|
from module_build_service.web.submit import (
|
||||||
get_prefixed_version, submit_module_build, submit_module_build_from_yaml,
|
get_prefixed_version, submit_module_build, submit_module_build_from_yaml,
|
||||||
process_module_context_configuration
|
process_module_context_configuration, _apply_side_tag,
|
||||||
)
|
)
|
||||||
from tests import (
|
from tests import (
|
||||||
scheduler_init_data,
|
scheduler_init_data,
|
||||||
@@ -218,6 +218,53 @@ class TestProcessModuleContextConfiguration:
|
|||||||
assert stream.is_static_context()
|
assert stream.is_static_context()
|
||||||
|
|
||||||
|
|
||||||
|
class TestApplySideTag:
|
||||||
|
def get_mmd(self):
|
||||||
|
yaml_str = """
|
||||||
|
document: modulemd
|
||||||
|
version: 2
|
||||||
|
data:
|
||||||
|
name: app
|
||||||
|
stream: test
|
||||||
|
summary: "A test module"
|
||||||
|
description: >
|
||||||
|
"A test module stream"
|
||||||
|
license:
|
||||||
|
module: [ MIT ]
|
||||||
|
dependencies:
|
||||||
|
- buildrequires:
|
||||||
|
platform: []
|
||||||
|
gtk: []
|
||||||
|
requires:
|
||||||
|
platform: []
|
||||||
|
gtk: []
|
||||||
|
"""
|
||||||
|
return load_mmd(yaml_str)
|
||||||
|
|
||||||
|
def test_apply_side_tag(self):
|
||||||
|
"""
|
||||||
|
Test that the side tag option is correctly added into the xmd
|
||||||
|
"""
|
||||||
|
mmd = self.get_mmd()
|
||||||
|
side_tag = "SIDETAG"
|
||||||
|
_apply_side_tag(mmd, {"side_tag": side_tag})
|
||||||
|
|
||||||
|
xmd = mmd.get_xmd()
|
||||||
|
assert xmd["mbs"]["side_tag"] == side_tag
|
||||||
|
|
||||||
|
def test_apply_side_tag_no_option(self):
|
||||||
|
"""
|
||||||
|
Test that the xmd is unchanged when option not given
|
||||||
|
"""
|
||||||
|
mmd = self.get_mmd()
|
||||||
|
xmd_orig = mmd.get_xmd()
|
||||||
|
_apply_side_tag(mmd, {})
|
||||||
|
|
||||||
|
xmd = mmd.get_xmd()
|
||||||
|
assert xmd == xmd_orig
|
||||||
|
assert "side_tag" not in xmd.get("mbs", {})
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.usefixtures("reuse_component_init_data")
|
@pytest.mark.usefixtures("reuse_component_init_data")
|
||||||
class TestUtilsComponentReuse:
|
class TestUtilsComponentReuse:
|
||||||
@mock.patch("module_build_service.web.submit.submit_module_build")
|
@mock.patch("module_build_service.web.submit.submit_module_build")
|
||||||
|
|||||||
Reference in New Issue
Block a user