#4355 listUsers excepts userType as int, list and Nonetype
Merged 13 days ago by tkopecek. Opened 3 months ago by jcupova.
jcupova/koji issue-4325  into  master

file modified
+2 -2
@@ -13501,8 +13501,8 @@ 

          if userType is not None:

              if isinstance(userType, int):

                  userType = [userType]

-             else:

-                 raise koji.ParameterError("userType must be integer or None")

+             elif not isinstance(userType, (list, tuple)):

+                 raise koji.ParameterError("userType must be integer, list, tuple or None")

              clauses.append('usertype IN %(userType)s')

          fields = [

              ('users.id', 'id'),

@@ -61,7 +61,7 @@ 

          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 '

-                 'OR group_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 user_perms.perm_id = %(perm_id)s',
@@ -81,8 +81,38 @@ 

          self.assertEqual('queryOpts.group is not available for this API', str(cm.exception))

          self.assertEqual(len(self.queries), 0)

  

-     def test_usertype_not_int_or_none(self):

+     def test_usertype_is_list(self):

+         self.exports.listUsers(userType=[1])

+ 

+         self.assertEqual(len(self.queries), 1)

+         query = self.queries[0]

+         self.assertEqual(query.tables, ['users'])

+         self.assertEqual(query.joins, [

+             'LEFT JOIN user_krb_principals ON users.id = user_krb_principals.user_id'])

+         self.assertEqual(query.clauses, ['usertype IN %(userType)s'])

+ 

+     def test_usertype_is_tuple(self):

+         self.exports.listUsers(userType=(1, 2))

+ 

+         self.assertEqual(len(self.queries), 1)

+         query = self.queries[0]

+         self.assertEqual(query.tables, ['users'])

+         self.assertEqual(query.joins, [

+             'LEFT JOIN user_krb_principals ON users.id = user_krb_principals.user_id'])

+         self.assertEqual(query.clauses, ['usertype IN %(userType)s'])

+ 

+     def test_usertype_is_integer(self):

+         self.exports.listUsers(userType=1)

+ 

+         self.assertEqual(len(self.queries), 1)

+         query = self.queries[0]

+         self.assertEqual(query.tables, ['users'])

+         self.assertEqual(query.joins, [

+             'LEFT JOIN user_krb_principals ON users.id = user_krb_principals.user_id'])

+         self.assertEqual(query.clauses, ['usertype IN %(userType)s'])

+ 

+     def test_usertype_invalid(self):

          with self.assertRaises(koji.GenericError) as cm:

-             self.exports.listUsers(userType=[1])

-         self.assertEqual('userType must be integer or None', str(cm.exception))

+             self.exports.listUsers(userType='usertype')

+         self.assertEqual('userType must be integer, list, tuple or None', str(cm.exception))

          self.assertEqual(len(self.queries), 0)

Mostly we assume that list could be also tuple (isinstance(userType, (list, tuple))

rebased onto b21cb0b

2 months ago

rebased onto b21cb0b

2 months ago

@tkopecek fixed and added user tests.

rebased onto b63ef8a

a month ago

Metadata Update from @mfilip:
- Pull-request tagged with: testing-basic

a month ago

Metadata Update from @mfilip:
- Pull-request tagged with: testing-done

20 days ago

Commit fca44b5 fixes this pull-request

Pull-Request has been merged by tkopecek

13 days ago