def test_calculation_run(requests_mock, params, response, results): '''Run generic calculation.''' calc = Calculation(**params) requests_mock.post(JPL_URL + '/calculation/new', json=response) requests_mock.get( JPL_URL + '/calculation/' + response['calculationId'], json=response) requests_mock.get( JPL_URL + '/calculation/' + response['calculationId'] + '/results', json=results) with pytest.raises(CalculationNotCompleted): _ = calc.results calc.run() assert calc.id == response['calculationId'] calc.update() assert calc.phase == response['result']['phase'] with pytest.raises(CalculationAlreadySubmitted): calc.submit() calc.resubmit() assert calc.id == response['calculationId'] out = calc.run() # Re-run results without API request assert len(out['DATE']) == len(results['rows'])
def test_calculation_cancel(params): '''Test error if calculation is cancelled.''' calc = Calculation(**params) calc.submit() calc.cancel() assert calc.phase == 'CANCELLED' with pytest.raises(CalculationFailed): calc.run()