without_internet: Make all HTTP requests raise an error

View source: R/without-internet.R

without_internetR Documentation

Make all HTTP requests raise an error

Description

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.

Usage

without_internet(expr)

block_requests()

Arguments

expr

Code to run inside the mock context

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.

Value

The result of expr

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

httptest2 documentation built on May 29, 2024, 8:42 a.m.