コード例 #1
0
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'])
コード例 #2
0
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()