debian-koji/tests/test_hub/test_get_task_children.py
2020-10-27 14:33:46 +01:00

53 lines
1.5 KiB
Python

import mock
import unittest
import koji
import kojihub
QP = kojihub.QueryProcessor
class TestGetTaskChildren(unittest.TestCase):
def setUp(self):
self.exports = kojihub.RootExports()
self.QueryProcessor = mock.patch('kojihub.QueryProcessor',
side_effect=self.getQuery).start()
self.queries = []
def getQuery(self, *args, **kwargs):
query = QP(*args, **kwargs)
query.execute = mock.MagicMock()
query.executeOne = mock.MagicMock()
query.singleValue = mock.MagicMock()
self.queries.append(query)
return query
def tearDown(self):
mock.patch.stopall()
def test_get_task_children_non_existing(self):
q = self.getQuery()
q.execute.return_value = []
self.QueryProcessor.side_effect = [q]
r = self.exports.getTaskChildren(1000)
self.assertEqual(r, [])
def test_get_task_children_non_existing_strict(self):
# get task info
q = self.getQuery()
q.executeOne.side_effect = koji.GenericError
self.QueryProcessor.side_effect = [q]
with self.assertRaises(koji.GenericError):
self.exports.getTaskChildren(1000, strict=True)
def test_get_task_children(self):
children = [{'id': 1}]
q = self.getQuery()
q.execute.return_value = children
self.QueryProcessor.side_effect = [q]
r = self.exports.getTaskChildren(1000)
self.assertEqual(r, children)