1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
|
test_that("checks its inputs", {
req <- request("http://example.com")
expect_snapshot(error = TRUE, {
req_perform_sequential(req)
req_perform_sequential(list(req), letters)
})
})
test_that("can download files", {
reqs <- list(request_test("/json"), request_test("/html"))
paths <- c(withr::local_tempfile(), withr::local_tempfile())
resps <- req_perform_sequential(reqs, paths)
expect_equal(resps[[1]]$body, new_path(paths[[1]]))
expect_equal(resps[[2]]$body, new_path(paths[[2]]))
# And check that something was downloaded
expect_gt(file.size(paths[[1]]), 0)
expect_gt(file.size(paths[[2]]), 0)
})
test_that("on_error = 'return' returns error", {
reqs <- list2(
request_test("/status/:status", status = 200),
request_test("/status/:status", status = 200),
request_test("/status/:status", status = 404),
request_test("/status/:status", status = 200)
)
out <- req_perform_sequential(reqs, on_error = "return")
expect_length(out, 4)
expect_s3_class(out[[3]], "httr2_http_404")
expect_equal(out[[4]], NULL)
})
test_that("on_error = 'continue' captures both error types", {
reqs <- list2(
request_test("/status/:status", status = 404),
request("INVALID"),
)
out <- req_perform_sequential(reqs, on_error = "continue")
expect_s3_class(out[[1]], "httr2_http_404")
expect_s3_class(out[[2]], "httr2_failure")
})
test_that("on_error = 'return' returns error", {
reqs <- list2(
request_test("/status/:status", status = 200),
request_test("/status/:status", status = 200),
request_test("/status/:status", status = 404),
request_test("/status/:status", status = 200)
)
out <- req_perform_sequential(reqs, on_error = "return")
expect_length(out, 4)
expect_s3_class(out[[3]], "httr2_http_404")
expect_equal(out[[4]], NULL)
})
|