debian-koji/tests/test_hub/test_get_build_notification.py
2023-03-29 13:49:32 +02:00

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'])