mirror of
https://pagure.io/fm-orchestrator.git
synced 2026-04-13 20:10:05 +08:00
Make our builders into setuptools plugins.
This commit is contained in:
@@ -1,17 +1,10 @@
|
||||
from module_build_service import conf
|
||||
import pkg_resources
|
||||
|
||||
from base import GenericBuilder
|
||||
from KojiModuleBuilder import KojiModuleBuilder
|
||||
from MockModuleBuilder import MockModuleBuilder
|
||||
|
||||
__all__ = [
|
||||
GenericBuilder
|
||||
]
|
||||
|
||||
|
||||
GenericBuilder.register_backend_class(KojiModuleBuilder)
|
||||
|
||||
GenericBuilder.register_backend_class(MockModuleBuilder)
|
||||
|
||||
if conf.system == "copr":
|
||||
from CoprModuleBuilder import CoprModuleBuilder
|
||||
GenericBuilder.register_backend_class(CoprModuleBuilder)
|
||||
for entrypoint in pkg_resources.iter_entry_points('mbs.builder_backends'):
|
||||
GenericBuilder.register_backend_class(entrypoint.load())
|
||||
|
||||
9
setup.py
9
setup.py
@@ -33,7 +33,14 @@ setup(name='module-build-service',
|
||||
'fedmsg = module_build_service.messaging:_fedmsg_backend',
|
||||
'in_memory = module_build_service.messaging:_in_memory_backend',
|
||||
# 'custom = your_organization:_custom_backend',
|
||||
]
|
||||
],
|
||||
'mbs.builder_backends': [
|
||||
'koji = module_build_service.builder.KojiModuleBuilder:KojiModuleBuilder',
|
||||
'mock = module_build_service.builder.MockModuleBuilder:MockModuleBuilder',
|
||||
# TODO - let's move this out into its own repo so @frostyx can
|
||||
# iterate without us blocking him.
|
||||
'copr = module_build_service.builder.CoprModuleBuilder:CoprModuleBuilder',
|
||||
],
|
||||
},
|
||||
scripts=["contrib/mbs-build"],
|
||||
data_files=[('/etc/module-build-service/', ['conf/cacert.pem',
|
||||
|
||||
@@ -58,14 +58,20 @@ class TestRepoDone(unittest.TestCase):
|
||||
module_build_service.scheduler.handlers.repos.done(
|
||||
config=conf, session=db.session, msg=msg)
|
||||
|
||||
@mock.patch('module_build_service.builder.KojiModuleBuilder.KojiModuleBuilder.get_average_build_time',
|
||||
@mock.patch('module_build_service.builder.KojiModuleBuilder.'
|
||||
'KojiModuleBuilder.get_average_build_time',
|
||||
return_value=0.0)
|
||||
@mock.patch('module_build_service.builder.KojiModuleBuilder.KojiModuleBuilder.list_tasks_for_components',
|
||||
@mock.patch('module_build_service.builder.KojiModuleBuilder.'
|
||||
'KojiModuleBuilder.list_tasks_for_components',
|
||||
return_value=[])
|
||||
@mock.patch('module_build_service.builder.KojiModuleBuilder.KojiModuleBuilder.buildroot_ready', return_value=True)
|
||||
@mock.patch('module_build_service.builder.KojiModuleBuilder.KojiModuleBuilder.get_session')
|
||||
@mock.patch('module_build_service.builder.KojiModuleBuilder.KojiModuleBuilder.build')
|
||||
@mock.patch('module_build_service.builder.KojiModuleBuilder.KojiModuleBuilder.buildroot_connect')
|
||||
@mock.patch('module_build_service.builder.KojiModuleBuilder.'
|
||||
'KojiModuleBuilder.buildroot_ready', return_value=True)
|
||||
@mock.patch('module_build_service.builder.KojiModuleBuilder.'
|
||||
'KojiModuleBuilder.get_session')
|
||||
@mock.patch('module_build_service.builder.KojiModuleBuilder.'
|
||||
'KojiModuleBuilder.build')
|
||||
@mock.patch('module_build_service.builder.KojiModuleBuilder.'
|
||||
'KojiModuleBuilder.buildroot_connect')
|
||||
def test_a_single_match(self, connect, build_fn, get_session, ready, list_tasks_fn, mock_gabt):
|
||||
""" Test that when a repo msg hits us and we have a single match.
|
||||
"""
|
||||
@@ -81,14 +87,20 @@ class TestRepoDone(unittest.TestCase):
|
||||
source=('git://pkgs.domain.local/rpms/communicator'
|
||||
'?#da95886c8a443b36a9ce31abda1f9bed22f2f9c2'))
|
||||
|
||||
@mock.patch('module_build_service.builder.KojiModuleBuilder.KojiModuleBuilder.get_average_build_time',
|
||||
@mock.patch('module_build_service.builder.KojiModuleBuilder.'
|
||||
'KojiModuleBuilder.get_average_build_time',
|
||||
return_value=0.0)
|
||||
@mock.patch('module_build_service.builder.KojiModuleBuilder.KojiModuleBuilder.list_tasks_for_components',
|
||||
@mock.patch('module_build_service.builder.KojiModuleBuilder.'
|
||||
'KojiModuleBuilder.list_tasks_for_components',
|
||||
return_value=[])
|
||||
@mock.patch('module_build_service.builder.KojiModuleBuilder.KojiModuleBuilder.buildroot_ready', return_value=True)
|
||||
@mock.patch('module_build_service.builder.KojiModuleBuilder.KojiModuleBuilder.get_session')
|
||||
@mock.patch('module_build_service.builder.KojiModuleBuilder.KojiModuleBuilder.build')
|
||||
@mock.patch('module_build_service.builder.KojiModuleBuilder.KojiModuleBuilder.buildroot_connect')
|
||||
@mock.patch('module_build_service.builder.KojiModuleBuilder.'
|
||||
'KojiModuleBuilder.buildroot_ready', return_value=True)
|
||||
@mock.patch('module_build_service.builder.KojiModuleBuilder.'
|
||||
'KojiModuleBuilder.get_session')
|
||||
@mock.patch('module_build_service.builder.KojiModuleBuilder.'
|
||||
'KojiModuleBuilder.build')
|
||||
@mock.patch('module_build_service.builder.KojiModuleBuilder.'
|
||||
'KojiModuleBuilder.buildroot_connect')
|
||||
def test_a_single_match_build_fail(self, connect, build_fn, config, ready, list_tasks_fn,
|
||||
mock_gabt):
|
||||
""" Test that when a KojiModuleBuilder.build fails, the build is
|
||||
@@ -131,12 +143,17 @@ class TestRepoDone(unittest.TestCase):
|
||||
# Make sure the module build didn't transition since all the components weren't tagged
|
||||
self.assertEqual(module_build.state, module_build_service.models.BUILD_STATES['build'])
|
||||
|
||||
@mock.patch('module_build_service.builder.KojiModuleBuilder.KojiModuleBuilder.list_tasks_for_components',
|
||||
@mock.patch('module_build_service.builder.KojiModuleBuilder.'
|
||||
'KojiModuleBuilder.list_tasks_for_components',
|
||||
return_value=[])
|
||||
@mock.patch('module_build_service.builder.KojiModuleBuilder.KojiModuleBuilder.buildroot_ready', return_value=True)
|
||||
@mock.patch('module_build_service.builder.KojiModuleBuilder.KojiModuleBuilder.get_session')
|
||||
@mock.patch('module_build_service.builder.KojiModuleBuilder.KojiModuleBuilder.build')
|
||||
@mock.patch('module_build_service.builder.KojiModuleBuilder.KojiModuleBuilder.buildroot_connect')
|
||||
@mock.patch('module_build_service.builder.KojiModuleBuilder.'
|
||||
'KojiModuleBuilder.buildroot_ready', return_value=True)
|
||||
@mock.patch('module_build_service.builder.KojiModuleBuilder.'
|
||||
'KojiModuleBuilder.get_session')
|
||||
@mock.patch('module_build_service.builder.KojiModuleBuilder.'
|
||||
'KojiModuleBuilder.build')
|
||||
@mock.patch('module_build_service.builder.KojiModuleBuilder.'
|
||||
'KojiModuleBuilder.buildroot_connect')
|
||||
@mock.patch("module_build_service.builder.GenericBuilder.default_buildroot_groups",
|
||||
return_value={'build': [], 'srpm-build': []})
|
||||
def test_failed_component_build(self, dbg, connect, build_fn, config, ready, list_tasks_fn):
|
||||
|
||||
Reference in New Issue
Block a user