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
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