def test_anon_handle_download_logs(self): task_id = 123456 self.session.getTaskInfo.return_value = { 'arch': 'x86_64', 'state': 'CLOSED', } self.list_task_output_all_volumes.return_value = { 'file1.log': ['volume1'], 'file2_not_log': ['volume2'], } self.session.downloadTaskOutput.side_effect = ['abcde', ''] out_file = six.StringIO() self.custom_open['kojilogs/x86_64-123456/volume1/file1.log'] = out_file if six.PY2: target = '__builtin__.open' else: target = 'builtins.open' with mock.patch(target, new=self.mock_builtin_open): anon_handle_download_logs(self.options, self.session, [str(task_id)]) self.session.getTaskInfo.assert_called_once_with(task_id) self.list_task_output_all_volumes.assert_called_once_with(self.session, task_id) self.assertTrue(out_file.closed) self.assertEqual(self.session.downloadTaskOutput.call_count, 2) self.session.downloadTaskOutput.assert_has_calls([ mock.call(123456, 'file1.log', offset=0, size=102400, volume='volume1'), mock.call(123456, 'file1.log', offset=5, size=102400, volume='volume1'), ])
def test_anon_handle_download_logs_wrong_nvr(self): nvr = 'bash-1.2.3-f26' self.session.getBuild.return_value = None with self.assertRaises(SystemExit): anon_handle_download_logs(self.options, self.session, ['--nvr', nvr]) self.session.getBuild.assert_called_once_with(nvr)
def test_anon_handle_download_logs_task_not_found(self): task_id = '123333' self.session.getTaskInfo.return_value = None with self.assertRaises(SystemExit) as ex: anon_handle_download_logs(self.options, self.session, [task_id]) self.assertExitCode(ex, 1) actual = self.stderr.getvalue() expected = 'No such task: %s\n' % task_id self.assertMultiLineEqual(actual, expected)
def test_anon_handle_download_logs_nvr(self): nvr = 'bash-1.2.3-f26' task_id = 123456 self.session.getBuild.return_value = {'task_id': task_id} self.session.getTaskInfo.return_value = { 'arch': 'x86_64', 'state': 'CLOSED', } self.list_task_output_all_volumes.return_value = {} self.session.getTaskChildren.side_effect = [[{'id': 23}], []] anon_handle_download_logs(self.options, self.session, ['--nvr', nvr]) self.session.getBuild.assert_called_once_with(nvr) self.session.getTaskInfo.assert_has_calls([ mock.call(task_id), mock.call(23), ]) self.session.downloadTaskOutput.assert_not_called()
def test_anon_handle_download_logs_no_arg(self): with self.assertRaises(SystemExit): anon_handle_download_logs(self.options, self.session, [])
def test_anon_handle_download_logs_wrong_value(self): with self.assertRaises(SystemExit): anon_handle_download_logs(self.options, self.session, ['bogus_task_id'])