diff --git a/tests/test_hub/test_add_btype.py b/tests/test_hub/test_add_btype.py index 2753f1ed..04a473f9 100644 --- a/tests/test_hub/test_add_btype.py +++ b/tests/test_hub/test_add_btype.py @@ -10,50 +10,49 @@ IP = kojihub.InsertProcessor class TestAddBType(unittest.TestCase): - @mock.patch('kojihub.kojihub.verify_name_internal') - @mock.patch('kojihub.kojihub.list_btypes') - @mock.patch('kojihub.kojihub.InsertProcessor') - def test_add_btype(self, InsertProcessor, list_btypes, verify_name_internal): - # Not sure why mock can't patch kojihub.context, so we do this - session = kojihub.kojihub.context.session = mock.MagicMock() - mocks = [InsertProcessor, list_btypes, session] + def setUp(self): + self.verify_name_internal = mock.patch('kojihub.kojihub.verify_name_internal').start() + self.list_btypes = mock.patch('kojihub.kojihub.list_btypes').start() + self.InsertProcessor = mock.patch('kojihub.kojihub.InsertProcessor').start() + self.context = mock.patch('kojihub.kojihub.context').start() + self.session = self.context.session # It seems MagicMock will not automatically handle attributes that # start with "assert" - session.assertPerm = mock.MagicMock() - verify_name_internal.return_value = None + self.session.assertPerm = mock.MagicMock() + self.verify_name_internal.return_value = None + def tearDown(self): + mock.patch.stopall() + + def test_add_btype(self): # expected case - list_btypes.return_value = None - insert = InsertProcessor.return_value + self.list_btypes.return_value = None + insert = self.InsertProcessor.return_value kojihub.add_btype('new_btype') - InsertProcessor.assert_called_once() + self.InsertProcessor.assert_called_once() insert.execute.assert_called_once() - args, kwargs = InsertProcessor.call_args + args, kwargs = self.InsertProcessor.call_args ip = IP(*args, **kwargs) self.assertEqual(ip.table, 'btype') self.assertEqual(ip.data, {'name': 'new_btype'}) self.assertEqual(ip.rawdata, {}) - session.assertPerm.assert_called_with('admin') - - for m in mocks: - m.reset_mock() - session.assertPerm = mock.MagicMock() + self.session.assertPerm.assert_called_with('admin') + def test_btype_exists(self): # already exists - list_btypes.return_value = True + self.list_btypes.return_value = True with self.assertRaises(koji.GenericError): kojihub.add_btype('new_btype') - InsertProcessor.assert_not_called() - session.assertPerm.assert_called_with('admin') + self.InsertProcessor.assert_not_called() + self.session.assertPerm.assert_called_with('admin') + def test_btype_badname(self): # name is longer as expected new_btype = 'new-btype+' - verify_name_internal.side_effect = koji.GenericError + self.verify_name_internal.side_effect = koji.GenericError with self.assertRaises(koji.GenericError): kojihub.add_btype(new_btype) - # not except regex rules - verify_name_internal.side_effect = koji.GenericError - with self.assertRaises(koji.GenericError): - kojihub.add_btype(new_btype) + +# the end diff --git a/tests/test_hub/test_add_external_repo_to_tag.py b/tests/test_hub/test_add_external_repo_to_tag.py index dca2171e..cf872a4b 100644 --- a/tests/test_hub/test_add_external_repo_to_tag.py +++ b/tests/test_hub/test_add_external_repo_to_tag.py @@ -17,6 +17,8 @@ class TestAddExternalRepoToTag(unittest.TestCase): self.get_external_repo = mock.patch('kojihub.kojihub.get_external_repo').start() self.get_tag_external_repos = mock.patch('kojihub.kojihub.get_tag_external_repos').start() self.parse_arches = mock.patch('koji.parse_arches').start() + self.context = mock.patch('kojihub.kojihub.context').start() + self.context.session.assertPerm = mock.MagicMock() self.tag_info = {'id': 1, 'name': self.tag_name} self.external_repo_info = {'id': 123, 'name': 'test-repo'} self.priority = 11 diff --git a/tests/test_hub/test_add_group_member.py b/tests/test_hub/test_add_group_member.py index e891d34b..e63b55f8 100644 --- a/tests/test_hub/test_add_group_member.py +++ b/tests/test_hub/test_add_group_member.py @@ -15,6 +15,8 @@ class TestAddGroupMember(unittest.TestCase): # start with "assert" self.context.session.assertPerm = mock.MagicMock() self.get_user = mock.patch('kojihub.kojihub.get_user').start() + self.context = mock.patch('kojihub.kojihub.context').start() + self.context.session.assertPerm = mock.MagicMock() def tearDown(self): mock.patch.stopall() diff --git a/tests/test_hub/test_add_user_krb_principal.py b/tests/test_hub/test_add_user_krb_principal.py index 2066ff53..ad13fdd4 100644 --- a/tests/test_hub/test_add_user_krb_principal.py +++ b/tests/test_hub/test_add_user_krb_principal.py @@ -15,6 +15,8 @@ class TestAddUserKrbPrincipal(unittest.TestCase): self.get_user = mock.patch('kojihub.kojihub.get_user').start() self.verify_name_user = mock.patch('kojihub.kojihub.verify_name_user').start() self.get_user_by_krb_principal = mock.patch('kojihub.kojihub.get_user_by_krb_principal').start() + self.context = mock.patch('kojihub.kojihub.context').start() + self.context.session.assertPerm = mock.MagicMock() self.username = 'testuser' self.krbprincipal = '%s@TEST.COM' % self.username self.userinfo = {'id': 1, 'name': self.username} diff --git a/tests/test_hub/test_create_image_build.py b/tests/test_hub/test_create_image_build.py index 6bd3ecbf..2db4c647 100644 --- a/tests/test_hub/test_create_image_build.py +++ b/tests/test_hub/test_create_image_build.py @@ -12,6 +12,8 @@ class TestCreateImageBuild(unittest.TestCase): def setUp(self): self.get_build = mock.patch('kojihub.kojihub.get_build').start() + self.context = mock.patch('kojihub.kojihub.context').start() + self.context.session.assertPerm = mock.MagicMock() self.exports = kojihub.RootExports() self.context = mock.patch('kojihub.kojihub.context').start() # It seems MagicMock will not automatically handle attributes that diff --git a/tests/test_hub/test_delete_build_target.py b/tests/test_hub/test_delete_build_target.py index e35348a4..6e8f224a 100644 --- a/tests/test_hub/test_delete_build_target.py +++ b/tests/test_hub/test_delete_build_target.py @@ -27,6 +27,8 @@ class TestDeleteBuildTarget(unittest.TestCase): self.UpdateProcessor = mock.patch('kojihub.kojihub.UpdateProcessor', side_effect=self.getUpdate).start() self.updates = [] + self.context = mock.patch('kojihub.kojihub.context').start() + self.context.session.assertPerm = mock.MagicMock() self.context_db = mock.patch('kojihub.db.context').start() # It seems MagicMock will not automatically handle attributes that # start with "assert" diff --git a/tests/test_hub/test_disable_channel.py b/tests/test_hub/test_disable_channel.py index e14b7493..c8d900a0 100644 --- a/tests/test_hub/test_disable_channel.py +++ b/tests/test_hub/test_disable_channel.py @@ -23,6 +23,8 @@ class TestDisableChannel(unittest.TestCase): # start with "assert" self.context.session.assertPerm = mock.MagicMock() self.get_channel = mock.patch('kojihub.kojihub.get_channel').start() + self.context = mock.patch('kojihub.kojihub.context').start() + self.context.session.assertPerm = mock.MagicMock() self.UpdateProcessor = mock.patch('kojihub.kojihub.UpdateProcessor', side_effect=self.getUpdate).start() self.updates = [] diff --git a/tests/test_hub/test_dist_repo.py b/tests/test_hub/test_dist_repo.py index 50bb4c72..dcf6bcf1 100644 --- a/tests/test_hub/test_dist_repo.py +++ b/tests/test_hub/test_dist_repo.py @@ -105,18 +105,21 @@ class TestDistRepoInit(unittest.TestCase): class TestDistRepo(unittest.TestCase): - @mock.patch('kojihub.kojihub.assert_policy') - @mock.patch('kojihub.kojihub.dist_repo_init') - @mock.patch('kojihub.kojihub.make_task') - def test_DistRepo(self, make_task, dist_repo_init, assert_policy): - session = kojihub.context.session = mock.MagicMock() + def setUp(self): + self.assert_policy = mock.patch('kojihub.kojihub.assert_policy').start() + self.dist_repo_init = mock.patch('kojihub.kojihub.dist_repo_init').start() + self.make_task = mock.patch('kojihub.kojihub.make_task').start() + self.context = mock.patch('kojihub.kojihub.context').start() + + def tearDown(self): + mock.patch.stopall() + + def test_DistRepo(self): + session = self.context.session session.user_id = 123 - # It seems MagicMock will not automatically handle attributes that - # start with "assert" - session.hasPerm = mock.MagicMock() session.hasPerm.return_value = False - dist_repo_init.return_value = ('repo_id', 'event_id') - make_task.return_value = 'task_id' + self.dist_repo_init.return_value = ('repo_id', 'event_id') + self.make_task.return_value = 'task_id' exports = kojihub.RootExports() exports.getBuildConfig = mock.MagicMock() exports.getBuildConfig.return_value = {'extra': {}} @@ -124,10 +127,10 @@ class TestDistRepo(unittest.TestCase): ret = exports.distRepo('tag', 'keys') session.hasPerm.assert_has_calls([mock.call('dist-repo'), mock.call('admin')]) - assert_policy.assert_called_once_with('dist_repo', {'tag': 'tag'}) - dist_repo_init.assert_called_once() - make_task.assert_called_once() - self.assertEqual(ret, make_task.return_value) + self.assert_policy.assert_called_once_with('dist_repo', {'tag': 'tag'}) + self.dist_repo_init.assert_called_once() + self.make_task.assert_called_once() + self.assertEqual(ret, self.make_task.return_value) exports.getBuildConfig.assert_called_once_with('tag') @@ -216,6 +219,7 @@ class TestDistRepoMove(unittest.TestCase): self.get_build = mock.patch('kojihub.kojihub.get_build').start() self.get_rpm.side_effect = self.our_get_rpm self.get_build.side_effect = self.our_get_build + self.context = mock.patch('kojihub.kojihub.context').start() def tearDown(self): mock.patch.stopall() @@ -228,7 +232,7 @@ class TestDistRepoMove(unittest.TestCase): return self.builds[buildInfo] def test_distRepoMove(self): - session = kojihub.context.session = mock.MagicMock() + session = self.context.session session.user_id = 123 exports = kojihub.HostExports() exports.distRepoMove(self.rinfo['id'], self.uploadpath, self.arch) diff --git a/tests/test_hub/test_edit_build_target.py b/tests/test_hub/test_edit_build_target.py index 0f4fd7cc..526af201 100644 --- a/tests/test_hub/test_edit_build_target.py +++ b/tests/test_hub/test_edit_build_target.py @@ -30,7 +30,8 @@ class TestEditBuildTarget(unittest.TestCase): self.target_info = {'id': 123, 'name': self.target_name} self.build_tag_info = {'id': 111, 'name': self.build_tag} self.dest_tag_info = {'id': 112, 'name': self.dest_tag} - self.session = kojihub.context.session = mock.MagicMock() + self.context = mock.patch('kojihub.kojihub.context').start() + self.session = self.context.session self.session.assertPerm = mock.MagicMock() self.QueryProcessor = mock.patch('kojihub.kojihub.QueryProcessor', side_effect=self.getQuery).start() diff --git a/tests/test_hub/test_massTag.py b/tests/test_hub/test_massTag.py index af84fb6f..471cd2a8 100644 --- a/tests/test_hub/test_massTag.py +++ b/tests/test_hub/test_massTag.py @@ -7,7 +7,7 @@ import kojihub class TestDeleteEventId(unittest.TestCase): @mock.patch('kojihub.kojihub.context') def test_delete_event_id(self, context): - kojihub.context.event_id = 123 + context.event_id = 123 kojihub._delete_event_id() self.assertFalse(hasattr(context, 'event_id')) diff --git a/tests/test_hub/test_multicall.py b/tests/test_hub/test_multicall.py index 3280b19f..a83443bc 100644 --- a/tests/test_hub/test_multicall.py +++ b/tests/test_hub/test_multicall.py @@ -15,17 +15,19 @@ class DummyExports(object): class TestMulticall(unittest.TestCase): + def setUp(self): + self.context = mock.patch('kojihub.kojixmlrpc.context').start() + self.context_db = mock.patch('kojihub.db.context').start() + self.kojihub = mock.patch('kojihub.kojixmlrpc.kojihub').start() + self.registry = HandlerRegistry() + self.exports = DummyExports() + self.registry.register_instance(self.exports) + def tearDown(self): mock.patch.stopall() def test_multicall(self): - self.context_db = mock.patch('kojihub.db.context').start() kojixmlrpc.kojihub = mock.MagicMock() - kojixmlrpc.context.opts = mock.MagicMock() - kojixmlrpc.context.session = mock.MagicMock() - self.registry = HandlerRegistry() - self.exports = DummyExports() - self.registry.register_instance(self.exports) calls = [{'methodName': 'foo', 'params': [1]}, {'methodName': 'non', 'params': [mock.ANY]}, {'methodName': 'foo', 'params': [2, Exception('with int arg', 1)]},