* using log directory 'd:/Rcompile/CRANpkg/local/4.6/air.Rcheck' * using R Under development (unstable) (2025-07-22 r88445 ucrt) * using platform: x86_64-w64-mingw32 * R was compiled by gcc.exe (GCC) 14.2.0 GNU Fortran (GCC) 14.2.0 * running under: Windows Server 2022 x64 (build 20348) * using session charset: UTF-8 * checking for file 'air/DESCRIPTION' ... OK * checking extension type ... Package * this is package 'air' version '0.2.2' * package encoding: UTF-8 * checking package namespace information ... OK * checking package dependencies ... OK * checking if this is a source package ... OK * checking if there is a namespace ... OK * checking for hidden files and directories ... OK * checking for portable file names ... OK * checking whether package 'air' can be installed ... OK * checking installed package size ... OK * checking package directory ... OK * checking DESCRIPTION meta-information ... NOTE Missing dependency on R >= 4.1.0 because package code uses the pipe |> or function shorthand \(...) syntax added in R 4.1.0. File(s) using such syntax: 'gateway_keyring.R' 'gateway_openai.R' * checking top-level files ... OK * checking for left-over files ... OK * checking index information ... OK * checking package subdirectories ... OK * checking code files for non-ASCII characters ... OK * checking R files for syntax errors ... OK * checking whether the package can be loaded ... [0s] OK * checking whether the package can be loaded with stated dependencies ... [0s] OK * checking whether the package can be unloaded cleanly ... [0s] OK * checking whether the namespace can be loaded with stated dependencies ... [0s] OK * checking whether the namespace can be unloaded cleanly ... [0s] OK * checking loading without being on the library search path ... [0s] OK * checking use of S3 registration ... OK * checking dependencies in R code ... OK * checking S3 generic/method consistency ... OK * checking replacement functions ... OK * checking foreign function calls ... OK * checking R code for possible problems ... [2s] OK * checking Rd files ... [0s] OK * checking Rd metadata ... OK * checking Rd cross-references ... OK * checking for missing documentation entries ... OK * checking for code/documentation mismatches ... OK * checking Rd \usage sections ... OK * checking Rd contents ... OK * checking for unstated dependencies in examples ... OK * checking examples ... [1s] OK * checking for unstated dependencies in 'tests' ... OK * checking tests ... [3s] ERROR Running 'testthat.R' [2s] Running the tests in 'tests/testthat.R' failed. Complete output: > # 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/tests.html > # * https://testthat.r-lib.org/reference/test_package.html#special-files > > library(testthat) > library(air) > > test_check("air") [ FAIL 5 | WARN 0 | SKIP 0 | PASS 2 ] ══ Failed tests ════════════════════════════════════════════════════════════════ ── Error ('test-credentials.R:7:9'): BAD: catches an invalid API key ─────────── Error in `RequestHandlerHttr$new(req)$handle()`: Failed to find matching request in active cassette, "openai-bad-invalid-api-key". i Use `local_vcr_configure_log()` to get more details. i Learn more in `vignette(vcr::debugging)`. Backtrace: ▆ 1. ├─testthat::expect_error(bad_invalid_api_key(), "Incorrect") at test-credentials.R:13:3 2. │ └─testthat:::expect_condition_matching(...) 3. │ └─testthat:::quasi_capture(...) 4. │ ├─testthat (local) .capture(...) 5. │ │ └─base::withCallingHandlers(...) 6. │ └─rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo)) 7. └─air (local) bad_invalid_api_key() 8. ├─vcr::use_cassette(...) at test-credentials.R:5:5 9. │ └─base::withCallingHandlers(...) 10. ├─air:::with_stubbed_credentials(...) at test-credentials.R:6:7 11. └─air::howto("How do I get the first element of a list?") at test-credentials.R:7:9 12. └─air:::api_answer_or_stop(do, creds, context, call_api) 13. └─air (local) call_api(req$endpoint, creds$key, req$json_body) 14. ├─base::tryCatch(...) 15. │ └─base (local) tryCatchList(expr, classes, parentenv, handlers) 16. │ └─base (local) tryCatchOne(expr, names, parentenv, handlers[[1L]]) 17. │ └─base (local) doTryCatch(return(expr), name, parentenv, handler) 18. └─httr::POST(...) 19. └─httr:::request_perform(req, hu$handle$handle) 20. └─httr:::perform_callback("request", req = req) 21. └─vcr (local) callback(...) 22. └─RequestHandlerHttr$new(req)$handle() 23. └─cli::cli_abort(...) 24. └─rlang::abort(...) ── Error ('test-howto.R:4:7'): HAPPY: howto returns results ──────────────────── Error in `RequestHandlerHttr$new(req)$handle()`: Failed to find matching request in active cassette, "howto-happy-return-results". i Use `local_vcr_configure_log()` to get more details. i Learn more in `vignette(vcr::debugging)`. Backtrace: ▆ 1. ├─vcr::use_cassette(...) at test-howto.R:2:3 2. │ └─base::withCallingHandlers(...) 3. ├─air:::with_stubbed_credentials(...) at test-howto.R:3:5 4. ├─base::suppressMessages(air::howto("How do I get the first element of a list?")) at test-howto.R:4:7 5. │ └─base::withCallingHandlers(...) 6. └─air::howto("How do I get the first element of a list?") 7. └─air:::api_answer_or_stop(do, creds, context, call_api) 8. └─air (local) call_api(req$endpoint, creds$key, req$json_body) 9. ├─base::tryCatch(...) 10. │ └─base (local) tryCatchList(expr, classes, parentenv, handlers) 11. │ └─base (local) tryCatchOne(expr, names, parentenv, handlers[[1L]]) 12. │ └─base (local) doTryCatch(return(expr), name, parentenv, handler) 13. └─httr::POST(...) 14. └─httr:::request_perform(req, hu$handle$handle) 15. └─httr:::perform_callback("request", req = req) 16. └─vcr (local) callback(...) 17. └─RequestHandlerHttr$new(req)$handle() 18. └─cli::cli_abort(...) 19. └─rlang::abort(...) ── Error ('test-howto.R:19:9'): HAPPY: howto prints result message ───────────── Error in `RequestHandlerHttr$new(req)$handle()`: Failed to find matching request in active cassette, "howto-happy-print-results". i Use `local_vcr_configure_log()` to get more details. i Learn more in `vignette(vcr::debugging)`. Backtrace: ▆ 1. ├─vcr::use_cassette(...) at test-howto.R:16:3 2. │ └─base::withCallingHandlers(...) 3. ├─testthat::expect_message(happy_results(), ".*\n+") at test-howto.R:22:5 4. │ └─testthat:::expect_condition_matching(...) 5. │ └─testthat:::quasi_capture(...) 6. │ ├─testthat (local) .capture(...) 7. │ │ └─base::withCallingHandlers(...) 8. │ └─rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo)) 9. └─air (local) happy_results() 10. ├─air:::with_stubbed_credentials(...) at test-howto.R:18:7 11. └─air::howto("How do I get the first element of a list?") at test-howto.R:19:9 12. └─air:::api_answer_or_stop(do, creds, context, call_api) 13. └─air (local) call_api(req$endpoint, creds$key, req$json_body) 14. ├─base::tryCatch(...) 15. │ └─base (local) tryCatchList(expr, classes, parentenv, handlers) 16. │ └─base (local) tryCatchOne(expr, names, parentenv, handlers[[1L]]) 17. │ └─base (local) doTryCatch(return(expr), name, parentenv, handler) 18. └─httr::POST(...) 19. └─httr:::request_perform(req, hu$handle$handle) 20. └─httr:::perform_callback("request", req = req) 21. └─vcr (local) callback(...) 22. └─RequestHandlerHttr$new(req)$handle() 23. └─cli::cli_abort(...) 24. └─rlang::abort(...) ── Error ('test-whatis.R:5:9'): HAPPY: whatis returns results ────────────────── Error in `RequestHandlerHttr$new(req)$handle()`: Failed to find matching request in active cassette, "whatis-happy-return-results". i Use `local_vcr_configure_log()` to get more details. i Learn more in `vignette(vcr::debugging)`. Backtrace: ▆ 1. ├─vcr::use_cassette(...) at test-whatis.R:2:3 2. │ └─base::withCallingHandlers(...) 3. ├─air:::with_stubbed_credentials(...) at test-whatis.R:3:5 4. ├─air:::with_stubbed_credentials(...) at test-whatis.R:4:7 5. ├─base::suppressMessages(air::whatis("paste0(vector1, vector2)")) at test-whatis.R:5:9 6. │ └─base::withCallingHandlers(...) 7. └─air::whatis("paste0(vector1, vector2)") 8. └─air:::api_answer_or_stop(this, creds, context, call_api) 9. └─air (local) call_api(req$endpoint, creds$key, req$json_body) 10. ├─base::tryCatch(...) 11. │ └─base (local) tryCatchList(expr, classes, parentenv, handlers) 12. │ └─base (local) tryCatchOne(expr, names, parentenv, handlers[[1L]]) 13. │ └─base (local) doTryCatch(return(expr), name, parentenv, handler) 14. └─httr::POST(...) 15. └─httr:::request_perform(req, hu$handle$handle) 16. └─httr:::perform_callback("request", req = req) 17. └─vcr (local) callback(...) 18. └─RequestHandlerHttr$new(req)$handle() 19. └─cli::cli_abort(...) 20. └─rlang::abort(...) ── Error ('test-whatis.R:16:9'): HAPPY: whatis prints result message ─────────── Error in `RequestHandlerHttr$new(req)$handle()`: Failed to find matching request in active cassette, "whatis-happy-print-results". i Use `local_vcr_configure_log()` to get more details. i Learn more in `vignette(vcr::debugging)`. Backtrace: ▆ 1. ├─testthat::expect_message(good(), ".*\n+") at test-whatis.R:21:3 2. │ └─testthat:::expect_condition_matching(...) 3. │ └─testthat:::quasi_capture(...) 4. │ ├─testthat (local) .capture(...) 5. │ │ └─base::withCallingHandlers(...) 6. │ └─rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo)) 7. └─air (local) good() 8. ├─vcr::use_cassette(...) at test-whatis.R:14:5 9. │ └─base::withCallingHandlers(...) 10. ├─air:::with_stubbed_credentials(...) at test-whatis.R:15:7 11. └─air::whatis("paste0(vector1, vector2)") at test-whatis.R:16:9 12. └─air:::api_answer_or_stop(this, creds, context, call_api) 13. └─air (local) call_api(req$endpoint, creds$key, req$json_body) 14. ├─base::tryCatch(...) 15. │ └─base (local) tryCatchList(expr, classes, parentenv, handlers) 16. │ └─base (local) tryCatchOne(expr, names, parentenv, handlers[[1L]]) 17. │ └─base (local) doTryCatch(return(expr), name, parentenv, handler) 18. └─httr::POST(...) 19. └─httr:::request_perform(req, hu$handle$handle) 20. └─httr:::perform_callback("request", req = req) 21. └─vcr (local) callback(...) 22. └─RequestHandlerHttr$new(req)$handle() 23. └─cli::cli_abort(...) 24. └─rlang::abort(...) [ FAIL 5 | WARN 0 | SKIP 0 | PASS 2 ] Error: Test failures In addition: Warning message: `check_cassette_names()` was deprecated in vcr 2.0.0. Execution halted * checking PDF version of manual ... [20s] OK * checking HTML version of manual ... [1s] OK * DONE Status: 1 ERROR, 1 NOTE