without_internet() simulates the situation when any network request will fail, as in when you are without an internet connection. Any HTTP request through httr2 will raise an error.

without_internet(expr)

block_requests()

Arguments

expr

Code to run inside the mock context

Value

The result of expr

Details

block_requests() and stop_mocking() allow you to turn on/off request blocking for more convenient use in an interactive session.

The error message raised has a well-defined shape, made of three elements, separated by space: (1) the request method (e.g. "GET"); (2) the request URL; and (3) the request body, if present. The verb-expectation functions, such as expect_GET() and expect_POST(), look for this shape.

Examples

library(httr2)
library(testthat, warn.conflicts = FALSE)
without_internet({
  expect_error(
    request("http://httpbin.org/get") %>% req_perform(),
    "GET http://httpbin.org/get"
  )
  expect_error(
    request("http://httpbin.org/put") %>%
      req_method("PUT") %>%
      req_body_json(list(a = 1)) %>%
      req_perform(),
    'PUT http://httpbin.org/put {"a":1}',
    fixed = TRUE
  )
})