* using log directory ‘/srv/hornik/tmp/CRAN_pretest/rtoot.Rcheck’ * using R Under development (unstable) (2025-07-22 r88445) * using platform: x86_64-pc-linux-gnu * R was compiled by Debian clang version 19.1.7 (3) Debian flang-new version 19.1.7 (3) * running under: Debian GNU/Linux 13 (trixie) * using session charset: UTF-8 * checking for file ‘rtoot/DESCRIPTION’ ... OK * this is package ‘rtoot’ version ‘0.3.6’ * package encoding: UTF-8 * checking CRAN incoming feasibility ... [5s/7s] NOTE Maintainer: ‘David Schoch ’ Unknown, possibly misspelled, fields in DESCRIPTION: ‘Remotes’ * 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 whether package ‘rtoot’ can be installed ... [1s/1s] OK * checking package directory ... OK * checking for future file timestamps ... OK * checking ‘build’ directory ... OK * checking DESCRIPTION meta-information ... OK * 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/3s] OK * checking Rd files ... [0s/0s] 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 R/sysdata.rda ... OK * checking installed files from ‘inst/doc’ ... OK * checking files in ‘vignettes’ ... OK * checking examples ... [1s/1s] OK * checking for unstated dependencies in ‘tests’ ... OK * checking tests ... [7s/15s] ERROR Running ‘testthat.R’ [7s/15s] 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(rtoot) > > test_check("rtoot") You should do software testing with the `RTOOT_DEFAULT_TOKEN` envvar! Read: https://github.com/gesistsa/rtoot/wiki/vcr You should do software testing with the `RTOOT_DEFAULT_TOKEN` envvar! Read: https://github.com/gesistsa/rtoot/wiki/vcr You should do software testing with the `RTOOT_DEFAULT_TOKEN` envvar! Read: https://github.com/gesistsa/rtoot/wiki/vcr You should do software testing with the `RTOOT_DEFAULT_TOKEN` envvar! Read: https://github.com/gesistsa/rtoot/wiki/vcr You should do software testing with the `RTOOT_DEFAULT_TOKEN` envvar! Read: https://github.com/gesistsa/rtoot/wiki/vcr You should do software testing with the `RTOOT_DEFAULT_TOKEN` envvar! Read: https://github.com/gesistsa/rtoot/wiki/vcr You should do software testing with the `RTOOT_DEFAULT_TOKEN` envvar! Read: https://github.com/gesistsa/rtoot/wiki/vcr You should do software testing with the `RTOOT_DEFAULT_TOKEN` envvar! Read: https://github.com/gesistsa/rtoot/wiki/vcr You should do software testing with the `RTOOT_DEFAULT_TOKEN` envvar! Read: https://github.com/gesistsa/rtoot/wiki/vcr You should do software testing with the `RTOOT_DEFAULT_TOKEN` envvar! Read: https://github.com/gesistsa/rtoot/wiki/vcr You should do software testing with the `RTOOT_DEFAULT_TOKEN` envvar! Read: https://github.com/gesistsa/rtoot/wiki/vcr You should do software testing with the `RTOOT_DEFAULT_TOKEN` envvar! Read: https://github.com/gesistsa/rtoot/wiki/vcr You should do software testing with the `RTOOT_DEFAULT_TOKEN` envvar! Read: https://github.com/gesistsa/rtoot/wiki/vcr You should do software testing with the `RTOOT_DEFAULT_TOKEN` envvar! Read: https://github.com/gesistsa/rtoot/wiki/vcr You should do software testing with the `RTOOT_DEFAULT_TOKEN` envvar! Read: https://github.com/gesistsa/rtoot/wiki/vcr You should do software testing with the `RTOOT_DEFAULT_TOKEN` envvar! Read: https://github.com/gesistsa/rtoot/wiki/vcr You should do software testing with the `RTOOT_DEFAULT_TOKEN` envvar! Read: https://github.com/gesistsa/rtoot/wiki/vcr You should do software testing with the `RTOOT_DEFAULT_TOKEN` envvar! Read: https://github.com/gesistsa/rtoot/wiki/vcr You should do software testing with the `RTOOT_DEFAULT_TOKEN` envvar! Read: https://github.com/gesistsa/rtoot/wiki/vcr You should do software testing with the `RTOOT_DEFAULT_TOKEN` envvar! Read: https://github.com/gesistsa/rtoot/wiki/vcr [ FAIL 63 | WARN 17 | SKIP 13 | PASS 213 ] ══ Skipped tests (13) ══════════════════════════════════════════════════════════ • !file.exists("../testdata/malformed.json") is TRUE (1): 'test-stream.R:106:3' • On CRAN (8): 'test-auth_check_token_rtoot.R:75:3', 'test-auth_check_token_rtoot.R:85:3', 'test-auth_check_token_rtoot.R:99:3', 'test-auth_check_token_rtoot.R:117:3', 'test-auth_check_token_rtoot.R:134:3', 'test-auth_setup.R:6:3', 'test-stream.R:29:3', 'test-stream.R:59:3' • Skipping all tests in this file temporarily (1): 'test-post.R:1:1' • Sys.getenv("RTOOT_DEFAULT_TOKEN") == "" is TRUE (1): 'test-auth_envvar.R:45:3' • clipr::clipr_available() is not TRUE (2): 'test-auth_envvar.R:20:3', 'test-auth_process_created_token.R:60:3' ══ Failed tests ════════════════════════════════════════════════════════════════ ── Failure ('test-auth_process_created_token.R:91:5'): verify ────────────────── `... <- NULL` did not throw the expected error. Backtrace: ▆ 1. ├─vcr::use_cassette(...) at test-auth_process_created_token.R:90:3 2. │ └─cassette$call_block(...) 3. └─testthat::expect_error(...) at test-auth_process_created_token.R:91:5 ── Error ('test-auth_setup.R:38:5'): respect verbose, #113 ───────────────────── Error in `httr::content(auth2)$access_token`: $ operator is invalid for atomic vectors Backtrace: ▆ 1. ├─vcr::use_cassette(...) at test-auth_setup.R:37:3 2. │ └─cassette$call_block(...) 3. ├─testthat::expect_silent(...) at test-auth_setup.R:38:5 4. │ └─testthat:::quasi_capture(enquo(object), NULL, evaluate_promise) 5. │ ├─testthat (local) .capture(...) 6. │ │ ├─withr::with_output_sink(...) 7. │ │ │ └─base::force(code) 8. │ │ ├─base::withCallingHandlers(...) 9. │ │ └─base::withVisible(code) 10. │ └─rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo)) 11. └─rtoot::auth_setup(...) 12. ├─rtoot:::process_created_token(...) 13. │ └─rtoot:::save_auth_rtoot(token, name, path) 14. │ └─rtoot:::is_auth_rtoot(token) 15. └─rtoot:::create_token(client, type = type, browser = browser) ── Error ('test-auth_verify.R:15:5'): verify_envvar (Good case), silent ──────── Error in `get_token_from_envvar()`: envvar not found. Backtrace: ▆ 1. ├─vcr::use_cassette(...) at test-auth_verify.R:14:3 2. │ └─cassette$call_block(...) 3. ├─testthat::expect_silent(verify_envvar(verbose = FALSE)) at test-auth_verify.R:15:5 4. │ └─testthat:::quasi_capture(enquo(object), NULL, evaluate_promise) 5. │ ├─testthat (local) .capture(...) 6. │ │ ├─withr::with_output_sink(...) 7. │ │ │ └─base::force(code) 8. │ │ ├─base::withCallingHandlers(...) 9. │ │ └─base::withVisible(code) 10. │ └─rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo)) 11. └─rtoot::verify_envvar(verbose = FALSE) 12. └─rtoot:::get_token_from_envvar() 13. └─cli::cli_abort("envvar not found.") 14. └─rlang::abort(...) ── Failure ('test-get_account.R:15:3'): get_account ──────────────────────────── `id` (`actual`) not equal to x$id (`expected`). `actual` is a character vector ('109302436954721982') `expected` is a logical vector (NA) ── Failure ('test-get_account.R:21:3'): get_account ──────────────────────────── `id` (`actual`) not equal to x$id (`expected`). `actual` is a character vector ('109302436954721982') `expected` is NULL ── Failure ('test-get_account_auth.R:23:3'): get_account_followers ───────────── nrow(x) != 0 is not TRUE `actual`: FALSE `expected`: TRUE ── Failure ('test-get_account_auth.R:40:3'): get_account_following ───────────── nrow(x) != 0 is not TRUE `actual`: FALSE `expected`: TRUE ── Failure ('test-get_account_auth.R:57:3'): get_account_bookmarks ───────────── nrow(x) != 0 is not TRUE `actual`: FALSE `expected`: TRUE ── Failure ('test-get_account_auth.R:69:3'): get_account_favourites ──────────── nrow(x) != 0 is not TRUE `actual`: FALSE `expected`: TRUE ── Failure ('test-get_account_auth.R:81:3'): get_account_blocks ──────────────── nrow(x) != 0 is not TRUE `actual`: FALSE `expected`: TRUE ── Failure ('test-get_account_auth.R:94:3'): get_account_mutes ───────────────── nrow(x) != 0 is not TRUE `actual`: FALSE `expected`: TRUE ── Failure ('test-get_account_statuses.R:14:3'): get_account_statuses ────────── nrow(x) != 0 is not TRUE `actual`: FALSE `expected`: TRUE ── Failure ('test-get_account_statuses.R:34:3'): get_account_statuses, limit ─── nrow(x) > 40 is not TRUE `actual`: FALSE `expected`: TRUE ── Failure ('test-get_context.R:17:3'): get_context ──────────────────────────── nrow(x$descendants) == 0 is not FALSE `actual`: TRUE `expected`: FALSE ── Failure ('test-get_context.R:43:3'): get_context ──────────────────────────── nrow(x$descendants) == 0 is not FALSE `actual`: TRUE `expected`: FALSE ── Failure ('test-get_context.R:52:3'): get_context ──────────────────────────── nrow(x$descendants) == 0 is not FALSE `actual`: TRUE `expected`: FALSE ── Failure ('test-get_context.R:60:3'): get_context ──────────────────────────── nrow(x$ancestors) != 0 is not TRUE `actual`: FALSE `expected`: TRUE ── Failure ('test-get_context.R:68:3'): get_context ──────────────────────────── nrow(x$ancestors) != 0 is not TRUE `actual`: FALSE `expected`: TRUE ── Failure ('test-get_favourited_by.R:18:3'): get_favourited_by ──────────────── nrow(x) != 0 is not TRUE `actual`: FALSE `expected`: TRUE ── Failure ('test-get_favourited_by.R:39:3'): get_favourited_by ──────────────── nrow(x) != 0 is not TRUE `actual`: FALSE `expected`: TRUE ── Failure ('test-get_favourited_by.R:45:3'): get_favourited_by ──────────────── nrow(x) != 0 is not TRUE `actual`: FALSE `expected`: TRUE ── Failure ('test-get_poll.R:13:3'): get_poll ────────────────────────────────── x$id (`actual`) not equal to `id` (`expected`). `actual` is a logical vector (NA) `expected` is a character vector ('684128') ── Failure ('test-get_poll.R:24:3'): get_poll ────────────────────────────────── x$id (`actual`) not equal to `id` (`expected`). `actual` is a logical vector (NA) `expected` is a character vector ('684128') ── Failure ('test-get_poll.R:35:3'): get_poll ────────────────────────────────── x$id (`actual`) not equal to `id` (`expected`). `actual` is a logical vector (NA) `expected` is a character vector ('684128') ── Failure ('test-get_reblogged_by.R:18:3'): get_reblogged_by ────────────────── nrow(x) != 0 is not TRUE `actual`: FALSE `expected`: TRUE ── Failure ('test-get_reblogged_by.R:39:3'): get_reblogged_by ────────────────── nrow(x) != 0 is not TRUE `actual`: FALSE `expected`: TRUE ── Failure ('test-get_reblogged_by.R:45:3'): get_reblogged_by ────────────────── nrow(x) != 0 is not TRUE `actual`: FALSE `expected`: TRUE ── Failure ('test-get_status.R:14:3'): get_status ────────────────────────────── x$id (`actual`) not equal to `id` (`expected`). `actual` is a logical vector (NA) `expected` is a character vector ('114620457512351116') ── Failure ('test-get_status.R:20:3'): get_status ────────────────────────────── x$id (`actual`) not equal to `id` (`expected`). `actual` is NULL `expected` is a character vector ('114620457512351116') ── Failure ('test-get_status.R:26:3'): get_status ────────────────────────────── x$id (`actual`) not equal to `id` (`expected`). `actual` is a logical vector (NA) `expected` is a character vector ('114620457512351116') ── Failure ('test-get_status.R:37:3'): get_status ────────────────────────────── x$id (`actual`) not equal to `id` (`expected`). `actual` is a logical vector (NA) `expected` is a character vector ('114620457512351116') ── Failure ('test-get_timeline_hashtag.R:16:3'): get_timeline_hashtag ────────── nrow(x) == 5 is not TRUE `actual`: FALSE `expected`: TRUE ── Failure ('test-get_timeline_hashtag.R:25:3'): get_timeline_hashtag ────────── nrow(x) == 5 is not TRUE `actual`: FALSE `expected`: TRUE ── Failure ('test-get_timeline_hashtag.R:44:3'): get_timeline_hashtag ────────── nrow(x) == 5 is not TRUE `actual`: FALSE `expected`: TRUE ── Failure ('test-get_timeline_hashtag.R:55:3'): get_timeline_hashtag ────────── nrow(x) == 5 is not TRUE `actual`: FALSE `expected`: TRUE ── Failure ('test-get_timeline_home.R:12:3'): get_timeline_home ──────────────── nrow(x) == 5 is not TRUE `actual`: FALSE `expected`: TRUE ── Failure ('test-get_timeline_home.R:27:3'): get_timeline_home ──────────────── nrow(y) == 5 is not TRUE `actual`: FALSE `expected`: TRUE ── Failure ('test-get_timeline_list.R:17:3'): get_timeline_list ──────────────── nrow(x) == 4 is not TRUE `actual`: FALSE `expected`: TRUE ── Failure ('test-get_timeline_public.R:12:3'): get_timeline_public ──────────── nrow(x) != 0 is not TRUE `actual`: FALSE `expected`: TRUE ── Failure ('test-get_timeline_public.R:21:3'): get_timeline_public ──────────── nrow(x) != 0 is not TRUE `actual`: FALSE `expected`: TRUE ── Failure ('test-get_timeline_public.R:27:3'): get_timeline_public ──────────── length(unique(sapply(x$uri, function(uri) httr::parse_url(uri)$hostname))) (`actual`) not equal to 1 (`expected`). `actual`: 0.0 `expected`: 1.0 ── Failure ('test-get_timeline_public.R:38:3'): get_timeline_public ──────────── nrow(x) != 0 is not TRUE `actual`: FALSE `expected`: TRUE ── Failure ('test-handle_params.R:46:3'): integration test ───────────────────── nrow(output) (`actual`) not equal to 160 (`expected`). `actual`: 0.0 `expected`: 160.0 ── Failure ('test-handle_params.R:47:3'): integration test ───────────────────── length(unique(output$id)) (`actual`) not equal to 160 (`expected`). `actual`: 0.0 `expected`: 160.0 ── Error ('test-instances.R:13:5'): get_fedi_instances ───────────────────────── Error in `httr::content(request_results)$instances`: $ operator is invalid for atomic vectors Backtrace: ▆ 1. ├─vcr::use_cassette(...) at test-instances.R:12:3 2. │ └─cassette$call_block(...) 3. └─rtoot::get_fedi_instances(token = fake_token2) at test-instances.R:13:5 4. └─dplyr::bind_rows(httr::content(request_results)$instances) 5. └─rlang::list2(...) ── Error ('test-instances.R:24:3'): get_instance_general ─────────────────────── Error in `x$uri`: $ operator is invalid for atomic vectors Backtrace: ▆ 1. └─testthat::expect_equal(x$uri, "mastodon.hk") at test-instances.R:24:3 2. └─testthat::quasi_label(enquo(object), label, arg = "object") 3. └─rlang::eval_bare(expr, quo_get_env(quo)) ── Failure ('test-instances.R:39:3'): get_instance_peers ─────────────────────── length(x) != 0 is not TRUE `actual`: FALSE `expected`: TRUE ── Failure ('test-instances.R:47:3'): get_instance_peers ─────────────────────── length(x) != 0 is not TRUE `actual`: FALSE `expected`: TRUE ── Error ('test-instances.R:52:5'): get_instance_activity ────────────────────── Error in `dplyr::bind_rows(request_results)`: Argument 1 must be a data frame or a named atomic vector. Backtrace: ▆ 1. ├─vcr::use_cassette(...) at test-instances.R:51:3 2. │ └─cassette$call_block(...) 3. └─rtoot::get_instance_activity(instance = "social.tchncs.de", token = fake_token) at test-instances.R:52:5 4. └─dplyr::bind_rows(request_results) 5. └─rlang::abort(glue("Argument {i} must be a data frame or a named atomic vector.")) ── Error ('test-instances.R:72:5'): get_instance_emoji ───────────────────────── Error in `dplyr::bind_rows(request_results)`: Argument 1 must be a data frame or a named atomic vector. Backtrace: ▆ 1. ├─vcr::use_cassette(...) at test-instances.R:71:3 2. │ └─cassette$call_block(...) 3. └─rtoot::get_instance_emoji(instance = "social.tchncs.de", token = fake_token) at test-instances.R:72:5 4. └─dplyr::bind_rows(request_results) 5. └─rlang::abort(glue("Argument {i} must be a data frame or a named atomic vector.")) ── Failure ('test-instances.R:96:3'): get_instance_directory ─────────────────── nrow(x) != 0 is not TRUE `actual`: FALSE `expected`: TRUE ── Failure ('test-instances.R:115:3'): get_instance_directory ────────────────── nrow(x) != 0 is not TRUE `actual`: FALSE `expected`: TRUE ── Error ('test-instances.R:120:5'): get_instance_trends ─────────────────────── Error in `dplyr::bind_rows(request_results)`: Argument 1 must be a data frame or a named atomic vector. Backtrace: ▆ 1. ├─vcr::use_cassette(...) at test-instances.R:119:3 2. │ └─cassette$call_block(...) 3. └─rtoot::get_instance_trends(instance = "social.tchncs.de", token = fake_token) at test-instances.R:120:5 4. └─dplyr::bind_rows(request_results) 5. └─rlang::abort(glue("Argument {i} must be a data frame or a named atomic vector.")) ── Error ('test-instances.R:137:5'): get_instance_rules ──────────────────────── Error in `get_instance_general(instance = instance, token = token, anonymous = anonymous)$rules`: $ operator is invalid for atomic vectors Backtrace: ▆ 1. ├─vcr::use_cassette(...) at test-instances.R:136:3 2. │ └─cassette$call_block(...) 3. └─rtoot::get_instance_rules(instance = "mastodon.social", anonymous = TRUE) at test-instances.R:137:5 ── Error ('test-instances.R:145:5'): get_instance_blocks ─────────────────────── Error in `dplyr::bind_rows(request_results)`: Argument 1 must be a data frame or a named atomic vector. Backtrace: ▆ 1. ├─vcr::use_cassette(...) at test-instances.R:144:3 2. │ └─cassette$call_block(...) 3. └─rtoot::get_instance_blocks(instance = "mastodon.social", anonymous = TRUE) at test-instances.R:145:5 4. └─dplyr::bind_rows(request_results) 5. └─rlang::abort(glue("Argument {i} must be a data frame or a named atomic vector.")) ── Failure ('test-lists.R:17:3'): get_list_accounts ──────────────────────────── nrow(x) == 1 is not TRUE `actual`: FALSE `expected`: TRUE ── Failure ('test-lists.R:25:3'): get_lists ──────────────────────────────────── nrow(x) == 1 is not TRUE `actual`: FALSE `expected`: TRUE ── Failure ('test-pagination.R:32:3'): process_request: n > page_size ────────── nrow(x) >= n is not TRUE `actual`: FALSE `expected`: TRUE ── Failure ('test-pagination.R:56:3'): process_request: n < page_size ────────── nrow(x) >= n is not TRUE `actual`: FALSE `expected`: TRUE ── Failure ('test-pagination.R:80:3'): process_request: n == page_size, and page_size is lower than API limit ── nrow(x) == n is not TRUE `actual`: FALSE `expected`: TRUE ── Failure ('test-rtoot.R:32:3'): rtoot examples ─────────────────────────────── length(x1) (`actual`) not equal to 2 (`expected`). `actual`: 0.0 `expected`: 2.0 ── Failure ('test-rtoot.R:33:3'): rtoot examples ─────────────────────────────── length(x2) (`actual`) not equal to 3 (`expected`). `actual`: 0.0 `expected`: 3.0 ── Failure ('test-search_accounts.R:13:3'): search_accounts ──────────────────── nrow(x) != 0 is not TRUE `actual`: FALSE `expected`: TRUE [ FAIL 63 | WARN 17 | SKIP 13 | PASS 213 ] Error: Test failures Execution halted * checking for unstated dependencies in vignettes ... OK * checking package vignettes ... OK * checking re-building of vignette outputs ... [3s/3s] OK * checking PDF version of manual ... [3s/3s] OK * checking HTML version of manual ... [1s/1s] OK * checking for non-standard things in the check directory ... OK * checking for detritus in the temp directory ... OK * DONE Status: 1 ERROR, 1 NOTE