cli: [list-permissions] backward compatibility for getUserPermsInheritance call
fixes: #3959
This commit is contained in:
parent
e55303c2ce
commit
7b1f2a6137
2 changed files with 37 additions and 5 deletions
|
|
@ -2176,11 +2176,21 @@ def handle_list_permissions(goptions, session, args):
|
|||
user = session.getUser(options.user)
|
||||
if not user:
|
||||
error("No such user: %s" % options.user)
|
||||
for p, groups in session.getUserPermsInheritance(user['id']).items():
|
||||
p = {'name': p}
|
||||
if groups != [None]:
|
||||
p['description'] = 'inherited from: %s' % ', '.join(groups)
|
||||
perms.append(p)
|
||||
try:
|
||||
for p, groups in session.getUserPermsInheritance(user['id']).items():
|
||||
p = {'name': p}
|
||||
if groups != [None]:
|
||||
p['description'] = 'inherited from: %s' % ', '.join(groups)
|
||||
perms.append(p)
|
||||
except koji.GenericError as e:
|
||||
# backwards compatible
|
||||
# TODO: can be removed in 1.36
|
||||
if "Invalid method" in str(e):
|
||||
warn("Old hub doesn't support Inherited Group Permissions.")
|
||||
for p in session.getUserPerms(user['id']):
|
||||
perms.append({'name': p})
|
||||
else:
|
||||
raise
|
||||
else:
|
||||
for p in session.getAllPerms():
|
||||
perms.append({'name': p['name'], 'description': p['description']})
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ import mock
|
|||
import six
|
||||
import unittest
|
||||
|
||||
import koji
|
||||
from koji_cli.commands import handle_list_permissions
|
||||
from . import utils
|
||||
|
||||
|
|
@ -133,6 +134,27 @@ repo
|
|||
self.session.getPerms.assert_not_called()
|
||||
self.session.getAllPerms.assert_not_called()
|
||||
|
||||
@mock.patch('sys.stdout', new_callable=six.StringIO)
|
||||
def test_handle_list_permissions_without_group_perm_inheritance(self, stdout):
|
||||
"""Test handle_list_permissions without group perm inheritance"""
|
||||
expected = """build
|
||||
repo
|
||||
"""
|
||||
self.session.getLoggedInUser.return_value = {'id': 1, 'name': 'user'}
|
||||
self.session.getUserPermsInheritance.side_effect = koji.GenericError(
|
||||
"Invalid method: getUserPermsInheritance"
|
||||
)
|
||||
self.session.getUserPerms.return_value = [p['name'] for p in self.all_perms[1:3]]
|
||||
handle_list_permissions(self.options, self.session, ['--mine'])
|
||||
self.assert_console_message(stdout, expected)
|
||||
|
||||
self.activate_session_mock.assert_called_once()
|
||||
self.session.getUser.assert_called_once()
|
||||
self.session.getUserPermsInheritance.assert_called_once()
|
||||
self.session.getUserPerms.assert_called_once()
|
||||
self.session.getPerms.assert_not_called()
|
||||
self.session.getAllPerms.assert_not_called()
|
||||
|
||||
@mock.patch('sys.stdout', new_callable=six.StringIO)
|
||||
def test_handle_list_permissions_all_perms_quiet_false(self, stdout):
|
||||
"""Test handle_list_permissions all permissions and quiet is false"""
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue