52 lines
2.2 KiB
Python
52 lines
2.2 KiB
Python
import koji
|
|
import kojihub
|
|
from .utils import DBQueryTestCase
|
|
|
|
|
|
class TestGetBuildNotification(DBQueryTestCase):
|
|
|
|
def setUp(self):
|
|
super(TestGetBuildNotification, self).setUp()
|
|
self.exports = kojihub.RootExports()
|
|
|
|
def test_empty_result_with_strict(self):
|
|
notif_id = 1
|
|
self.qp_execute_one_return_value = None
|
|
with self.assertRaises(koji.GenericError) as cm:
|
|
self.exports.getBuildNotification(notif_id, strict=True)
|
|
self.assertEqual(f"No notification with ID {notif_id} found", str(cm.exception))
|
|
self.assertEqual(len(self.queries), 1)
|
|
query = self.queries[0]
|
|
self.assertEqual(query.tables, ['build_notifications'])
|
|
self.assertEqual(query.joins, None)
|
|
self.assertEqual(query.clauses, ['id = %(id)i'])
|
|
self.assertEqual(query.columns,
|
|
['email', 'id', 'package_id', 'success_only', 'tag_id', 'user_id'])
|
|
|
|
def test_empty_result_without_strict(self):
|
|
notif_id = 1
|
|
self.qp_execute_one_return_value = None
|
|
result = self.exports.getBuildNotification(notif_id, strict=False)
|
|
self.assertEqual(result, None)
|
|
self.assertEqual(len(self.queries), 1)
|
|
query = self.queries[0]
|
|
self.assertEqual(query.tables, ['build_notifications'])
|
|
self.assertEqual(query.joins, None)
|
|
self.assertEqual(query.clauses, ['id = %(id)i'])
|
|
self.assertEqual(query.columns,
|
|
['email', 'id', 'package_id', 'success_only', 'tag_id', 'user_id'])
|
|
|
|
def test_valid_result(self):
|
|
qp_result = {'id': 1, 'user_id': 2, 'package_id': 3, 'tag_id': 4, 'success_only': True,
|
|
'email': 'test-mail'}
|
|
notif_id = 1
|
|
self.qp_execute_one_return_value = qp_result
|
|
result = self.exports.getBuildNotification(notif_id, strict=True)
|
|
self.assertEqual(result, qp_result)
|
|
self.assertEqual(len(self.queries), 1)
|
|
query = self.queries[0]
|
|
self.assertEqual(query.tables, ['build_notifications'])
|
|
self.assertEqual(query.joins, None)
|
|
self.assertEqual(query.clauses, ['id = %(id)i'])
|
|
self.assertEqual(query.columns,
|
|
['email', 'id', 'package_id', 'success_only', 'tag_id', 'user_id'])
|