from unittest import mock import unittest import kojihub class TestGetBuildConfig(unittest.TestCase): @mock.patch('kojihub.kojihub.readFullInheritance') @mock.patch('kojihub.kojihub.get_tag') def test_simple_tag(self, get_tag, readFullInheritance): tag = 'tag_name' get_tag.return_value = {'id': 123, 'name': tag, 'extra': {}} readFullInheritance.return_value = [] taginfo = kojihub.RootExports().getBuildConfig(tag) get_tag.assert_called_with(tag, event=None, strict=True, blocked=True) readFullInheritance.assert_called_with(123, event=None) self.assertEqual(taginfo, { 'id': 123, 'name': tag, 'extra': {}, 'config_inheritance': {'extra': {}, 'arches': None}, }) @mock.patch('kojihub.kojihub.readFullInheritance') @mock.patch('kojihub.kojihub.get_tag') def test_basic_inherited(self, get_tag, readFullInheritance): tag = 'tag_name' get_tag.side_effect = [ { 'id': 123, 'name': tag, 'extra': {}, 'arches': None, }, { 'id': 1234, 'name': 'parent', 'extra': {'value': (False, 'inherited')}, 'arches': 'x86_64', }, ] readFullInheritance.return_value = [ { 'child_id': 123, 'currdepth': 1, 'filter': [], 'intransitive': False, 'maxdepth': None, 'name': tag, 'nextdepth': None, 'noconfig': False, 'parent_id': 1234, 'pkg_filter': '', 'priority': 0 } ] taginfo = kojihub.RootExports().getBuildConfig(tag, event=1111) get_tag.assert_has_calls([ mock.call(tag, event=1111, strict=True, blocked=True), mock.call(1234, event=1111, strict=True, blocked=True), ]) readFullInheritance.assert_called_with(123, event=1111) self.assertEqual(taginfo, { 'arches': 'x86_64', 'extra': { 'value': 'inherited' }, 'config_inheritance': { 'arches': {'id': 1234, 'name': 'parent'}, 'extra' : {'value': {'id': 1234, 'name': 'parent'}} }, 'id': 123, 'name': 'tag_name' }) @mock.patch('kojihub.kojihub.readFullInheritance') @mock.patch('kojihub.kojihub.get_tag') def test_inherited_noconfig(self, get_tag, readFullInheritance): tag = 'tag_name' get_tag.side_effect = [ { 'id': 123, 'name': tag, 'extra': {}, 'arches': None, }, { 'id': 1234, 'name': 'parent', 'extra': {'value': (False, 'inherited')}, 'arches': 'x86_64', }, ] readFullInheritance.return_value = [ { 'child_id': 123, 'currdepth': 1, 'filter': [], 'intransitive': False, 'maxdepth': None, 'name': tag, 'nextdepth': None, 'noconfig': True, 'parent_id': 1234, 'pkg_filter': '', 'priority': 0 } ] taginfo = kojihub.RootExports().getBuildConfig(tag, event=1111) get_tag.assert_called_once_with(tag, event=1111, strict=True, blocked=True) readFullInheritance.assert_called_with(123, event=1111) self.assertEqual(taginfo, { 'arches': None, 'extra': {}, 'config_inheritance': {'extra': {}, 'arches': None}, 'id': 123, 'name': 'tag_name' })