def test_direct_pkglist_add_blocked_previously_force( self, lookup_package, get_tag, get_user, assert_policy, readPackageList, _pkglist_add): block = False extra_arches = 'arch123' force = True update = False policy = True tag = {'id': 1, 'name': 'tag'} pkg = {'id': 2, 'name': 'pkg', 'owner_id': 3} user = {'id': 3, 'name': 'user'} get_tag.return_value = tag lookup_package.return_value = pkg get_user.return_value = user readPackageList.return_value = { pkg['id']: { 'owner_id': pkg['owner_id'], 'blocked': True, 'extra_arches': '' } } kojihub._direct_pkglist_add(tag['name'], pkg['name'], user['name'], block=block, extra_arches=extra_arches, force=force, update=update, policy=policy) get_tag.assert_called_once_with(tag['name'], strict=True) lookup_package.assert_called_once_with(pkg['name'], strict=False) get_user.assert_called_once_with(user['name'], strict=True) # force + admin assert_policy.assert_not_called() self.assertEqual(self.run_callbacks.call_count, 2) self.run_callbacks.assert_has_calls([ mock.call('prePackageListChange', action='add', tag=tag, package=pkg, owner=user['id'], block=block, extra_arches=extra_arches, force=force, update=update), mock.call('postPackageListChange', action='add', tag=tag, package=pkg, owner=user['id'], block=block, extra_arches=extra_arches, force=force, update=update), ]) _pkglist_add.assert_called_once_with(tag['id'], pkg['id'], user['id'], block, extra_arches)
def test_direct_pkglist_add_no_user(self, lookup_package, get_tag, get_user, assert_policy, readPackageList, _pkglist_add): block = False extra_arches = 'arch123' force = False update = False policy = True tag = {'id': 1, 'name': 'tag'} pkg = {'id': 2, 'name': 'pkg', 'owner_id': 3} user = {'id': 3, 'name': 'user'} get_tag.return_value = tag lookup_package.return_value = None get_user.side_effect = koji.GenericError readPackageList.return_value = {} with self.assertRaises(koji.GenericError): kojihub._direct_pkglist_add(tag['name'], pkg, user['name'], block=block, extra_arches=extra_arches, force=force, update=update, policy=policy) lookup_package.assert_called_once_with(pkg, strict=False) self.assertEqual(self.run_callbacks.call_count, 0) _pkglist_add.assert_not_called()
def test_direct_pkglist_add_no_package(self, lookup_package, get_tag, get_user, assert_policy, readPackageList, _pkglist_add): block = False extra_arches = 'arch123' force = False update = False policy = True tag = {'id': 1, 'name': 'tag'} pkg = {'id': 2, 'name': 'pkg', 'owner_id': 3} user = {'id': 3, 'name': 'user'} get_tag.return_value = tag lookup_package.return_value = None get_user.return_value = user readPackageList.return_value = {} # package needs to be name, not dict with self.assertRaises(koji.GenericError) as ex: kojihub._direct_pkglist_add(tag['name'], pkg, user['name'], block=block, extra_arches=extra_arches, force=force, update=update, policy=policy) self.assertEqual("No such package: %s" % pkg, str(ex.exception))
def test_direct_pkglist_add_blocked_previously(self, lookup_package, get_tag, get_user, assert_policy, readPackageList, _pkglist_add): block = False extra_arches = 'arch123' force=False update=False policy=True tag = {'id': 1, 'name': 'tag'} pkg = {'id': 2, 'name': 'pkg', 'owner_id': 3} user = {'id': 3, 'name': 'user'} get_tag.return_value = tag lookup_package.return_value = pkg get_user.return_value = user readPackageList.return_value = {pkg['id']: { 'owner_id': pkg['owner_id'], 'blocked': True, 'extra_arches': ''} } with self.assertRaises(koji.GenericError): kojihub._direct_pkglist_add(tag['name'], pkg['name'], user['name'], block=block, extra_arches=extra_arches, force=force, update=update, policy=policy) get_tag.assert_called_once_with(tag['name'], strict=True) lookup_package.assert_called_once_with(pkg['name'], strict=False) get_user.assert_called_once_with(user['name'], strict=True) assert_policy.assert_called_once_with('package_list', {'tag': tag['id'], 'action': 'add', 'package': pkg['name'], 'force': False}) self.run_callbacks.assert_called_once_with( 'prePackageListChange', action='add', tag=tag, package=pkg, owner=user['id'], block=block, extra_arches=extra_arches, force=force, update=update) _pkglist_add.assert_not_called()
def test_direct_pkglist_add_blocked_previously(self, lookup_package, get_tag, get_user, assert_policy, readPackageList, _pkglist_add): block = False extra_arches = 'arch123' force = False update = False policy = True tag = {'id': 1, 'name': 'tag'} pkg = {'id': 2, 'name': 'pkg', 'owner_id': 3} user = {'id': 3, 'name': 'user'} get_tag.return_value = tag lookup_package.return_value = pkg get_user.return_value = user readPackageList.return_value = { pkg['id']: { 'owner_id': pkg['owner_id'], 'blocked': True, 'extra_arches': '' } } with self.assertRaises(koji.GenericError): kojihub._direct_pkglist_add(tag['name'], pkg['name'], user['name'], block=block, extra_arches=extra_arches, force=force, update=update, policy=policy) get_tag.assert_called_once_with(tag['name'], strict=True) lookup_package.assert_called_once_with(pkg['name'], strict=False) get_user.assert_called_once_with(user['name'], strict=True) assert_policy.assert_called_once_with( 'package_list', { 'tag': tag['id'], 'action': 'add', 'package': pkg['name'], 'force': False }) self.run_callbacks.assert_called_once_with('prePackageListChange', action='add', tag=tag, package=pkg, owner=user['id'], block=block, extra_arches=extra_arches, force=force, update=update) _pkglist_add.assert_not_called()
def test_direct_pkglist_add_pkginfo_dict(self, lookup_package, get_tag): pkg = {'id': 2, 'name': 'pkg', 'owner_id': 3} user = '******' tag = {'id': 1, 'name': 'tag'} expected = "Invalid type for id lookup: %s" % pkg get_tag.return_value = tag lookup_package.side_effect = koji.GenericError(expected) with self.assertRaises(koji.GenericError) as ex: kojihub._direct_pkglist_add(tag['name'], pkg, user, block=False, extra_arches='arch', force=False, update=True) self.assertEqual(expected, str(ex.exception))
def test_direct_pkglist_add_blocked_previously_force(self, lookup_package, get_tag, get_user, assert_policy, readPackageList, _pkglist_add): block = False extra_arches = 'arch123' force=True update=False policy=True tag = {'id': 1, 'name': 'tag'} pkg = {'id': 2, 'name': 'pkg', 'owner_id': 3} user = {'id': 3, 'name': 'user'} get_tag.return_value = tag lookup_package.return_value = pkg get_user.return_value = user readPackageList.return_value = {pkg['id']: { 'owner_id': pkg['owner_id'], 'blocked': True, 'extra_arches': ''} } kojihub._direct_pkglist_add(tag['name'], pkg['name'], user['name'], block=block, extra_arches=extra_arches, force=force, update=update, policy=policy) get_tag.assert_called_once_with(tag['name'], strict=True) lookup_package.assert_called_once_with(pkg['name'], strict=False) get_user.assert_called_once_with(user['name'], strict=True) # force + admin assert_policy.assert_not_called() self.assertEqual(self.run_callbacks.call_count, 2) self.run_callbacks.assert_has_calls([ mock.call('prePackageListChange', action='add', tag=tag, package=pkg, owner=user['id'], block=block, extra_arches=extra_arches, force=force, update=update), mock.call('postPackageListChange', action='add', tag=tag, package=pkg, owner=user['id'], block=block, extra_arches=extra_arches, force=force, update=update), ]) _pkglist_add.assert_called_once_with(tag['id'], pkg['id'], user['id'], block, extra_arches)
def test_direct_pkglist_add_new_package(self, lookup_package, get_tag, get_user, assert_policy, readPackageList, _pkglist_add): block = False extra_arches = 'arch123' force=False update=False policy=True tag = {'id': 1, 'name': 'tag'} pkg = {'id': 2, 'name': 'pkg', 'owner_id': 3} user = {'id': 3, 'name': 'user'} get_tag.return_value = tag lookup_package.side_effect = [None, pkg] get_user.return_value = user readPackageList.return_value = {} kojihub._direct_pkglist_add(tag['name'], pkg['name'], user['name'], block=block, extra_arches=extra_arches, force=force, update=update, policy=policy) get_tag.assert_called_once_with(tag['name'], strict=True) self.assertEqual(lookup_package.call_count, 2) lookup_package.has_calls( mock.call(pkg['name'], strict=False), mock.call(pkg['name'], create=True), ) get_user.assert_called_once_with(user['name'], strict=True) assert_policy.assert_called_once_with('package_list', {'tag': tag['id'], 'action': 'add', 'package': pkg['name'], 'force': False}) self.assertEqual(self.run_callbacks.call_count, 2) self.run_callbacks.assert_has_calls([ mock.call('prePackageListChange', action='add', tag=tag, package=pkg, owner=user['id'], block=block, extra_arches=extra_arches, force=force, update=update), mock.call('postPackageListChange', action='add', tag=tag, package=pkg, owner=user['id'], block=block, extra_arches=extra_arches, force=force, update=update), ]) _pkglist_add.assert_called_once_with(tag['id'], pkg['id'], user['id'], block, extra_arches)
def test_direct_pkglist_add_no_user(self, lookup_package, get_tag, get_user, assert_policy, readPackageList, _pkglist_add): block = False extra_arches = 'arch123' force=False update=False policy=True tag = {'id': 1, 'name': 'tag'} pkg = {'id': 2, 'name': 'pkg', 'owner_id': 3} user = {'id': 3, 'name': 'user'} get_tag.return_value = tag lookup_package.return_value = None get_user.side_effect = koji.GenericError readPackageList.return_value = {} with self.assertRaises(koji.GenericError): kojihub._direct_pkglist_add(tag['name'], pkg, user['name'], block=block, extra_arches=extra_arches, force=force, update=update, policy=policy) lookup_package.assert_called_once_with(pkg, strict=False) self.assertEqual(self.run_callbacks.call_count, 0) _pkglist_add.assert_not_called()
def test_direct_pkglist_add_new_package(self, lookup_package, get_tag, get_user, assert_policy, readPackageList, _pkglist_add): block = False extra_arches = 'arch123' force = False update = False policy = True tag = {'id': 1, 'name': 'tag'} pkg = {'id': 2, 'name': 'pkg', 'owner_id': 3} users = [ { 'id': 3, 'name': 'user' }, { 'id': 112233, 'name': 'user1' }, ] user = users[0] get_tag.return_value = tag lookup_package.side_effect = [None, pkg] get_user.side_effect = get_user_factory(users) readPackageList.return_value = {} kojihub._direct_pkglist_add(tag['name'], pkg['name'], user['name'], block=block, extra_arches=extra_arches, force=force, update=update, policy=policy) get_tag.assert_called_once_with(tag['name'], strict=True) self.assertEqual(lookup_package.call_count, 2) lookup_package.has_calls( mock.call(pkg['name'], strict=False), mock.call(pkg['name'], create=True), ) get_user.assert_has_calls([ mock.call(user['name'], strict=True), mock.call(112233), ]) assert_policy.assert_called_once_with('package_list', { 'tag': tag['id'], 'action': 'add', 'package': pkg['name'], 'force': False }, force=False) self.assertEqual(self.run_callbacks.call_count, 2) self.run_callbacks.assert_has_calls([ mock.call('prePackageListChange', action='add', tag=tag, package=pkg, owner=user['id'], block=block, extra_arches=extra_arches, force=force, update=update, user=users[1]), mock.call('postPackageListChange', action='add', tag=tag, package=pkg, owner=user['id'], block=block, extra_arches=extra_arches, force=force, update=update, user=users[1]), ]) _pkglist_add.assert_called_once_with(tag['id'], pkg['id'], user['id'], block, extra_arches)