Insert a cassette to record HTTP requests
insert_cassette(
name,
record = NULL,
match_requests_on = NULL,
update_content_length_header = FALSE,
allow_playback_repeats = FALSE,
serialize_with = NULL,
persist_with = NULL,
preserve_exact_body_bytes = NULL,
re_record_interval = NULL,
clean_outdated_http_interactions = NULL
)
The name of the cassette. vcr will check this to ensure it
is a valid file name. Not allowed: spaces, file extensions, control
characters (e.g., \n
), illegal characters ('/', '?', '<', '>', '\', ':',
'*', '|', and '\"'), dots alone (e.g., '.', '..'), Windows reserved
words (e.g., 'com1'), trailing dots (can cause problems on Windows),
names longer than 255 characters. See section "Cassette names"
The record mode (default: "once"
). See recording for a
complete list of the different recording modes.
List of request matchers
to use to determine what recorded HTTP interaction to replay. Defaults to
["method", "uri"]
. The built-in matchers are "method", "uri", "host",
"path", "headers", "body" and "query"
(logical) Whether or
not to overwrite the Content-Length
header of the responses to
match the length of the response body. Default: FALSE
(logical) Whether or not to
allow a single HTTP interaction to be played back multiple times.
Default: FALSE
.
(character) Which serializer to use. Valid values are "yaml" (default), the only one supported for now.
(character) Which cassette persister to use. Default: "file_system". You can also register and use a custom persister.
(logical) Whether or not
to base64 encode the bytes of the requests and responses for
this cassette when serializing it. See also preserve_exact_body_bytes
in vcr_configure()
. Default: FALSE
(integer) How frequently (in seconds) the
cassette should be re-recorded. default: NULL
(not re-recorded)
(logical) Should outdated
interactions be recorded back to file? default: FALSE
an object of class Cassette
Default values for arguments controlling cassette behavior are
inherited from vcr's global configuration. See vcr_configure()
for a
complete list of options and their default settings. You can override these
options for a specific cassette by changing an argument's value to something
other than NULL
when calling either insert_cassette()
or
use_cassette()
.
Should be meaningful so that it's obvious to you what test/function they relate to. Meaningful names are important so that you can quickly determine to what test file or test block a cassette belongs. Note that vcr cannot check that your cassette names are meaningful.
Should not be duplicated. Duplicated cassette names would lead to a test using the wrong cassette.
Should not have spaces. Spaces can lead to problems in using file paths.
Should not include a file extension. vcr handles file extensions for the user.
Should not have illegal characters that can lead to problems in using file paths: '/', '?', '<', '>', '\', ':', '*', '|', and '\"'
Should not have control characters, e.g., \n
Should not have just dots, e.g,. .
or ..
Should not have Windows reserved words, e.g, com1
Should not have trailing dots
Should not be longer than 255 characters
# NOT RUN {
library(vcr)
library(crul)
vcr_configure(dir = tempdir())
webmockr::webmockr_allow_net_connect()
(x <- insert_cassette(name = "leo5"))
current_cassette()
x$new_recorded_interactions
cli <- crul::HttpClient$new(url = "https://httpbin.org")
cli$get("get")
x$new_recorded_interactions
# very important when using inject_cassette: eject when done
x$eject() # same as eject_cassette("leo5")
# cleanup
unlink(file.path(tempdir(), "leo5.yml"))
# }
Run the code above in your browser using DataLab