#1016 raise Error when user not found in getBuildNotifications
Merged 5 years ago by mikem. Opened 5 years ago by julian8628.
julian8628/koji issue/1013  into  master

file modified
+5 -9
@@ -11004,15 +11004,11 @@ 

  

  

      def getBuildNotifications(self, userID=None):

-         """Get build notifications for the user with the given ID.  If no ID

-         is specified, get the notifications for the currently logged-in user.  If

-         there is no currently logged-in user, raise a GenericError."""

-         if userID is None:

-             user = self.getLoggedInUser()

-             if user is None:

-                 raise koji.GenericError('not logged-in')

-             else:

-                 userID = user['id']

+         """Get build notifications for the user with the given ID, name or

+         Kerberos principal. If no user is specified, get the notifications for

+         the currently logged-in user. If there is no currently logged-in user,

+         raise a GenericError."""

+         userID = get_user(userID, strict=True)['id']

          return get_build_notifications(userID)

  

      def getBuildNotification(self, id):

@@ -0,0 +1,27 @@ 

+ import mock

+ try:

+     import unittest2 as unittest

+ except ImportError:

+     import unittest

+ import koji

+ import kojihub

+ 

+ 

+ class TestGetBuildNotifications(unittest.TestCase):

+ 

+ 

+     @mock.patch('kojihub.get_user', return_value={'id': 1})

+     @mock.patch('kojihub.get_build_notifications')

+     def test_loggedin_user(self, get_build_notifications, get_user):

+         kojihub.RootExports().getBuildNotifications(None)

+         get_user.assert_called_once_with(None, strict=True)

+         get_build_notifications.assert_called_once_with(1)

+ 

+     @mock.patch('kojihub.get_user', side_effect=koji.GenericError('error msg'))

+     @mock.patch('kojihub.get_build_notifications')

+     def test_user_not_found(self, get_build_notifications, get_user):

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

+             kojihub.RootExports().getBuildNotifications(1)

+         get_user.assert_called_once_with(1, strict=True)

+         get_build_notifications.assert_not_called()

+         self.assertEqual(cm.exception.args[0], 'error msg')