fix unit tests

This commit is contained in:
Mike McLean 2024-03-28 19:27:39 -04:00 committed by Tomas Kopecek
parent 9200c67ade
commit eb18210744
2 changed files with 20 additions and 24 deletions

View file

@ -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)

View file

@ -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):