mirror of
https://pagure.io/fm-orchestrator.git
synced 2026-04-09 05:38:04 +08:00
test buildroot_read() incl. FakeKojiModuleBuilder and FakeKojiSession
This commit is contained in:
@@ -21,7 +21,10 @@
|
||||
# Written by Jan Kaluza <jkaluza@redhat.com>
|
||||
|
||||
import unittest
|
||||
import munch
|
||||
import mock
|
||||
import koji
|
||||
import xmlrpclib
|
||||
|
||||
import module_build_service.messaging
|
||||
import module_build_service.scheduler.handlers.repos
|
||||
@@ -32,6 +35,8 @@ from mock import patch
|
||||
|
||||
from tests import conf
|
||||
|
||||
from module_build_service.builder import KojiModuleBuilder
|
||||
|
||||
|
||||
class TestKojiBuilder(unittest.TestCase):
|
||||
|
||||
@@ -51,15 +56,46 @@ class TestKojiBuilder(unittest.TestCase):
|
||||
self.assertEquals(repo, "https://kojipkgs.stg.fedoraproject.org/repos"
|
||||
"/module-base-runtime-0.25-9/latest/x86_64")
|
||||
|
||||
@patch('koji.util.checkForBuilds')
|
||||
@patch('koji.util')
|
||||
def test_buildroot_ready(self, mocked_kojiutil):
|
||||
|
||||
def mocked_checkForBuilds(*args, **kwargs):
|
||||
raise IOError
|
||||
attrs = {'checkForBuilds.return_value': None,
|
||||
'checkForBuilds.side_effect': IOError}
|
||||
mocked_kojiutil.configure_mock(**attrs)
|
||||
fake_kmb = FakeKojiModuleBuilder(owner='Moe Szyslak',
|
||||
module='nginx',
|
||||
config=conf,
|
||||
tag_name='module-nginx-1.2')
|
||||
fake_kmb.module_target = {'build_tag': 'fake_tag'}
|
||||
|
||||
mocked_kojiutil.return_value.checkForBuilds = mocked_checkForBuilds
|
||||
kmb = module_build_service.builder.KojiModuleBuilder(owner='Moe Szyslak',
|
||||
module='nginx',
|
||||
config=conf,
|
||||
tag_name='module-nginx-1.2')
|
||||
kmb.buildroot_ready()
|
||||
with self.assertRaises(IOError):
|
||||
fake_kmb.buildroot_ready()
|
||||
self.assertEquals(mocked_kojiutil.checkForBuilds.call_count, 5)
|
||||
|
||||
|
||||
class FakeKojiModuleBuilder(KojiModuleBuilder):
|
||||
|
||||
@module_build_service.utils.retry(wait_on=(xmlrpclib.ProtocolError, koji.GenericError))
|
||||
def get_session(self, config, owner):
|
||||
koji_config = munch.Munch(koji.read_config(
|
||||
profile_name=config.koji_profile,
|
||||
user_config=config.koji_config,
|
||||
))
|
||||
|
||||
address = koji_config.server
|
||||
|
||||
koji_session = FakeKojiSession(address, opts=koji_config)
|
||||
|
||||
return koji_session
|
||||
|
||||
|
||||
class FakeKojiSession(koji.ClientSession):
|
||||
|
||||
def _callMethod(self, name, args, kwargs=None):
|
||||
pass
|
||||
|
||||
def _setup_connection(self):
|
||||
pass
|
||||
|
||||
def getRepo(self, tag):
|
||||
return {'create_event': 'fake event'}
|
||||
|
||||
Reference in New Issue
Block a user