diff --git a/tests/test_cli/test_list_users.py b/tests/test_cli/test_list_users.py index aed416ac..2eb15163 100644 --- a/tests/test_cli/test_list_users.py +++ b/tests/test_cli/test_list_users.py @@ -46,8 +46,7 @@ testuser """ self.assertMultiLineEqual(actual, expected) self.assertEqual(rv, None) - self.session.listUsers.assert_called_once_with( - inherited_perm=False, perm=None, userType=koji.USERTYPES['NORMAL'], prefix=None) + self.session.listUsers.assert_called_once_with(userType=koji.USERTYPES['NORMAL']) self.session.getAllPerms.assert_not_called() @mock.patch('sys.stdout', new_callable=StringIO) @@ -65,8 +64,8 @@ testuser """ self.assertMultiLineEqual(actual, expected) self.assertEqual(rv, None) - self.session.listUsers.assert_called_once_with( - inherited_perm=False, perm=None, userType=koji.USERTYPES['NORMAL'], prefix='koji') + self.session.listUsers.assert_called_once_with(userType=koji.USERTYPES['NORMAL'], + prefix='koji') self.session.getAllPerms.assert_not_called() @mock.patch('sys.stdout', new_callable=StringIO) @@ -89,8 +88,7 @@ testhost """ self.assertMultiLineEqual(actual, expected) self.assertEqual(rv, None) - self.session.listUsers.assert_called_once_with( - inherited_perm=False, perm=None, userType=koji.USERTYPES['HOST'], prefix=None) + self.session.listUsers.assert_called_once_with(userType=koji.USERTYPES['HOST']) self.session.getAllPerms.assert_not_called() def test_list_users_with_usertype_non_existing(self): @@ -99,7 +97,7 @@ testhost anon_handle_list_users, self.options, self.session, arguments, stdout='', - stderr="Usertype test doesn't exist\n", + stderr="Invalid usertype: test\n", activate_session=None, exit_code=1) self.session.listUsers.assert_not_called() @@ -120,8 +118,8 @@ testhost """ self.assertMultiLineEqual(actual, expected) self.assertEqual(rv, None) - self.session.listUsers.assert_called_once_with( - inherited_perm=False, perm=None, userType=koji.USERTYPES['HOST'], prefix='test') + self.session.listUsers.assert_called_once_with(userType=koji.USERTYPES['HOST'], + prefix='test') self.session.getAllPerms.assert_not_called() def test_list_users_with_arg(self): @@ -143,7 +141,7 @@ testhost self.assert_system_exit( anon_handle_list_users, self.options, self.session, arguments, - stderr="Permission test-non-exist-perm does not exists\n", + stderr="Invalid permission: test-non-exist-perm\n", stdout='', activate_session=None, exit_code=1) @@ -157,14 +155,15 @@ testhost arguments = ['--perm', perm] self.session.getAllPerms.return_value = [{'name': 'test-perm'}, {'name': 'test-perm-2'}] self.session.listUsers.return_value = [] + self.session.hub_version = (1, 34, 1) rv = anon_handle_list_users(self.options, self.session, arguments) actual = stdout.getvalue() expected = """""" self.assertMultiLineEqual(actual, expected) self.assertEqual(rv, None) self.activate_session.assert_called_once_with(self.session, self.options) - self.session.listUsers.assert_called_once_with( - inherited_perm=False, perm=perm, prefix=None, userType=None) + self.session.listUsers.assert_called_once_with(perm=perm, + userType=koji.USERTYPES['NORMAL']) self.session.getAllPerms.assert_called_once_with() @mock.patch('sys.stdout', new_callable=StringIO) @@ -193,7 +192,7 @@ testuser1234 self.assertMultiLineEqual(actual, expected) self.assertEqual(rv, None) self.session.listUsers.assert_called_once_with( - inherited_perm=True, perm=perm, prefix=None, userType=None) + inherited_perm=True, perm=perm, userType=koji.USERTYPES['NORMAL']) self.session.getAllPerms.assert_called_once_with() self.activate_session.assert_called_once_with(self.session, self.options) @@ -220,8 +219,8 @@ testuser1234 Options: -h, --help show this help message and exit --usertype=USERTYPE List users that have a given usertype (e.g. NORMAL, - HOST, GROUP) + HOST, GROUP). Use "any" to get all types --prefix=PREFIX List users that have a given prefix --perm=PERM List users that have a given permission - --inherited-perm List of users that inherited specific perm + --inherited-perm Consider inherited permissions """ % self.progname) diff --git a/tests/test_hub/test_list_users.py b/tests/test_hub/test_list_users.py index 0295e45f..739119e3 100644 --- a/tests/test_hub/test_list_users.py +++ b/tests/test_hub/test_list_users.py @@ -16,6 +16,7 @@ class TestListUsers(unittest.TestCase): self.QueryProcessor = mock.patch('kojihub.kojihub.QueryProcessor', side_effect=self.getQuery).start() self.queries = [] + self.get_perm_id = mock.patch('kojihub.kojihub.get_perm_id').start() def tearDown(self): mock.patch.stopall() @@ -44,13 +45,11 @@ class TestListUsers(unittest.TestCase): query = self.queries[0] self.assertEqual(query.tables, ['users']) self.assertEqual(query.joins, [ - 'LEFT JOIN user_perms ON users.id = user_perms.user_id AND user_perms.active IS TRUE', - 'LEFT JOIN permissions ON perm_id = permissions.id', + 'LEFT JOIN user_perms ON users.id = user_perms.user_id', 'LEFT JOIN user_krb_principals ON users.id = user_krb_principals.user_id']) self.assertEqual(query.clauses, [ - 'user_perms.active AND permissions.name = %(perm)s', + 'user_perms.active AND user_perms.perm_id = %(perm_id)s', "users.name ilike %(prefix)s || '%%'", - 'usertype IN %(userType)s', ]) def test_valid_userType_none_with_perm_inherited_perm_and_prefix(self): @@ -61,14 +60,12 @@ class TestListUsers(unittest.TestCase): self.assertEqual(query.tables, ['users']) self.assertEqual(query.joins, [ 'LEFT JOIN user_groups ON user_id = users.id AND user_groups.active IS TRUE', - 'LEFT JOIN user_perms ON users.id = user_perms.user_id AND ' - 'user_perms.active IS TRUE OR group_id =user_perms.user_id', - 'LEFT JOIN permissions ON perm_id = permissions.id', + 'LEFT JOIN user_perms ON users.id = user_perms.user_id ' + 'OR group_id = user_perms.user_id', 'LEFT JOIN user_krb_principals ON users.id = user_krb_principals.user_id']) self.assertEqual(query.clauses, [ - 'user_perms.active AND permissions.name = %(perm)s', + 'user_perms.active AND user_perms.perm_id = %(perm_id)s', "users.name ilike %(prefix)s || '%%'", - 'usertype IN %(userType)s', ]) def test_inherited_perm_without_perm(self):