more choose_taskarch testing

This commit is contained in:
Mike McLean 2016-10-19 20:38:08 -04:00
parent 695ded30c8
commit 2062515663

View file

@ -4,6 +4,7 @@ import sys
import mock
import rpm
import tempfile
import koji
from loadkojid import kojid
@ -20,21 +21,46 @@ class FakeHeader(dict):
class TestChooseTaskarch(unittest.TestCase):
def setUp(self):
# set up task handler
task_id = 99
method = 'build'
params = []
self.session = mock.MagicMock()
self.options = mock.MagicMock()
self.options.literal_task_arches = ''
workdir = tempfile.mkdtemp()
self.handler = kojid.BuildTask(task_id, method, params, self.session,
self.options, workdir)
# mock some more things
self.handler.event_id = 42
self.readSRPMHeader = mock.MagicMock()
self.handler.readSRPMHeader = self.readSRPMHeader
self.getBuildConfig = mock.MagicMock()
self.session.getBuildConfig = self.getBuildConfig
self.getBuildConfig.return_value = {'arches': 'armv7hl i686 x86_64 ppc64'}
def test_noarch(self):
self.readSRPMHeader.return_value = FakeHeader(buildarchs=['noarch'],
exclusivearch=[], excludearch=[])
self.handler.choose_taskarch('noarch', 'srpm', 'build_tag')
def test_binary_arches(self):
for arch in ['i386', 'i686', 'x86_64', 'ppc', 'ppc64le', 's390',
's390x']:
result = self.handler.choose_taskarch(arch, 'srpm', 'build_tag')
self.assertEqual(result, koji.canonArch(arch))
def test_basic_noarch(self):
self.readSRPMHeader.return_value = FakeHeader(
buildarchs=['noarch'], exclusivearch=[], excludearch=[])
result = self.handler.choose_taskarch('noarch', 'srpm', 'build_tag')
self.assertEqual(result, 'noarch')
def test_excluded_arch(self):
# random choice involved, so we repeat this a few times
for i in range(20):
self.readSRPMHeader.return_value = FakeHeader(
buildarchs=['noarch'], exclusivearch=[], excludearch=['ppc64'])
result = self.handler.choose_taskarch('noarch', 'srpm', 'build_tag')
self.assertNotEqual(result, 'noarch')
self.assertNotEqual(result, 'ppc64')
assert result in self.getBuildConfig()['arches'].split()