Increase hub unit tests
This commit is contained in:
parent
5c0b9598bd
commit
3c8f309e47
17 changed files with 1771 additions and 22 deletions
104
tests/test_hub/test_build_notification.py
Normal file
104
tests/test_hub/test_build_notification.py
Normal file
|
|
@ -0,0 +1,104 @@
|
|||
import mock
|
||||
|
||||
import koji
|
||||
import unittest
|
||||
import kojihub
|
||||
import kojihub.kojihub
|
||||
from .utils import DBQueryTestCase
|
||||
|
||||
|
||||
class TestBuildNotification(unittest.TestCase):
|
||||
def setUp(self):
|
||||
self.context = mock.patch('kojihub.kojihub.context').start()
|
||||
self.context.session.assertPerm = mock.MagicMock()
|
||||
self.get_build = mock.patch('kojihub.kojihub.get_build').start()
|
||||
self._get_build_target = mock.patch('kojihub.kojihub._get_build_target').start()
|
||||
self.get_notification_recipients = mock.patch(
|
||||
'kojihub.kojihub.get_notification_recipients').start()
|
||||
self.make_task = mock.patch('kojihub.kojihub.make_task').start()
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
def test_disabled_notification(self):
|
||||
self.context.opts = {'DisableNotifications': True}
|
||||
rv = kojihub.build_notification(10, 1)
|
||||
self.assertEqual(rv, None)
|
||||
self.get_build.assert_not_called()
|
||||
self._get_build_target.assert_not_called()
|
||||
self.get_notification_recipients.assert_not_called()
|
||||
self.make_task.assert_not_called()
|
||||
|
||||
def test_not_complete_build(self):
|
||||
build_id = 1
|
||||
task_id = 10
|
||||
self.context.opts = {'DisableNotifications': False}
|
||||
buildinfo = {'state': 0, 'id': build_id}
|
||||
target_info = {'dest_tag': 'test_dest_tag'}
|
||||
self.get_build.return_value = buildinfo
|
||||
self._get_build_target.return_value = target_info
|
||||
|
||||
with self.assertRaises(koji.GenericError) as ex:
|
||||
kojihub.build_notification(task_id, build_id)
|
||||
self.assertEqual('never send notifications for incomplete builds', str(ex.exception))
|
||||
self.get_build.assert_called_once_with(build_id)
|
||||
self._get_build_target.assert_called_once_with(task_id)
|
||||
self.get_notification_recipients.assert_not_called()
|
||||
self.make_task.assert_not_called()
|
||||
|
||||
def test_valid(self):
|
||||
build_id = 1
|
||||
task_id = 10
|
||||
self.context.opts = {'DisableNotifications': False}
|
||||
buildinfo = {'state': 1, 'id': build_id}
|
||||
target_info = {'dest_tag': 'test_dest_tag'}
|
||||
recipients = ['email1@mail.com', 'email2@mail.com']
|
||||
weburl = 'http://localhost/koji'
|
||||
self.get_build.return_value = buildinfo
|
||||
self._get_build_target.return_value = target_info
|
||||
self.get_notification_recipients.return_value = recipients
|
||||
self.make_task.return_value = 11
|
||||
|
||||
rv = kojihub.build_notification(task_id, build_id)
|
||||
self.assertEqual(rv, None)
|
||||
self.get_build.assert_called_once_with(build_id)
|
||||
self._get_build_target.assert_called_once_with(task_id)
|
||||
self.get_notification_recipients.assert_called_once_with(
|
||||
buildinfo, target_info['dest_tag'], buildinfo['state'])
|
||||
self.make_task.assert_called_once_with('buildNotification',
|
||||
[recipients, buildinfo, target_info, weburl])
|
||||
|
||||
|
||||
class TestGetBuildNotifications(DBQueryTestCase):
|
||||
def setUp(self):
|
||||
super(TestGetBuildNotifications, self).setUp()
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
def test_valid(self):
|
||||
user_id = 1
|
||||
kojihub.get_build_notifications(user_id)
|
||||
self.assertEqual(len(self.queries), 1)
|
||||
self.assertLastQueryEqual(tables=['build_notifications'],
|
||||
columns=['email', 'id', 'package_id', 'success_only', 'tag_id',
|
||||
'user_id'],
|
||||
clauses=['user_id = %(user_id)i'],
|
||||
values={'user_id': user_id})
|
||||
|
||||
|
||||
class TestGetBuildNotificationBlocks(DBQueryTestCase):
|
||||
def setUp(self):
|
||||
super(TestGetBuildNotificationBlocks, self).setUp()
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
def test_valid(self):
|
||||
user_id = 1
|
||||
kojihub.get_build_notification_blocks(user_id)
|
||||
self.assertEqual(len(self.queries), 1)
|
||||
self.assertLastQueryEqual(tables=['build_notifications_block'],
|
||||
columns=['id', 'package_id', 'tag_id', 'user_id'],
|
||||
clauses=['user_id = %(user_id)i'],
|
||||
values={'user_id': user_id})
|
||||
Loading…
Add table
Add a link
Reference in a new issue