test buildroot_read() incl. FakeKojiModuleBuilder and FakeKojiSession

This commit is contained in:
Filip Valder
2016-11-18 14:39:27 +01:00
parent 99c3c1e717
commit 9b808d4354

View File

@@ -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'}