Check dependencies in reuse

Signed-off-by: Valerij Maljulin <vmaljuli@redhat.com>
This commit is contained in:
Valerij Maljulin
2019-07-18 07:44:37 +02:00
parent 308f5bc7cf
commit 5fb6a2f28a
6 changed files with 151 additions and 62 deletions

View File

@@ -233,9 +233,18 @@ class TestUtilsComponentReuse:
mmd = second_module_build.mmd()
xmd = mmd.get_xmd()
xmd["mbs"]["buildrequires"]["platform"]["stream"] = "different"
deps = Modulemd.Dependencies()
deps.add_buildtime_stream("platform", "different")
deps.add_runtime_stream("platform", "different")
mmd.clear_dependencies()
mmd.add_dependencies(deps)
mmd.set_xmd(xmd)
second_module_build.modulemd = mmd_to_str(mmd)
second_module_build.build_context = "37c6c57bedf4305ef41249c1794760b5cb8fad17"
second_module_build.build_context = \
module_build_service.models.ModuleBuild.contexts_from_mmd(
second_module_build.modulemd
).build_context
second_module_build.rebuild_strategy = rebuild_strategy
db_session.commit()
@@ -614,8 +623,11 @@ class TestUtils:
current `new_module`. In this case, reuse code should still be able to
reuse the components.
"""
old_module = models.ModuleBuild.get_by_id(db_session, 2)
new_module = models.ModuleBuild.get_by_id(db_session, 3)
rv = module_build_service.utils.get_reusable_component(db_session, new_module, "llvm")
rv = module_build_service.utils.get_reusable_component(
db_session, new_module, "llvm", previous_module_build=old_module
)
assert rv.package == "llvm"
def test_validate_koji_tag_wrong_tag_arg_during_programming(self):
@@ -1499,17 +1511,14 @@ class TestOfflineLocalBuilds:
assert module_build
@pytest.mark.usefixtures("reuse_component_init_data")
class TestUtilsModuleReuse:
def setup_method(self, test_method):
init_data()
def teardown_method(self, test_method):
clean_database()
def test_get_reusable_module_when_reused_module_not_set(self, db_session):
module = db_session.query(models.ModuleBuild).filter_by(
name="nginx").order_by(models.ModuleBuild.id.desc()).first()
module = db_session.query(models.ModuleBuild)\
.filter_by(name="testmodule")\
.order_by(models.ModuleBuild.id.desc())\
.first()
module.state = models.BUILD_STATES["build"]
db_session.commit()
@@ -1522,8 +1531,10 @@ class TestUtilsModuleReuse:
assert reusable_module.id == module.reused_module_id
def test_get_reusable_module_when_reused_module_already_set(self, db_session):
modules = db_session.query(models.ModuleBuild).filter_by(
name="nginx").order_by(models.ModuleBuild.id.desc()).limit(2).all()
modules = db_session.query(models.ModuleBuild)\
.filter_by(name="testmodule")\
.order_by(models.ModuleBuild.id.desc())\
.limit(2).all()
build_module = modules[0]
reused_module = modules[1]
build_module.state = models.BUILD_STATES["build"]

View File

@@ -503,7 +503,7 @@ class TestUtilsModuleStreamExpansion:
mmd.remove_dependencies(deps)
mmd.add_dependencies(new_deps)
mmds = module_build_service.utils.mse._get_base_module_mmds(db_session, mmd)
mmds = module_build_service.utils.mse.get_base_module_mmds(db_session, mmd)
expected = set(["platform:f29.0.0", "platform:f29.1.0", "platform:f29.2.0"])
# Verify no duplicates were returned before doing set operations
assert len(mmds["ready"]) == len(expected)
@@ -530,7 +530,7 @@ class TestUtilsModuleStreamExpansion:
"platform:lp29.1.1:12:c11",
db_session=db_session, virtual_streams=virtual_streams)
mmds = module_build_service.utils.mse._get_base_module_mmds(db_session, mmd)
mmds = module_build_service.utils.mse.get_base_module_mmds(db_session, mmd)
if virtual_streams == ["f29"]:
expected = set(
["platform:f29.0.0", "platform:f29.1.0", "platform:f29.2.0", "platform:lp29.1.1"])
@@ -568,7 +568,7 @@ class TestUtilsModuleStreamExpansion:
mmd.remove_dependencies(deps)
mmd.add_dependencies(new_deps)
mmds = module_build_service.utils.mse._get_base_module_mmds(db_session, mmd)
mmds = module_build_service.utils.mse.get_base_module_mmds(db_session, mmd)
expected = {}
expected["ready"] = set(["platform:foo29", "platform:foo30"])
expected["garbage"] = set(["platform:foo28"])