debian-koji/tests/test_hub/test_create_rpm_checksum.py
Yuming Zhu ca05418fb5 unittest: use unittest.mock instead of mock
because the absence of unittest.mock on python2.7, we still fallback to
mock
2024-10-23 16:35:30 +00:00

39 lines
1.3 KiB
Python

import unittest
from unittest import mock
import kojihub
QP = kojihub.QueryProcessor
class TestCreateRPMChecksum(unittest.TestCase):
def setUp(self):
self.maxDiff = None
self.QueryProcessor = mock.patch('kojihub.kojihub.QueryProcessor',
side_effect=self.getQuery).start()
self.queries = []
self.query_execute = mock.MagicMock()
def tearDown(self):
mock.patch.stopall()
def getQuery(self, *args, **kwargs):
query = QP(*args, **kwargs)
query.execute = self.query_execute
self.queries.append(query)
return query
def test_checksum_exists(self):
rpm_id = 123
chsum_dict = {'md5': 'chsum-1', 'sha256': 'chsum-2'}
sigkey = 'test-sigkey'
self.query_execute.return_value = [{'checksum_type': 'md5'}, {'checksum_type': 'sha256'}]
result = kojihub.create_rpm_checksum(rpm_id, sigkey, chsum_dict)
self.assertIsNone(result)
self.assertEqual(len(self.queries), 1)
query = self.queries[0]
self.assertEqual(query.tables, ['rpm_checksum'])
self.assertEqual(query.joins, None)
self.assertEqual(set(query.clauses), {"checksum_type IN %(checksum_types)s",
"sigkey=%(sigkey)s", "rpm_id = %(rpm_id)d"})