Regenerate the repo when module-build-macros is reused to ensure it is in the buildroot.

This commit is contained in:
Jan Kaluza
2017-05-23 11:58:54 +02:00
parent 7d024e17c3
commit f27b0ddb81
2 changed files with 101 additions and 32 deletions

View File

@@ -22,11 +22,14 @@
import unittest
import mock
from mock import patch
import module_build_service.messaging
import module_build_service.scheduler.handlers.modules
import modulemd as _modulemd
import os
import vcr
import koji
from tests import conf, db, app, scheduler_init_data
from module_build_service import conf
base_dir = os.path.dirname(os.path.dirname(__file__))
@@ -78,3 +81,63 @@ class TestModuleWait(unittest.TestCase):
msg = module_build_service.messaging.MBSModule(msg_id=None, module_build_id=1,
module_build_state='some state')
self.fn(config=self.config, session=self.session, msg=msg)
@patch("module_build_service.builder.GenericBuilder.default_buildroot_groups",
return_value={'build': [], 'srpm-build': []})
@patch("module_build_service.builder.KojiModuleBuilder.get_session")
@patch("module_build_service.builder.GenericBuilder.create_from_module")
@patch('module_build_service.pdc')
def test_new_repo_called_when_macros_reused(
self, pdc, create_builder, koji_get_session, dbg):
"""
Test that newRepo is called when module-build-macros build is reused.
"""
with app.app_context():
pdc.get_module_tag.return_value = "module-testmodule-master-20170109091357"
scheduler_init_data()
koji_session = mock.MagicMock()
koji_session.newRepo.return_value = 123456
koji_get_session.return_value = koji_session
builder = mock.MagicMock()
builder.koji_session = koji_session
builder.module_build_tag = {"name": "module-123-build"}
builder.get_disttag_srpm.return_value = 'some srpm disttag'
builder.build.return_value = 1234, koji.BUILD_STATES['COMPLETE'], "", "module-build-macros-1-1"
create_builder.return_value = builder
msg = module_build_service.messaging.MBSModule(msg_id=None, module_build_id=1,
module_build_state='some state')
module_build_service.scheduler.handlers.modules.wait(
config=conf, session=db.session, msg=msg)
koji_session.newRepo.assert_called_once_with("module-123-build")
@patch("module_build_service.builder.GenericBuilder.default_buildroot_groups",
return_value={'build': [], 'srpm-build': []})
@patch("module_build_service.builder.KojiModuleBuilder.get_session")
@patch("module_build_service.builder.GenericBuilder.create_from_module")
@patch('module_build_service.pdc')
def test_new_repo_not_called_when_macros_not_reused(
self, pdc, create_builder, koji_get_session, dbg):
"""
Test that newRepo is not called when module-build-macros build is not reused.
"""
with app.app_context():
pdc.get_module_tag.return_value = "module-testmodule-master-20170109091357"
scheduler_init_data()
koji_session = mock.MagicMock()
koji_session.newRepo.return_value = 123456
koji_get_session.return_value = koji_session
builder = mock.MagicMock()
builder.koji_session = koji_session
builder.module_build_tag = {"name": "module-123-build"}
builder.get_disttag_srpm.return_value = 'some srpm disttag'
builder.build.return_value = 1234, koji.BUILD_STATES['BUILDING'], "", "module-build-macros-1-1"
create_builder.return_value = builder
msg = module_build_service.messaging.MBSModule(msg_id=None, module_build_id=1,
module_build_state='some state')
module_build_service.scheduler.handlers.modules.wait(
config=conf, session=db.session, msg=msg)
self.assertTrue(not koji_session.newRepo.called)