def test_wait_for_processing_with_show_progress(mocker, show_progress): expected_progress = [ (80, 'running'), (90, 'running'), (100, 'successful'), ] job_id = '12345' progressbar_mock = mocker.Mock() progressbar_mock.__enter__ = lambda _: progressbar_mock progressbar_mock.__exit__ = lambda a, b, d, c: None mocker.patch('harmony.harmony.progressbar.ProgressBar', return_value=progressbar_mock) sleep_mock = mocker.Mock() mocker.patch('harmony.harmony.time.sleep', sleep_mock) progress_mock = mocker.Mock(side_effect=expected_progress) mocker.patch('harmony.harmony.Client.progress', progress_mock) client = Client(should_validate_auth=False) client.wait_for_processing(job_id, show_progress=show_progress) assert progress_mock.called_with(client, job_id) if show_progress: for n, _ in expected_progress: progressbar_mock.update.assert_any_call(int(n)) else: assert sleep_mock.call_count == len(expected_progress)
def test_wait_for_processing_with_failed_status(mocker, show_progress): expected_progress = (0, 'failed') job_id = '12345' progressbar_mock = mocker.Mock() progressbar_mock.__enter__ = lambda _: progressbar_mock progressbar_mock.__exit__ = lambda a, b, d, c: None mocker.patch('harmony.harmony.progressbar.ProgressBar', return_value=progressbar_mock) progress_mock = mocker.Mock(side_effect=expected_progress) mocker.patch('harmony.harmony.Client.progress', progress_mock) client = Client(should_validate_auth=False) with pytest.raises(Exception): client.wait_for_processing(job_id, show_progress=show_progress)