R Under development (unstable) (2025-07-18 r88431 ucrt) -- "Unsuffered Consequences" Copyright (C) 2025 The R Foundation for Statistical Computing Platform: x86_64-w64-mingw32/x64 R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. > # This file is part of the standard setup for testthat. > # It is recommended that you do not modify it. > # > # Where should you do additional test configuration? > # Learn more about the roles of various files in: > # * https://r-pkgs.org/testing-design.html#sec-tests-files-overview > # * https://testthat.r-lib.org/articles/special-files.html > > library(testthat) > library(vcr) > > test_check("vcr") Starting 2 test processes [ FAIL 24 | WARN 0 | SKIP 32 | PASS 367 ] ══ Skipped tests (32) ══════════════════════════════════════════════════════════ • On CRAN (31): 'test-ause_cassette_re_record.R:24:3', 'test-cassette_class.R:2:3', 'test-cassette_class.R:8:3', 'test-cassette_class.R:42:3', 'test-cassettes.R:17:3', 'test-check_cassette_names.R:30:3', 'test-configuration.R:2:3', 'test-configuration.R:50:3', 'test-knitr.R:4:3', 'test-logger.R:25:3', 'test-lightswitch.R:4:3', 'test-lightswitch.R:13:3', 'test-lightswitch.R:89:3', 'test-request_handler-httr.R:1:1', 'test-request_handler-httr2.R:163:3', 'test-request_handler-httr2.R:191:3', 'test-request_handler-httr2.R:243:3', 'test-request_handler.R:5:3', 'test-request_ignorer.R:2:3', 'test-request_matcher.R:22:3', 'test-request_matcher.R:36:3', 'test-request_response.R:9:3', 'test-request_response.R:26:3', 'test-serializer.R:14:3', 'test-serializer.R:166:3', 'test-serializer.R:229:3', 'test-use_cassette.R:23:3', 'test-use_cassette.R:36:3', 'test-vcr_setup.R:3:3', 'test-vcr_setup.R:36:3', 'test-vcr_setup.R:45:3' • {jpeg} is not installed (1): 'test-serializer.R:39:3' ══ Failed tests ════════════════════════════════════════════════════════════════ ── Error ('test-check_cassette_names.R:3:3'): check_cassette_names is deprecated ── Error in `list.files(".", pattern = pattern, full.names = TRUE)`: invalid 'pattern' regular expression Backtrace: ▆ 1. └─testthat::expect_snapshot(check_cassette_names(dir)) at test-check_cassette_names.R:3:3 2. └─rlang::cnd_signal(state$error) ── Error ('test-lightswitch.R:26:3'): skip_if_vcr_off works ──────────────────── Error in `turn_off()`: You must eject all cassettes before you can turn vcr off. Backtrace: ▆ 1. ├─base::suppressMessages(turn_off()) at test-lightswitch.R:26:3 2. │ └─base::withCallingHandlers(...) 3. └─vcr::turn_off() 4. └─cli::cli_abort("You must eject all cassettes before you can turn vcr off.") 5. └─rlang::abort(...) ── Error ('test-lightswitch.R:35:3'): inserting a cassette errors when vcr turned off and ignore_cassettes=FALSE ── Error in `turn_off()`: You must eject all cassettes before you can turn vcr off. Backtrace: ▆ 1. ├─base::suppressMessages(turn_off()) at test-lightswitch.R:35:3 2. │ └─base::withCallingHandlers(...) 3. └─vcr::turn_off() 4. └─cli::cli_abort("You must eject all cassettes before you can turn vcr off.") 5. └─rlang::abort(...) ── Error ('test-request_handler-httr2.R:5:3'): can generate all three types of response ── Error in `local_cassette(name, dir = dir, record = record, match_requests_on = match_requests_on, serialize_with = serialize_with, preserve_exact_body_bytes = preserve_exact_body_bytes, re_record_interval = re_record_interval, warn_on_empty = warn_on_empty)`: `name` must not be the same as an existing cassette. Backtrace: ▆ 1. └─vcr::use_cassette("test", resp_record <- httr2::req_perform(req)) at test-request_handler-httr2.R:5:3 2. └─vcr::local_cassette(...) 3. └─vcr:::check_cassette_name(name) 4. └─cli::cli_abort(...) 5. └─rlang::abort(...) ── Error ('test-request_handler-httr2.R:34:3'): can capture & replay raw body ── Error in `local_cassette(name, dir = dir, record = record, match_requests_on = match_requests_on, serialize_with = serialize_with, preserve_exact_body_bytes = preserve_exact_body_bytes, re_record_interval = re_record_interval, warn_on_empty = warn_on_empty)`: `name` must not be the same as an existing cassette. Backtrace: ▆ 1. └─vcr::use_cassette(...) at test-request_handler-httr2.R:34:3 2. └─vcr::local_cassette(...) 3. └─vcr:::check_cassette_name(name) 4. └─cli::cli_abort(...) 5. └─rlang::abort(...) ── Error ('test-request_handler-httr2.R:65:3'): can send an image raw body in request - w/ appropriate header ── Error in `local_cassette(name, dir = dir, record = record, match_requests_on = match_requests_on, serialize_with = serialize_with, preserve_exact_body_bytes = preserve_exact_body_bytes, re_record_interval = re_record_interval, warn_on_empty = warn_on_empty)`: `name` must not be the same as an existing cassette. Backtrace: ▆ 1. └─vcr::use_cassette(...) at test-request_handler-httr2.R:65:3 2. └─vcr::local_cassette(...) 3. └─vcr:::check_cassette_name(name) 4. └─cli::cli_abort(...) 5. └─rlang::abort(...) ── Error ('test-request_handler-httr2.R:93:3'): can send an image raw body in request - w/o appropriate header ── Error in `local_cassette(name, dir = dir, record = record, match_requests_on = match_requests_on, serialize_with = serialize_with, preserve_exact_body_bytes = preserve_exact_body_bytes, re_record_interval = re_record_interval, warn_on_empty = warn_on_empty)`: `name` must not be the same as an existing cassette. Backtrace: ▆ 1. └─vcr::use_cassette(...) at test-request_handler-httr2.R:93:3 2. └─vcr::local_cassette(...) 3. └─vcr:::check_cassette_name(name) 4. └─cli::cli_abort(...) 5. └─rlang::abort(...) ── Error ('test-request_handler-httr2.R:119:3'): captured suppressed error ───── Error in `local_cassette(name, dir = dir, record = record, match_requests_on = match_requests_on, serialize_with = serialize_with, preserve_exact_body_bytes = preserve_exact_body_bytes, re_record_interval = re_record_interval, warn_on_empty = warn_on_empty)`: `name` must not be the same as an existing cassette. Backtrace: ▆ 1. └─vcr::use_cassette("test", resp_record <- httr2::req_perform(request)) at test-request_handler-httr2.R:119:3 2. └─vcr::local_cassette(...) 3. └─vcr:::check_cassette_name(name) 4. └─cli::cli_abort(...) 5. └─rlang::abort(...) ── Error ('test-request_handler-httr2.R:136:3'): can capture errors ──────────── Error in `local_cassette(name, dir = dir, record = record, match_requests_on = match_requests_on, serialize_with = serialize_with, preserve_exact_body_bytes = preserve_exact_body_bytes, re_record_interval = re_record_interval, warn_on_empty = warn_on_empty)`: `name` must not be the same as an existing cassette. Backtrace: ▆ 1. └─vcr::use_cassette(...) at test-request_handler-httr2.R:136:3 2. └─vcr::local_cassette(...) 3. └─vcr:::check_cassette_name(name) 4. └─cli::cli_abort(...) 5. └─rlang::abort(...) ── Error ('test-request_handler-httr2.R:156:3'): httr2 redacts auth header ───── Error in `local_cassette(name, dir = dir, record = record, match_requests_on = match_requests_on, serialize_with = serialize_with, preserve_exact_body_bytes = preserve_exact_body_bytes, re_record_interval = re_record_interval, warn_on_empty = warn_on_empty)`: `name` must not be the same as an existing cassette. Backtrace: ▆ 1. └─vcr::use_cassette("test", response <- httr2::req_perform(request)) at test-request_handler-httr2.R:156:3 2. └─vcr::local_cassette(...) 3. └─vcr:::check_cassette_name(name) 4. └─cli::cli_abort(...) 5. └─rlang::abort(...) ── Error ('test-request_handler-httr2.R:184:3'): binary body uses base64 encoding ── Error in `local_cassette(name, dir = dir, record = record, match_requests_on = match_requests_on, serialize_with = serialize_with, preserve_exact_body_bytes = preserve_exact_body_bytes, re_record_interval = re_record_interval, warn_on_empty = warn_on_empty)`: `name` must not be the same as an existing cassette. Backtrace: ▆ 1. └─vcr::use_cassette("test", httr2::req_perform(req)) at test-request_handler-httr2.R:184:3 2. └─vcr::local_cassette(...) 3. └─vcr:::check_cassette_name(name) 4. └─cli::cli_abort(...) 5. └─rlang::abort(...) ── Error ('test-request_handler-httr2.R:211:3'): can capture body: form ──────── Error in `local_cassette(name, dir = dir, record = record, match_requests_on = match_requests_on, serialize_with = serialize_with, preserve_exact_body_bytes = preserve_exact_body_bytes, re_record_interval = re_record_interval, warn_on_empty = warn_on_empty)`: `name` must not be the same as an existing cassette. Backtrace: ▆ 1. └─vcr::use_cassette("test", resp_record <- httr2::req_perform(req)) at test-request_handler-httr2.R:211:3 2. └─vcr::local_cassette(...) 3. └─vcr:::check_cassette_name(name) 4. └─cli::cli_abort(...) 5. └─rlang::abort(...) ── Error ('test-request_handler-httr2.R:228:3'): can capture body: multipart ─── Error in `local_cassette(name, dir = dir, record = record, match_requests_on = match_requests_on, serialize_with = serialize_with, preserve_exact_body_bytes = preserve_exact_body_bytes, re_record_interval = re_record_interval, warn_on_empty = warn_on_empty)`: `name` must not be the same as an existing cassette. Backtrace: ▆ 1. └─vcr::use_cassette("test", resp_record <- httr2::req_perform(req)) at test-request_handler-httr2.R:228:3 2. └─vcr::local_cassette(...) 3. └─vcr:::check_cassette_name(name) 4. └─cli::cli_abort(...) 5. └─rlang::abort(...) ── Error ('test-request_matcher.R:117:3'): can match empty bodies ────────────── Error in `local_cassette(name, dir = dir, record = record, match_requests_on = match_requests_on, serialize_with = serialize_with, preserve_exact_body_bytes = preserve_exact_body_bytes, re_record_interval = re_record_interval, warn_on_empty = warn_on_empty)`: `name` must not be the same as an existing cassette. Backtrace: ▆ 1. └─vcr::use_cassette("test", res1 <- cli$post("post")) at test-request_matcher.R:117:3 2. └─vcr::local_cassette(...) 3. └─vcr:::check_cassette_name(name) 4. └─cli::cli_abort(...) 5. └─rlang::abort(...) ── Error ('test-request_matcher.R:135:3'): can match json bodies ─────────────── Error in `local_cassette(name, dir = dir, record = record, match_requests_on = match_requests_on, serialize_with = serialize_with, preserve_exact_body_bytes = preserve_exact_body_bytes, re_record_interval = re_record_interval, warn_on_empty = warn_on_empty)`: `name` must not be the same as an existing cassette. Backtrace: ▆ 1. └─vcr::use_cassette("test", res1 <- httr2::req_perform(req)) at test-request_matcher.R:135:3 2. └─vcr::local_cassette(...) 3. └─vcr:::check_cassette_name(name) 4. └─cli::cli_abort(...) 5. └─rlang::abort(...) ── Error ('test-request_matcher.R:151:3'): default matcher includes body_json ── Error in `local_cassette(name, dir = dir, record = record, match_requests_on = match_requests_on, serialize_with = serialize_with, preserve_exact_body_bytes = preserve_exact_body_bytes, re_record_interval = re_record_interval, warn_on_empty = warn_on_empty)`: `name` must not be the same as an existing cassette. Backtrace: ▆ 1. └─vcr::use_cassette("test", httr2::req_perform(req1)) at test-request_matcher.R:151:3 2. └─vcr::local_cassette(...) 3. └─vcr:::check_cassette_name(name) 4. └─cli::cli_abort(...) 5. └─rlang::abort(...) ── Error ('test-request_matcher.R:167:3'): default matcher includes body ─────── Error in `local_cassette(name, dir = dir, record = record, match_requests_on = match_requests_on, serialize_with = serialize_with, preserve_exact_body_bytes = preserve_exact_body_bytes, re_record_interval = re_record_interval, warn_on_empty = warn_on_empty)`: `name` must not be the same as an existing cassette. Backtrace: ▆ 1. └─vcr::use_cassette("test", httr2::req_perform(req1)) at test-request_matcher.R:167:3 2. └─vcr::local_cassette(...) 3. └─vcr:::check_cassette_name(name) 4. └─cli::cli_abort(...) 5. └─rlang::abort(...) ── Error ('test-request_matcher.R:181:3'): request matching is not sensitive to escaping special characters ── Error in `local_cassette(name, dir = dir, record = record, match_requests_on = match_requests_on, serialize_with = serialize_with, preserve_exact_body_bytes = preserve_exact_body_bytes, re_record_interval = re_record_interval, warn_on_empty = warn_on_empty)`: `name` must not be the same as an existing cassette. Backtrace: ▆ 1. └─vcr::use_cassette("test", res <- crul::HttpClient$new(url)$get()) at test-request_matcher.R:181:3 2. └─vcr::local_cassette(...) 3. └─vcr:::check_cassette_name(name) 4. └─cli::cli_abort(...) 5. └─rlang::abort(...) ── Error ('test-serialize-body.R:91:3'): warns about v1 bodies with a string that's base64 ── Error in `local_cassette("test", warn_on_empty = FALSE)`: `name` must not be the same as an existing cassette. Backtrace: ▆ 1. └─vcr::local_cassette("test", warn_on_empty = FALSE) at test-serialize-body.R:91:3 2. └─vcr:::check_cassette_name(name) 3. └─cli::cli_abort(...) 4. └─rlang::abort(...) ── Error ('test-serialize-headers.R:20:3'): can remove headers on disk ───────── Error in `local_cassette(name, dir = dir, record = record, match_requests_on = match_requests_on, serialize_with = serialize_with, preserve_exact_body_bytes = preserve_exact_body_bytes, re_record_interval = re_record_interval, warn_on_empty = warn_on_empty)`: `name` must not be the same as an existing cassette. Backtrace: ▆ 1. └─vcr::use_cassette("test", res1 <- con$get()) at test-serialize-headers.R:20:3 2. └─vcr::local_cassette(...) 3. └─vcr:::check_cassette_name(name) 4. └─cli::cli_abort(...) 5. └─rlang::abort(...) ── Error ('test-serialize-headers.R:36:3'): can replace headers on disk ──────── Error in `local_cassette(name, dir = dir, record = record, match_requests_on = match_requests_on, serialize_with = serialize_with, preserve_exact_body_bytes = preserve_exact_body_bytes, re_record_interval = re_record_interval, warn_on_empty = warn_on_empty)`: `name` must not be the same as an existing cassette. Backtrace: ▆ 1. └─vcr::use_cassette("test", res1 <- con$get()) at test-serialize-headers.R:36:3 2. └─vcr::local_cassette(...) 3. └─vcr:::check_cassette_name(name) 4. └─cli::cli_abort(...) 5. └─rlang::abort(...) ── Error ('test-serialize-headers.R:53:3'): filter_headers doesn't add a header that doesn't exist ── Error in `local_cassette(name, dir = dir, record = record, match_requests_on = match_requests_on, serialize_with = serialize_with, preserve_exact_body_bytes = preserve_exact_body_bytes, re_record_interval = re_record_interval, warn_on_empty = warn_on_empty)`: `name` must not be the same as an existing cassette. Backtrace: ▆ 1. └─vcr::use_cassette("test", res <- con1$get()) at test-serialize-headers.R:53:3 2. └─vcr::local_cassette(...) 3. └─vcr:::check_cassette_name(name) 4. └─cli::cli_abort(...) 5. └─rlang::abort(...) ── Error ('test-serialize-headers.R:70:3'): filter_headers/response/remove ───── Error in `local_cassette(name, dir = dir, record = record, match_requests_on = match_requests_on, serialize_with = serialize_with, preserve_exact_body_bytes = preserve_exact_body_bytes, re_record_interval = re_record_interval, warn_on_empty = warn_on_empty)`: `name` must not be the same as an existing cassette. Backtrace: ▆ 1. └─vcr::use_cassette("test", res1 <- con$get()) at test-serialize-headers.R:70:3 2. └─vcr::local_cassette(...) 3. └─vcr:::check_cassette_name(name) 4. └─cli::cli_abort(...) 5. └─rlang::abort(...) ── Error ('test-serialize-headers.R:88:3'): filter_headers/response/replace ──── Error in `local_cassette(name, dir = dir, record = record, match_requests_on = match_requests_on, serialize_with = serialize_with, preserve_exact_body_bytes = preserve_exact_body_bytes, re_record_interval = re_record_interval, warn_on_empty = warn_on_empty)`: `name` must not be the same as an existing cassette. Backtrace: ▆ 1. └─vcr::use_cassette("test", res1 <- con$get()) at test-serialize-headers.R:88:3 2. └─vcr::local_cassette(...) 3. └─vcr:::check_cassette_name(name) 4. └─cli::cli_abort(...) 5. └─rlang::abort(...) [ FAIL 24 | WARN 0 | SKIP 32 | PASS 367 ] Error: Test failures Execution halted