Nothing
#' Set raise error condition
#'
#' @export
#' @param .data input. Anything that can be coerced to a `StubbedRequest`
#' class object
#' @param ... One or more HTTP exceptions from the \pkg{fauxpas} package. Run
#' `grep("HTTP*", getNamespaceExports("fauxpas"), value = TRUE)` for a list of
#' possible exceptions
#' @return an object of class `StubbedRequest`, with print method describing
#' the stub
#' @section Raise vs. Return:
#' `to_raise()` always raises a stop condition, while `to_return(status=xyz)`
#' only sets the status code on the returned HTTP response object. So if you
#' want to raise a stop condition then `to_raise()` is what you want. But if
#' you don't want to raise a stop condition use `to_return()`. Use cases for
#' each vary. For example, in a unit test you may have a test expecting a 503
#' error; in this case `to_raise()` makes sense. In another case, if a unit
#' test expects to test some aspect of an HTTP response object that httr,
#' httr2, or crul typically returns, then you'll want `to_return()`.
#'
#' @details The behavior in the future will be:
#'
#' When multiple exceptions are passed, the first is used on the first
#' mock, the second on the second mock, and so on. Subsequent mocks use the
#' last exception
#'
#' But for now, only the first exception is used until we get that fixed
#' @note see examples in [stub_request()]
to_raise <- function(.data, ...) {
handle_stub_removal(.data, {
assert_is(.data, "StubbedRequest")
assert_stub_registered(.data)
tmp <- list(...)
if (
!all(vapply(
tmp,
function(x) inherits(x, "R6ClassGenerator"),
logical(1)
))
) {
abort("all objects must be error classes from fauxpas")
}
if (!all(vapply(tmp, function(x) grepl("HTTP", x$classname), logical(1)))) {
abort("all objects must be error classes from fauxpas")
}
.data$to_raise(tmp)
})
return(.data)
}
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.