Running ‘testthat.R’ [5s/358s]
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/testing-design.html#sec-tests-files-overview
  > # * https://testthat.r-lib.org/articles/special-files.html
  > 
  > library(testthat)
  > library(PubChemR)
  > 
  > # Functions used globally in package tests (testthat) ----
  > allSuccess <- function(object){
  +   all(unlist(lapply(object$result, "[[", "success")))
  + }
  > 
  > testRequest <- function(object, ...){
  +   test_that(paste0("pulling via '", request_args(object, "namespace"), "' is succesfull"), {
  +     expect_true(allSuccess(object))
  +   })
  + 
  +   test_that("prints output to the R Console", {
  +     expect_output(print(object))
  +   })
  + }
  > 
  > # Set 'skipTests' FALSE to run test codes. This is set TRUE to skip
  > # all tests on GitHub actions since some of PubChem requests were incomplete due to
  > # timeout and/or API related issues. BUILD & CHECK actions on GitHub returns error
  > # even if all tests were passed on local installations of R.
  > skipTests <- FALSE
  > 
  > if (!skipTests){
  +   test_check("PubChemR")
  + }
  Error in curl::curl_fetch_memory(url, handle = handle) : 
    Timeout was reached [pubchem.ncbi.nlm.nih.gov]: Resolving timed out after 10000 milliseconds
  Error in curl::curl_fetch_memory(url, handle = handle) : 
    Timeout was reached [pubchem.ncbi.nlm.nih.gov]: Resolving timed out after 10000 milliseconds
  Error in curl::curl_fetch_memory(url, handle = handle) : 
    Timeout was reached [pubchem.ncbi.nlm.nih.gov]: Resolving timed out after 10000 milliseconds
  Error in curl::curl_fetch_memory(url, handle = handle) : 
    Timeout was reached [pubchem.ncbi.nlm.nih.gov]: Connection timed out after 10000 milliseconds
  The file has been saved to '/tmp/RtmpBnDmiI/aspirin.sdf'
  
  Request failed [400]. Retrying in 3.3 seconds...
  Request failed [400]. Retrying in 1 seconds...
  SDF file saved successfully:
    File Name: 'aspirin_20250221_134939.sdf'
    Saved at: /tmp/RtmpBnDmiI
  SDF file saved successfully:
    File Name: 'file.sdf'
    Saved at: /tmp/RtmpBnDmiI
  'path' is not specified. Saving files into a temporary folder.
  SDF file saved successfully:
    File Name: 'file.sdf'
    Saved at: /tmp/RtmpBnDmiI
  Failed to retrieve synonyms for identifier 'aspirin': <text>:1:9: unexpected symbol
  1: Timeout was
              ^
  Failed to retrieve synonyms for identifier 'ibuprofen': <text>:1:9: unexpected symbol
  1: Timeout was
              ^
  Failed to retrieve synonyms for identifier 'aspirin': <text>:1:9: unexpected symbol
  1: Timeout was
              ^
  Failed to retrieve synonyms for identifier '2244': <text>:1:9: unexpected symbol
  1: Timeout was
              ^
  Failed to retrieve synonyms for identifier 'dncr': <text>:1:9: unexpected symbol
  1: Timeout was
              ^
  [ FAIL 22 | WARN 11 | SKIP 0 | PASS 179 ]
  
  ══ Failed tests ════════════════════════════════════════════════════════════════
  ── Failure ('test-00_globals.R:66:3'): succesfully returned primary class of given object ──
  primaryClass(instance(tmp)) (`actual`) not equal to "PubChemInstance" (`expected`).
  
  `actual`:   "NULL"           
  `expected`: "PubChemInstance"
  ── Error ('test-00_globals.R:83:3'): slot details successfully printed ─────────
  <subscriptOutOfBoundsError/error/condition>
  Error in `x[[1]]`: subscript out of bounds
  Backtrace:
       ▆
    1. ├─testthat::expect_output(printSlotDetails(find_last_layer(pview$result))) at test-00_globals.R:83:3
    2. │ └─testthat:::quasi_capture(...)
    3. │   ├─testthat (local) .capture(...)
    4. │   │ └─testthat::capture_output_lines(code, print, width = width)
    5. │   │   └─testthat:::eval_with_output(code, print = print, width = width)
    6. │   │     ├─withr::with_output_sink(path, withVisible(code))
    7. │   │     │ └─base::force(code)
    8. │   │     └─base::withVisible(code)
    9. │   └─rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo))
   10. ├─PubChemR:::printSlotDetails(find_last_layer(pview$result))
   11. └─PubChemR:::find_last_layer(pview$result)
  ── Error ('test-00_globals.R:90:3'): section details successfully printed ──────
  Error in `UseMethod("section")`: no applicable method for 'section' applied to an object of class "NULL"
  Backtrace:
      ▆
   1. ├─PubChemR::section(pview, "S1") at test-00_globals.R:90:3
   2. └─PubChemR:::section.PugViewInstance(pview, "S1")
   3.   ├─base::do.call("section", call_args)
   4.   └─PubChemR::section(object = NULL, .id = "S1", .verbose = FALSE)
  ── Failure ('test-download.R:51:5'): overwrite file if it already exists. ──────
  identical(ctime, mtime) is not FALSE
  
  `actual`:   TRUE 
  `expected`: FALSE
  ── Failure ('test-download.R:119:3'): create 'path' if it does not exist. ──────
  all(file.exists(json_file), file.exists(sdf_file)) is not TRUE
  
  `actual`:   FALSE
  `expected`: TRUE 
  ── Failure ('test-get_sids.R:24:5'): SIDs succesfully returns 'data.frame' and 'list' ──
  {
      ...
  } is not TRUE
  
  `actual`:   FALSE
  `expected`: TRUE 
  Backtrace:
      ▆
   1. └─PubChemR (local) toDataFrame(object) at test-get_sids.R:24:5
   2.   └─testthat::expect_true(...) at test-get_sids.R:5:3
  ── Failure ('test-get_sids.R:24:5'): SIDs succesfully returns 'data.frame' and 'list' ──
  {
      ...
  } is not TRUE
  
  `actual`:   FALSE
  `expected`: TRUE 
  Backtrace:
      ▆
   1. └─PubChemR (local) toDataFrame(object) at test-get_sids.R:24:5
   2.   └─testthat::expect_true(...) at test-get_sids.R:5:3
  ── Failure ('test-get_sids.R:24:5'): SIDs succesfully returns 'data.frame' and 'list' ──
  {
      ...
  } is not TRUE
  
  `actual`:   FALSE
  `expected`: TRUE 
  Backtrace:
      ▆
   1. └─PubChemR (local) toDataFrame(object) at test-get_sids.R:24:5
   2.   └─testthat::expect_true(...) at test-get_sids.R:5:3
  ── Failure ('test-get_sids.R:53:3'): pulling sids for multiple identifiers with undefined input. ──
  sids$result[[1]]$success is not TRUE
  
  `actual` is NULL
  `expected` is a logical vector (TRUE)
  ── Failure ('test-get_sids.R:54:3'): pulling sids for multiple identifiers with undefined input. ──
  sids$result[[2]]$success is not FALSE
  
  `actual` is NULL
  `expected` is a logical vector (FALSE)
  ── Failure ('test-get_sids.R:63:3'): undefined/incorrect identifier returns error ──
  sids$result[[1]]$success is not FALSE
  
  `actual` is NULL
  `expected` is a logical vector (FALSE)
  ── Failure ('test-get_sids.R:64:3'): undefined/incorrect identifier returns error ──
  !is.null(sids$result[[1]]$error) is not TRUE
  
  `actual`:   FALSE
  `expected`: TRUE 
  ── Failure ('test-get_substances.R:10:3'): instance() is succesfull. ───────────
  `print\(instance\(subs, "aspirin"\)\)` does not match "Substance Data from PubChem Database".
  Actual value: "NULL"
  Backtrace:
      ▆
   1. └─testthat::expect_output(print(instance(subs, "aspirin")), "Substance Data from PubChem Database") at test-get_substances.R:10:3
   2.   └─testthat::expect_match(...)
   3.     └─testthat:::expect_match_(...)
  ── Failure ('test-get_substances.R:27:3'): incorrect/undefined substance identifier returns error ──
  {
      ...
  } is not FALSE
  
  `actual`:   TRUE 
  `expected`: FALSE
  ── Failure ('test-get_substances.R:30:3'): incorrect/undefined substance identifier returns error ──
  all(!is.null(tmp$result[[1]]$error), is.list(tmp$result[[1]]$error)) is not TRUE
  
  `actual`:   FALSE
  `expected`: TRUE 
  ── Failure ('test-get_substances.R:36:3'): '.verbose' works as expected ────────
  retrieve(...) returns invisibly, not visibly.
  ── Failure ('test-get_substances.R:39:3'): '.verbose' works as expected ────────
  retrieve(...) returns invisibly, not visibly.
  ── Failure ('test-get_substances.R:45:3'): NULL returns for unknown/empty slots. ──
  retrieve(...) is not NULL
  
  `actual` is a character vector ('The object passed to \'retrieve\' is NULL. Please provide a valid object of the expected class.')
  `expected` is NULL
  ── Failure ('test-get_substances.R:50:3'): return error for unavailable substance idx. ──
  `retrieve(tmp, .slot = "comment", .to.data.frame = TRUE, .idx = 66666)` did not throw the expected error.
  ── Failure ('test-get_synonyms.R:10:3'): synonyms returns list or data.frame correctly ──
  {
      ...
  } is not TRUE
  
  `actual`:   FALSE
  `expected`: TRUE 
  ── Failure ('test-get_synonyms.R:59:3'): return error for incomplete/unknown identifiers ──
  allSuccess(tmp) is not FALSE
  
  `actual`:   TRUE 
  `expected`: FALSE
  ── Failure ('test-get_synonyms.R:60:3'): return error for incomplete/unknown identifiers ──
  is.null(tmp$result[[1]]$error) is not FALSE
  
  `actual`:   TRUE 
  `expected`: FALSE
  
  [ FAIL 22 | WARN 11 | SKIP 0 | PASS 179 ]
  Error: Test failures
  Execution halted