Skip to content

Commit 7ac53ca

Browse files
authored
Merge pull request #1353 from cmu-delphi/report-file-names-load-error
[survey] Stop with useful message if any input files fail on load/processing
2 parents 8d8f251 + d01b6e3 commit 7ac53ca

File tree

2 files changed

+20
-1
lines changed

2 files changed

+20
-1
lines changed

facebook/delphiFacebook/R/responses.R

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,25 @@
1818
#' @export
1919
load_responses_all <- function(params, contingency_run = FALSE) {
2020
msg_plain(paste0("Loading ", length(params$input), " CSVs"))
21-
21+
2222
map_fn <- if (params$parallel) { mclapply } else { lapply }
2323
input_data <- map_fn(seq_along(params$input), function(i) {
2424
load_response_one(params$input[i], params, contingency_run)
2525
})
2626

2727
msg_plain(paste0("Finished loading CSVs"))
28+
29+
which_errors <- unlist(lapply(input_data, inherits, "try-error"))
30+
if (any( which_errors )) {
31+
errored_filenames <- paste(params$input[which_errors], collapse=", ")
32+
stop(
33+
"ingestion and field creation failed for at least one of input data file(s) ",
34+
errored_filenames,
35+
" with error(s)\n",
36+
unique(input_data[which_errors])
37+
)
38+
}
39+
2840
input_data <- bind_rows(input_data)
2941
msg_plain(paste0("Finished combining CSVs"))
3042
return(input_data)

facebook/delphiFacebook/integration-tests/testthat/test-integration.R

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -385,3 +385,10 @@ test_that("testing national aggregation", {
385385
}
386386

387387
})
388+
389+
test_that("testing load_responses behavior for missing input", {
390+
params <- relativize_params(read_params(test_path("params-test.json")))
391+
params$input <- c(params$input, "file-does-not-exist.csv")
392+
params$parallel <- TRUE
393+
expect_error(load_responses_all(params), regexp="ingestion and field creation failed")
394+
})

0 commit comments

Comments
 (0)