Example #1
0
def test_data_availability_data(mock_logger, input_files, var, error):
    """Test check for data when data is present."""
    saved_var = dict(var)
    if error is None:
        check.data_availability(input_files, var, None, None)
        mock_logger.error.assert_not_called()
    else:
        with pytest.raises(check.RecipeError) as rec_err:
            check.data_availability(input_files, var, None, None)
        assert str(rec_err.value) == error
    assert var == saved_var
Example #2
0
def test_data_availability_no_data(mock_logger, dirnames, filenames, error):
    """Test check for data when no data is present."""
    var = dict(VAR)
    var_no_filename = {
        'frequency': 'mon',
        'short_name': 'tas',
        'start_year': 2020,
        'end_year': 2025,
    }
    error_first = ('No input files found for variable %s', var_no_filename)
    error_last = ("Set 'log_level' to 'debug' to get more information", )
    with pytest.raises(check.RecipeError) as rec_err:
        check.data_availability([], var, dirnames, filenames)
    assert str(rec_err.value) == 'Missing data'
    if error is None:
        assert mock_logger.error.call_count == 2
        errors = [error_first, error_last]
    else:
        assert mock_logger.error.call_count == 3
        errors = [error_first, error, error_last]
    calls = [mock.call(*e) for e in errors]
    assert mock_logger.error.call_args_list == calls
    assert var == VAR