def test_formatWorkOutput_multiple_works(self, mocker): mockFormat = mocker.patch.object(APIUtils, 'formatWork') mockFormat.side_effect = ['formattedWork1', 'formattedWork2'] mockAddMeta = mocker.patch.object(APIUtils, 'addWorkMeta') testWorks = [ mocker.MagicMock(uuid='uuid1'), mocker.MagicMock(uuid='uuid2') ] outWorks = APIUtils.formatWorkOutput(testWorks, [('uuid1', 1, 'highlight1'), ('uuid2', 2, 'highlight2'), ('uuid3', 3, 'highlight3')]) assert outWorks == ['formattedWork1', 'formattedWork2'] mockFormat.assert_has_calls([ mocker.call(testWorks[0], 1, True, formats=None, reader=None), mocker.call(testWorks[1], 2, True, formats=None, reader=None) ]) mockAddMeta.assert_has_calls([ mocker.call('formattedWork1', highlights='highlight1'), mocker.call('formattedWork2', highlights='highlight2') ])
def test_formatWorkOutput_single_work(self, mocker): mockFormat = mocker.patch.object(APIUtils, 'formatWork') mockFormat.return_value = { 'uuid': 1, 'editions': [{ 'id': 'ed1', 'publication_date': None }, { 'id': 'ed2', 'publication_date': 2000 }, { 'id': 'ed3', 'publication_date': 1900 }] } outWork = APIUtils.formatWorkOutput('testWork', None) assert outWork['uuid'] == 1 assert outWork['editions'][0]['id'] == 'ed3' assert outWork['editions'][2]['id'] == 'ed1' mockFormat.assert_called_once_with('testWork', None, True, reader=None)