- using R version 4.5.1 Patched (2025-07-14 r88411)
- using platform: x86_64-pc-linux-gnu
- R was compiled by
gcc-14 (Debian 14.2.0-19) 14.2.0
GNU Fortran (Debian 14.2.0-19) 14.2.0
- running under: Debian GNU/Linux 13 (trixie)
- 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 executable files ... OK
- checking for hidden files and directories ... OK
- checking for portable file names ... OK
- checking for sufficient/correct file permissions ... OK
- checking serialization versions ... OK
- checking whether package ‘air’ can be installed ... OK
See the install log for details.
- checking package directory ... OK
- checking for future file timestamps ... 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/0s] OK
- checking whether the package can be loaded with stated dependencies ... [0s/0s] OK
- checking whether the package can be unloaded cleanly ... [0s/0s] OK
- checking whether the namespace can be loaded with stated dependencies ... [0s/0s] OK
- checking whether the namespace can be unloaded cleanly ... [0s/0s] OK
- checking loading without being on the library search path ... [0s/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 ... [3s/4s] OK
- checking Rd files ... [0s/1s] OK
- checking Rd metadata ... OK
- checking Rd line widths ... 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 ... [0s/1s] OK
- checking for unstated dependencies in ‘tests’ ... OK
- checking tests ... [3s/3s] ERROR
Running ‘testthat.R’ [2s/3s]
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 `rjson::fromJSON(json_body)`: attempt to set index 1/1 in SET_STRING_ELT
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. │ └─cassette$call_block(...)
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:::parse_response_message(value(res))
14. └─rjson::fromJSON(json_body)
── Error ('test-howto.R:4:7'): HAPPY: howto returns results ────────────────────
Error in `rjson::fromJSON(json_body)`: attempt to set index 1/1 in SET_STRING_ELT
Backtrace:
▆
1. ├─vcr::use_cassette(...) at test-howto.R:2:3
2. │ └─cassette$call_block(...)
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:::parse_response_message(value(res))
9. └─rjson::fromJSON(json_body)
── Error ('test-howto.R:19:9'): HAPPY: howto prints result message ─────────────
Error in `rjson::fromJSON(json_body)`: attempt to set index 1/1 in SET_STRING_ELT
Backtrace:
▆
1. ├─vcr::use_cassette(...) at test-howto.R:16:3
2. │ └─cassette$call_block(...)
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:::parse_response_message(value(res))
14. └─rjson::fromJSON(json_body)
── Error ('test-whatis.R:5:9'): HAPPY: whatis returns results ──────────────────
Error in `rjson::fromJSON(json_body)`: attempt to set index 1/1 in SET_STRING_ELT
Backtrace:
▆
1. ├─vcr::use_cassette(...) at test-whatis.R:2:3
2. │ └─cassette$call_block(...)
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:::parse_response_message(value(res))
10. └─rjson::fromJSON(json_body)
── Error ('test-whatis.R:16:9'): HAPPY: whatis prints result message ───────────
Error in `rjson::fromJSON(json_body)`: attempt to set index 1/1 in SET_STRING_ELT
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. │ └─cassette$call_block(...)
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:::parse_response_message(value(res))
14. └─rjson::fromJSON(json_body)
[ FAIL 5 | WARN 0 | SKIP 0 | PASS 2 ]
Error: Test failures
Execution halted
- checking PDF version of manual ... [4s/6s] OK
- checking HTML version of manual ... [0s/0s] OK
- checking for non-standard things in the check directory ... OK
- DONE
Status: 1 ERROR, 1 NOTE