tmpdir <- tempdir()
vcr_configure(dir = tmpdir, write_disk_path = file.path(tmpdir, "files"))
context("use_cassette: works as expected")
test_that("use_cassette works as expected", {
skip_on_cran()
library(crul)
mydir <- file.path(tempdir(), "asdfasdfsd")
invisible(vcr_configure(dir = mydir))
unlink(file.path(vcr_c$dir, "testing1.yml"))
aa <- use_cassette(name = "testing1", {
res <- crul::HttpClient$new(hb("/get"))$get()
})
# test `print.cassette` method
expect_output(print(aa), "<vcr - Cassette>")
expect_output(print(aa), "Record method: once")
expect_output(print(aa), "Serialize with: yaml")
expect_output(print(aa), "Persist with: FileSystem")
expect_output(print(aa), "preserve_exact_body_bytes")
expect_is(aa, "Cassette")
expect_is(aa$name, "character")
expect_equal(aa$name, "testing1")
expect_false(aa$allow_playback_repeats)
# expect_true(aa$any_new_recorded_interactions()) # FIXME: uncomment w/ webmockr update
expect_is(aa$args, "list")
expect_is(aa$call_block, "function")
expect_is(res, "HttpResponse")
expect_is(res$content, "raw")
cas <- readLines(file.path(vcr_c$dir, "testing1.yml"))
expect_is(cas, "character")
# expect_gt(length(cas), 10) # FIXME: uncomment w/ webmockr update
# expect_true(any(grepl('http_interactions', cas))) # FIXME: uncomment w/ webmockr update
# expect_true(any(grepl('recorded_with', cas))) # FIXME: uncomment w/ webmockr update
})
context("use_cassette fails well")
test_that("use_cassette fails well", {
# requires a code block
unlink(file.path(vcr_c$dir, "foobar333.yml"))
expect_error(
sw(sm(use_cassette("foobar333"))),
"`vcr::use_cassette` requires a code block"
)
# must pass a cassette name
expect_error(use_cassette(), "argument \"name\" is missing")
# record valid values
expect_error(
suppressMessages(use_cassette("newbar", {}, record = "stuff")),
"'record' value of 'stuff' is not in the allowed set"
)
# match_requests_on valid values
expect_error(
suppressMessages(use_cassette("newbar", {}, match_requests_on = "stuff")),
"'match_requests_on' values \\(stuff\\) is not in the allowed set"
)
# update_content_length_header valid type
expect_error(
suppressMessages(use_cassette("newbar3", {}, update_content_length_header = 5)),
"update_content_length_header must be of class logical"
)
# preserve_exact_body_bytes valid type
expect_error(
suppressMessages(use_cassette("newbar4", {}, preserve_exact_body_bytes = 5)),
"preserve_exact_body_bytes must be of class logical"
)
# persist_with valid value
expect_error(
suppressMessages(use_cassette("newbar5", {}, persist_with = "jello")),
"The requested VCR cassette persister \\(jello\\) is not registered"
)
# persist_with valid value
expect_error(
suppressMessages(use_cassette("newbar6", {}, serialize_with = "howdy")),
"The requested vcr cassette serializer \\(howdy\\) is not registered"
)
})
# cleanup
unlink(list.files(vcr_c$dir, pattern = "newbar", full.names = TRUE))
unlink(file.path(vcr_c$dir, "foobar333.yml"))
unlink("foobar333.yml")
unlink("testing1.yml")
# reset configuration
vcr_configure_reset()
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.