diff --git a/DESCRIPTION b/DESCRIPTION index 2db03d1..fbeecd7 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,6 +1,6 @@ Package: enviPathR Title: Client for the 'enviPath' 'RESTful' API -Version: 1.0.1 +Version: 1.0.2 Authors@R: c(person(given = "Giulio", family = "Benedetti", role = c("aut", "cre", "cph"), diff --git a/NEWS b/NEWS index be99d6e..4a2ed1f 100644 --- a/NEWS +++ b/NEWS @@ -1,5 +1,5 @@ -Changes in version 0.99.x -* Introduced epTypes, epLogin, epLogout, epList, epLink, epGet and epModel - Changes in version 1.0.x -* Submitted to CRAN \ No newline at end of file +* Submitted to CRAN + +Changes in version 0.99.x +* Introduced epTypes, epLogin, epLogout, epList, epLink, epGet and epModel \ No newline at end of file diff --git a/R/get.R b/R/get.R index 6df0d7e..ca25b0b 100644 --- a/R/get.R +++ b/R/get.R @@ -30,7 +30,7 @@ #' not serial. (Default: \code{5}) #' #' @returns -#' A list of objects +#' A list of objects. #' #' @examples #' \dontshow{ @@ -76,8 +76,6 @@ epGet <- function(type, init = NULL, pkg = NULL, property = NULL, SIMPLIFY = FALSE, BPPARAM = BPPARAM ) - # Reduce list to single object - if( length(out) == 1L ) out <- out[[1L]] return(out) } diff --git a/R/link.R b/R/link.R index a3dbf2f..1e97ff5 100644 --- a/R/link.R +++ b/R/link.R @@ -110,6 +110,10 @@ epLink <- function(from, to, init = NULL, pkg = NULL, BPPARAM = bpparam(), rate if( by == "pathway2compound" ){ linkmap[to] <- str_remove(linkmap[[to]], "/structure/.*") } + if( by == "pathway2reaction" ){ + rxn_df <- epList("reaction", pkg = pkg) + linkmap[to] <- rxn_df$id[rxn_df$name %in% linkmap[[to]]] + } # Remove id prefix linkmap[to] <- str_remove(linkmap[[to]], ".*/") return(linkmap) @@ -142,7 +146,7 @@ epLink <- function(from, to, init = NULL, pkg = NULL, BPPARAM = bpparam(), rate # Check if pkg exists is_init <- !is.null(init) # Check pkg format - if( is_init && !all(is.character(init) & nzchar(init)) ){ + if( is_init && (!is.character(init) || !all(nzchar(init))) ){ stop( "'init' must be a character vector specifying the unique ", "identifiers of type 'from' that should be mapped on 'to'.", diff --git a/R/login.R b/R/login.R index c0ce9f3..a05c041 100644 --- a/R/login.R +++ b/R/login.R @@ -3,8 +3,8 @@ #' @name epLogin #' #' @description -#' epLogin lets you perform login to enviPath. An account is required to use the -#' enviPath API. +#' epLogin and epLogout let you log in and out of enviPath, respectively. An +#' account is required to use the enviPath API. #' #' @param username \code{Character scalar}. String specifying the username #' used to log into an enviPath personal account. @@ -13,7 +13,7 @@ #' used to log into an enviPath personal account. #' #' @returns -#' A message upon successful login. +#' A message upon successful login or logout. #' #' @examples #' \dontshow{ diff --git a/R/zzz.R b/R/zzz.R index d09f67d..8a7e288 100644 --- a/R/zzz.R +++ b/R/zzz.R @@ -13,7 +13,8 @@ pathway2compound = c(item = "nodes", var = "idcomp"), pathway2edge = c(item = "links", var = "id"), pathway2node = c(item = "nodes", var = "id"), - pathway2reaction = c(item = "links", var = "idreaction"), + # pathway2reaction = c(item = "links", var = "idreaction"), + pathway2reaction = c(item = "links", var = "name"), pathway2structure = c(item = "nodes", var = "idcomp"), reaction2compound = list(item = c("educts", "products"), var = "id"), reaction2ec = c(item = "ecNumbers", var = "id"), diff --git a/man/epGet.Rd b/man/epGet.Rd index 847afe3..307f5c5 100644 --- a/man/epGet.Rd +++ b/man/epGet.Rd @@ -39,7 +39,7 @@ requests per second to be sent to the enviPath API when \code{BPPARAM} is not serial. (Default: \code{5})} } \value{ -A list of objects +A list of objects. } \description{ epGet returns raw objects from enviPath. diff --git a/man/epLogin.Rd b/man/epLogin.Rd index e5b4cf2..7c43b4f 100644 --- a/man/epLogin.Rd +++ b/man/epLogin.Rd @@ -17,11 +17,11 @@ used to log into an enviPath personal account.} used to log into an enviPath personal account.} } \value{ -A message upon successful login. +A message upon successful login or logout. } \description{ -epLogin lets you perform login to enviPath. An account is required to use the -enviPath API. +epLogin and epLogout let you log in and out of enviPath, respectively. An +account is required to use the enviPath API. } \examples{ \dontshow{ diff --git a/tests/httptest/get/package_reaction/wrong.R b/tests/httptest/get/package_reaction/wrong.R index 9250547..b807eb6 100644 --- a/tests/httptest/get/package_reaction/wrong.R +++ b/tests/httptest/get/package_reaction/wrong.R @@ -1,12 +1,12 @@ structure(list(method = "GET", url = "https://package_reaction/wrong", status_code = 404L, headers = structure(list(Server = "nginx/1.24.0 (Ubuntu)", - Date = "Fri, 16 Oct 2026 03:48:05 GMT", `Content-Type` = "text/html; charset=utf-8", + Date = "Sat, 24 Oct 2026 03:32:42 GMT", `Content-Type` = "text/html; charset=utf-8", `Transfer-Encoding` = "chunked", Connection = "keep-alive", Vary = "Authorization, Cookie", `X-Frame-Options` = "DENY", `X-Content-Type-Options` = "nosniff", `Referrer-Policy` = "same-origin", - `Cross-Origin-Opener-Policy` = "same-origin", `Set-Cookie` = "csrftoken=e36jYcr3Z69ZFISouZkrX2zsF8Hu0aQN; expires=Fri, 15 Oct 2027 03:48:05 GMT; Max-Age=31449600; Path=/; SameSite=Lax", + `Cross-Origin-Opener-Policy` = "same-origin", `Set-Cookie` = "csrftoken=9u2FC7Dz4uZvd2M57D4NgVQKCxqiSjaO; expires=Sat, 23 Oct 2027 03:32:42 GMT; Max-Age=31449600; Path=/; SameSite=Lax", `Content-Encoding` = "gzip"), class = "httr2_headers"), - body = charToRaw("\n\n \n \n enviPath\n \n \n \n\n \n \n\n \n \n\n \n \n \n\n \n \n \n \n \n \n \n \n\n \n \n\n \n \n\n \n\n \n \n\n \n \n \n \n \n \n \n \n\n
\n \n
\n \n
\n
\n \n \n \n \n \n \n \n
\n\n \n\n
\n \n \n
\n \n \n \n \n \n \n
\n \n
  • \n User Profile\n
  • \n
  • \n \n \n \n \n Logout\n
  • \n \n
    \n \n
    \n
    \n
    \n \n
    \n \n
      \n \n
    • \n
      \n Menu\n \n \n \n \n \n
      \n
    • \n \n
    \n
    \n\n\n\n\n\n \n
    \n \n \n \n\n \n \n \n \n\n \n \n \n\n\n \n \n \n \n
    \n\n \n
    \n \n \n
    \n\n\n \n \n\n \n \n
    \n \n
    \n
    \n \n\n \n
    \n \n \n \n \n \n \n \n
  • Text
  • \n
  • \n \n Text\n \n
  • \n
  • SMILES
  • \n
  • \n \n Default\n \n
  • \n
  • \n \n Canonical\n \n
  • \n
  • \n \n Exact\n \n
  • \n
  • InChI
  • \n
  • \n \n InChIKey\n \n
  • \n \n
    \n\n \n \n \n \n \n \n \n \n
    \n
    \n\n \n
    \n \n \n \n \n\n \n \n \n \n \n \n Add Package\n \n
    \n\n \n \n \n
  • Reviewed Packages
  • \n \n
  • \n \n enviPath-PFAS\n \n \n \n \n
  • \n \n
  • \n \n EAWAG-BBD\n \n \n \n \n
  • \n \n
  • \n \n EAWAG-SEDIMENT\n \n \n \n \n
  • \n \n
  • \n \n EAWAG-SLUDGE\n \n \n \n \n
  • \n \n
  • \n \n EAWAG-SOIL\n \n \n \n \n
  • \n \n
  • \n \n Public Prediction Models\n \n \n \n \n
  • \n \n
  • Unreviewed Packages
  • \n \n
  • \n \n Autogenerated Package for Batch Prediction 2026-09-01 00:04:40.517620\n \n \n \n \n
  • \n \n
  • \n \n RiboRings’ Package\n \n \n \n \n
  • \n \n
  • \n \n Autogenerated Package for Batch Prediction 2026-09-01 00:06:57.531194\n \n \n \n \n
  • \n \n
  • \n \n 32de3cf4-e3e6-4168-956e-32fa5ddb0ce1\n \n \n \n \n
  • \n \n
  • \n \n Autogenerated Package for Batch Prediction 2026-09-01 00:04:22.775931\n \n \n \n \n
  • \n \n
  • \n \n Autogenerated Package for Batch Prediction 2026-09-01 00:08:26.613909\n \n \n \n \n
  • \n \n
  • \n \n 32de3cf4-e3e6-4168-956e-32fa5ddb0ce1\n \n \n \n \n
  • \n \n \n \n
    \n\n \n
    \n \n
    \n\n \n
    \n \n \n\n \n \n\n \n \n\n \n \n
    \n \n \n\n \n \n\n \n \n\n \n \n \n \n \n \n\n
    \n \n
    \n\n\n \n\n \n \n\n"), - timing = c(redirect = 0, namelookup = 6.2e-05, connect = 0, - pretransfer = 0.000239, starttransfer = 0.379562, total = 0.37996 + body = charToRaw("\n\n \n \n enviPath\n \n \n \n\n \n \n\n \n \n\n \n \n \n\n \n \n \n \n \n \n \n \n\n \n \n\n \n \n\n \n\n \n \n\n \n \n \n \n \n \n \n \n\n
    \n \n
    \n \n
    \n
    \n \n \n \n \n \n \n \n
    \n\n \n\n
    \n \n \n
    \n \n \n \n \n \n \n
    \n \n
  • \n User Profile\n
  • \n
  • \n \n \n \n \n Logout\n
  • \n \n
    \n \n
    \n
    \n
    \n \n
    \n \n
      \n \n
    • \n
      \n Menu\n \n \n \n \n \n
      \n
    • \n \n
    \n
    \n\n\n\n\n\n \n
    \n \n \n \n\n \n \n \n \n\n \n \n \n\n\n \n \n \n \n
    \n\n \n
    \n \n \n
    \n\n\n \n \n\n \n \n
    \n \n
    \n
    \n \n\n \n
    \n \n \n \n \n \n \n \n
  • Text
  • \n
  • \n \n Text\n \n
  • \n
  • SMILES
  • \n
  • \n \n Default\n \n
  • \n
  • \n \n Canonical\n \n
  • \n
  • \n \n Exact\n \n
  • \n
  • InChI
  • \n
  • \n \n InChIKey\n \n
  • \n \n
    \n\n \n \n \n \n \n \n \n \n
    \n
    \n\n \n
    \n \n \n \n \n\n \n \n \n \n \n \n Add Package\n \n
    \n\n \n \n \n
  • Reviewed Packages
  • \n \n
  • \n \n enviPath-PFAS\n \n \n \n \n
  • \n \n
  • \n \n EAWAG-BBD\n \n \n \n \n
  • \n \n
  • \n \n EAWAG-SEDIMENT\n \n \n \n \n
  • \n \n
  • \n \n EAWAG-SLUDGE\n \n \n \n \n
  • \n \n
  • \n \n EAWAG-SOIL\n \n \n \n \n
  • \n \n
  • \n \n Public Prediction Models\n \n \n \n \n
  • \n \n
  • Unreviewed Packages
  • \n \n
  • \n \n Autogenerated Package for Batch Prediction 2026-09-01 00:04:40.517620\n \n \n \n \n
  • \n \n
  • \n \n RiboRings’ Package\n \n \n \n \n
  • \n \n
  • \n \n Autogenerated Package for Batch Prediction 2026-09-01 00:06:57.531194\n \n \n \n \n
  • \n \n
  • \n \n 32de3cf4-e3e6-4168-956e-32fa5ddb0ce1\n \n \n \n \n
  • \n \n
  • \n \n Autogenerated Package for Batch Prediction 2026-09-01 00:04:22.775931\n \n \n \n \n
  • \n \n
  • \n \n Autogenerated Package for Batch Prediction 2026-09-01 00:08:26.613909\n \n \n \n \n
  • \n \n
  • \n \n 32de3cf4-e3e6-4168-956e-32fa5ddb0ce1\n \n \n \n \n
  • \n \n \n \n
    \n\n \n
    \n \n
    \n\n \n
    \n \n \n\n \n \n\n \n \n\n \n \n
    \n \n \n\n \n \n\n \n \n\n \n \n \n \n \n \n\n
    \n \n
    \n\n\n \n\n \n \n\n"), + timing = c(redirect = 0, namelookup = 2.7e-05, connect = 0, + pretransfer = 0.000101, starttransfer = 0.389223, total = 0.389606 ), cache = new.env(parent = emptyenv())), class = "httr2_response") diff --git a/tests/httptest/link/package_compound/wrong.R b/tests/httptest/link/package_compound/wrong.R index c3d71c6..83f4554 100644 --- a/tests/httptest/link/package_compound/wrong.R +++ b/tests/httptest/link/package_compound/wrong.R @@ -1,12 +1,12 @@ structure(list(method = "GET", url = "https://package_compound/wrong", status_code = 404L, headers = structure(list(Server = "nginx/1.24.0 (Ubuntu)", - Date = "Fri, 16 Oct 2026 03:48:06 GMT", `Content-Type` = "text/html; charset=utf-8", + Date = "Sat, 24 Oct 2026 03:32:43 GMT", `Content-Type` = "text/html; charset=utf-8", `Transfer-Encoding` = "chunked", Connection = "keep-alive", Vary = "Authorization, Cookie", `X-Frame-Options` = "DENY", `X-Content-Type-Options` = "nosniff", `Referrer-Policy` = "same-origin", - `Cross-Origin-Opener-Policy` = "same-origin", `Set-Cookie` = "csrftoken=e36jYcr3Z69ZFISouZkrX2zsF8Hu0aQN; expires=Fri, 15 Oct 2027 03:48:06 GMT; Max-Age=31449600; Path=/; SameSite=Lax", + `Cross-Origin-Opener-Policy` = "same-origin", `Set-Cookie` = "csrftoken=9u2FC7Dz4uZvd2M57D4NgVQKCxqiSjaO; expires=Sat, 23 Oct 2027 03:32:43 GMT; Max-Age=31449600; Path=/; SameSite=Lax", `Content-Encoding` = "gzip"), class = "httr2_headers"), - body = charToRaw("\n\n \n \n enviPath\n \n \n \n\n \n \n\n \n \n\n \n \n \n\n \n \n \n \n \n \n \n \n\n \n \n\n \n \n\n \n\n \n \n\n \n \n \n \n \n \n \n \n\n
    \n \n
    \n \n
    \n
    \n \n \n \n \n \n \n \n
    \n\n \n\n
    \n \n \n
    \n \n \n \n \n \n \n
    \n \n
  • \n User Profile\n
  • \n
  • \n \n \n \n \n Logout\n
  • \n \n
    \n \n
    \n
    \n
    \n \n
    \n \n
      \n \n
    • \n
      \n Menu\n \n \n \n \n \n
      \n
    • \n \n
    \n
    \n\n\n\n\n\n \n
    \n \n \n \n\n \n \n \n \n\n \n \n \n\n\n \n \n \n \n
    \n\n \n
    \n \n \n
    \n\n\n \n \n\n \n \n
    \n \n
    \n
    \n \n\n \n
    \n \n \n \n \n \n \n \n
  • Text
  • \n
  • \n \n Text\n \n
  • \n
  • SMILES
  • \n
  • \n \n Default\n \n
  • \n
  • \n \n Canonical\n \n
  • \n
  • \n \n Exact\n \n
  • \n
  • InChI
  • \n
  • \n \n InChIKey\n \n
  • \n \n
    \n\n \n \n \n \n \n \n \n \n
    \n
    \n\n \n
    \n \n \n \n \n\n \n \n \n \n \n \n Add Package\n \n
    \n\n \n \n \n
  • Reviewed Packages
  • \n \n
  • \n \n enviPath-PFAS\n \n \n \n \n
  • \n \n
  • \n \n EAWAG-BBD\n \n \n \n \n
  • \n \n
  • \n \n EAWAG-SEDIMENT\n \n \n \n \n
  • \n \n
  • \n \n EAWAG-SLUDGE\n \n \n \n \n
  • \n \n
  • \n \n EAWAG-SOIL\n \n \n \n \n
  • \n \n
  • \n \n Public Prediction Models\n \n \n \n \n
  • \n \n
  • Unreviewed Packages
  • \n \n
  • \n \n Autogenerated Package for Batch Prediction 2026-09-01 00:04:40.517620\n \n \n \n \n
  • \n \n
  • \n \n RiboRings’ Package\n \n \n \n \n
  • \n \n
  • \n \n Autogenerated Package for Batch Prediction 2026-09-01 00:06:57.531194\n \n \n \n \n
  • \n \n
  • \n \n 32de3cf4-e3e6-4168-956e-32fa5ddb0ce1\n \n \n \n \n
  • \n \n
  • \n \n Autogenerated Package for Batch Prediction 2026-09-01 00:04:22.775931\n \n \n \n \n
  • \n \n
  • \n \n Autogenerated Package for Batch Prediction 2026-09-01 00:08:26.613909\n \n \n \n \n
  • \n \n
  • \n \n 32de3cf4-e3e6-4168-956e-32fa5ddb0ce1\n \n \n \n \n
  • \n \n \n \n
    \n\n \n
    \n \n
    \n\n \n
    \n \n \n\n \n \n\n \n \n\n \n \n
    \n \n \n\n \n \n\n \n \n\n \n \n \n \n \n \n\n
    \n \n
    \n\n\n \n\n \n \n\n"), - timing = c(redirect = 0, namelookup = 2.4e-05, connect = 0, - pretransfer = 0.000146, starttransfer = 0.314834, total = 0.315206 + body = charToRaw("\n\n \n \n enviPath\n \n \n \n\n \n \n\n \n \n\n \n \n \n\n \n \n \n \n \n \n \n \n\n \n \n\n \n \n\n \n\n \n \n\n \n \n \n \n \n \n \n \n\n
    \n \n
    \n \n
    \n
    \n \n \n \n \n \n \n \n
    \n\n \n\n
    \n \n \n
    \n \n \n \n \n \n \n
    \n \n
  • \n User Profile\n
  • \n
  • \n \n \n \n \n Logout\n
  • \n \n
    \n \n
    \n
    \n
    \n \n
    \n \n
      \n \n
    • \n
      \n Menu\n \n \n \n \n \n
      \n
    • \n \n
    \n
    \n\n\n\n\n\n \n
    \n \n \n \n\n \n \n \n \n\n \n \n \n\n\n \n \n \n \n
    \n\n \n
    \n \n \n
    \n\n\n \n \n\n \n \n
    \n \n
    \n
    \n \n\n \n
    \n \n \n \n \n \n \n \n
  • Text
  • \n
  • \n \n Text\n \n
  • \n
  • SMILES
  • \n
  • \n \n Default\n \n
  • \n
  • \n \n Canonical\n \n
  • \n
  • \n \n Exact\n \n
  • \n
  • InChI
  • \n
  • \n \n InChIKey\n \n
  • \n \n
    \n\n \n \n \n \n \n \n \n \n
    \n
    \n\n \n
    \n \n \n \n \n\n \n \n \n \n \n \n Add Package\n \n
    \n\n \n \n \n
  • Reviewed Packages
  • \n \n
  • \n \n enviPath-PFAS\n \n \n \n \n
  • \n \n
  • \n \n EAWAG-BBD\n \n \n \n \n
  • \n \n
  • \n \n EAWAG-SEDIMENT\n \n \n \n \n
  • \n \n
  • \n \n EAWAG-SLUDGE\n \n \n \n \n
  • \n \n
  • \n \n EAWAG-SOIL\n \n \n \n \n
  • \n \n
  • \n \n Public Prediction Models\n \n \n \n \n
  • \n \n
  • Unreviewed Packages
  • \n \n
  • \n \n Autogenerated Package for Batch Prediction 2026-09-01 00:04:40.517620\n \n \n \n \n
  • \n \n
  • \n \n RiboRings’ Package\n \n \n \n \n
  • \n \n
  • \n \n Autogenerated Package for Batch Prediction 2026-09-01 00:06:57.531194\n \n \n \n \n
  • \n \n
  • \n \n 32de3cf4-e3e6-4168-956e-32fa5ddb0ce1\n \n \n \n \n
  • \n \n
  • \n \n Autogenerated Package for Batch Prediction 2026-09-01 00:04:22.775931\n \n \n \n \n
  • \n \n
  • \n \n Autogenerated Package for Batch Prediction 2026-09-01 00:08:26.613909\n \n \n \n \n
  • \n \n
  • \n \n 32de3cf4-e3e6-4168-956e-32fa5ddb0ce1\n \n \n \n \n
  • \n \n \n \n
    \n\n \n
    \n \n
    \n\n \n
    \n \n \n\n \n \n\n \n \n\n \n \n
    \n \n \n\n \n \n\n \n \n\n \n \n \n \n \n \n\n
    \n \n
    \n\n\n \n\n \n \n\n"), + timing = c(redirect = 0, namelookup = 4.5e-05, connect = 0, + pretransfer = 0.000137, starttransfer = 0.409759, total = 0.41017 ), cache = new.env(parent = emptyenv())), class = "httr2_response") diff --git a/tests/httptest/list/package/wrong/reaction.R b/tests/httptest/list/package/wrong/reaction.R index 6283961..42c95ec 100644 --- a/tests/httptest/list/package/wrong/reaction.R +++ b/tests/httptest/list/package/wrong/reaction.R @@ -1,12 +1,12 @@ structure(list(method = "GET", url = "https://package/wrong/reaction", status_code = 404L, headers = structure(list(Server = "nginx/1.24.0 (Ubuntu)", - Date = "Fri, 16 Oct 2026 03:48:07 GMT", `Content-Type` = "text/html; charset=utf-8", + Date = "Sat, 24 Oct 2026 03:32:44 GMT", `Content-Type` = "text/html; charset=utf-8", `Transfer-Encoding` = "chunked", Connection = "keep-alive", Vary = "Authorization, Cookie", `X-Frame-Options` = "DENY", `X-Content-Type-Options` = "nosniff", `Referrer-Policy` = "same-origin", - `Cross-Origin-Opener-Policy` = "same-origin", `Set-Cookie` = "csrftoken=e36jYcr3Z69ZFISouZkrX2zsF8Hu0aQN; expires=Fri, 15 Oct 2027 03:48:07 GMT; Max-Age=31449600; Path=/; SameSite=Lax", + `Cross-Origin-Opener-Policy` = "same-origin", `Set-Cookie` = "csrftoken=9u2FC7Dz4uZvd2M57D4NgVQKCxqiSjaO; expires=Sat, 23 Oct 2027 03:32:44 GMT; Max-Age=31449600; Path=/; SameSite=Lax", `Content-Encoding` = "gzip"), class = "httr2_headers"), - body = charToRaw("\n\n \n \n enviPath\n \n \n \n\n \n \n\n \n \n\n \n \n \n\n \n \n \n \n \n \n \n \n\n \n \n\n \n \n\n \n\n \n \n\n \n \n \n \n \n \n \n \n\n
    \n \n
    \n \n
    \n
    \n \n \n \n \n \n \n \n
    \n\n \n\n
    \n \n \n
    \n \n \n \n \n \n \n
    \n \n
  • \n User Profile\n
  • \n
  • \n \n \n \n \n Logout\n
  • \n \n
    \n \n
    \n
    \n
    \n \n
    \n \n
      \n \n
    • \n
      \n Menu\n \n \n \n \n \n
      \n
    • \n \n
    \n
    \n\n\n\n\n\n \n
    \n \n \n \n\n \n \n \n \n\n \n \n \n\n\n \n \n \n \n
    \n\n \n
    \n \n \n
    \n\n\n \n \n\n \n \n
    \n \n
    \n
    \n \n\n \n
    \n \n \n \n \n \n \n \n
  • Text
  • \n
  • \n \n Text\n \n
  • \n
  • SMILES
  • \n
  • \n \n Default\n \n
  • \n
  • \n \n Canonical\n \n
  • \n
  • \n \n Exact\n \n
  • \n
  • InChI
  • \n
  • \n \n InChIKey\n \n
  • \n \n
    \n\n \n \n \n \n \n \n \n \n
    \n
    \n\n \n
    \n \n \n \n \n\n \n \n \n \n \n \n Add Package\n \n
    \n\n \n \n \n
  • Reviewed Packages
  • \n \n
  • \n \n enviPath-PFAS\n \n \n \n \n
  • \n \n
  • \n \n EAWAG-BBD\n \n \n \n \n
  • \n \n
  • \n \n EAWAG-SEDIMENT\n \n \n \n \n
  • \n \n
  • \n \n EAWAG-SLUDGE\n \n \n \n \n
  • \n \n
  • \n \n EAWAG-SOIL\n \n \n \n \n
  • \n \n
  • \n \n Public Prediction Models\n \n \n \n \n
  • \n \n
  • Unreviewed Packages
  • \n \n
  • \n \n Autogenerated Package for Batch Prediction 2026-09-01 00:04:40.517620\n \n \n \n \n
  • \n \n
  • \n \n RiboRings’ Package\n \n \n \n \n
  • \n \n
  • \n \n Autogenerated Package for Batch Prediction 2026-09-01 00:06:57.531194\n \n \n \n \n
  • \n \n
  • \n \n 32de3cf4-e3e6-4168-956e-32fa5ddb0ce1\n \n \n \n \n
  • \n \n
  • \n \n Autogenerated Package for Batch Prediction 2026-09-01 00:04:22.775931\n \n \n \n \n
  • \n \n
  • \n \n Autogenerated Package for Batch Prediction 2026-09-01 00:08:26.613909\n \n \n \n \n
  • \n \n
  • \n \n 32de3cf4-e3e6-4168-956e-32fa5ddb0ce1\n \n \n \n \n
  • \n \n \n \n
    \n\n \n
    \n \n
    \n\n \n
    \n \n \n\n \n \n\n \n \n\n \n \n
    \n \n \n\n \n \n\n \n \n\n \n \n \n \n \n \n\n
    \n \n
    \n\n\n \n\n \n \n\n"), - timing = c(redirect = 0, namelookup = 3.1e-05, connect = 0, - pretransfer = 0.000168, starttransfer = 0.341902, total = 0.342292 + body = charToRaw("\n\n \n \n enviPath\n \n \n \n\n \n \n\n \n \n\n \n \n \n\n \n \n \n \n \n \n \n \n\n \n \n\n \n \n\n \n\n \n \n\n \n \n \n \n \n \n \n \n\n
    \n \n
    \n \n
    \n
    \n \n \n \n \n \n \n \n
    \n\n \n\n
    \n \n \n
    \n \n \n \n \n \n \n
    \n \n
  • \n User Profile\n
  • \n
  • \n \n \n \n \n Logout\n
  • \n \n
    \n \n
    \n
    \n
    \n \n
    \n \n
      \n \n
    • \n
      \n Menu\n \n \n \n \n \n
      \n
    • \n \n
    \n
    \n\n\n\n\n\n \n
    \n \n \n \n\n \n \n \n \n\n \n \n \n\n\n \n \n \n \n
    \n\n \n
    \n \n \n
    \n\n\n \n \n\n \n \n
    \n \n
    \n
    \n \n\n \n
    \n \n \n \n \n \n \n \n
  • Text
  • \n
  • \n \n Text\n \n
  • \n
  • SMILES
  • \n
  • \n \n Default\n \n
  • \n
  • \n \n Canonical\n \n
  • \n
  • \n \n Exact\n \n
  • \n
  • InChI
  • \n
  • \n \n InChIKey\n \n
  • \n \n
    \n\n \n \n \n \n \n \n \n \n
    \n
    \n\n \n
    \n \n \n \n \n\n \n \n \n \n \n \n Add Package\n \n
    \n\n \n \n \n
  • Reviewed Packages
  • \n \n
  • \n \n enviPath-PFAS\n \n \n \n \n
  • \n \n
  • \n \n EAWAG-BBD\n \n \n \n \n
  • \n \n
  • \n \n EAWAG-SEDIMENT\n \n \n \n \n
  • \n \n
  • \n \n EAWAG-SLUDGE\n \n \n \n \n
  • \n \n
  • \n \n EAWAG-SOIL\n \n \n \n \n
  • \n \n
  • \n \n Public Prediction Models\n \n \n \n \n
  • \n \n
  • Unreviewed Packages
  • \n \n
  • \n \n Autogenerated Package for Batch Prediction 2026-09-01 00:04:40.517620\n \n \n \n \n
  • \n \n
  • \n \n RiboRings’ Package\n \n \n \n \n
  • \n \n
  • \n \n Autogenerated Package for Batch Prediction 2026-09-01 00:06:57.531194\n \n \n \n \n
  • \n \n
  • \n \n 32de3cf4-e3e6-4168-956e-32fa5ddb0ce1\n \n \n \n \n
  • \n \n
  • \n \n Autogenerated Package for Batch Prediction 2026-09-01 00:04:22.775931\n \n \n \n \n
  • \n \n
  • \n \n Autogenerated Package for Batch Prediction 2026-09-01 00:08:26.613909\n \n \n \n \n
  • \n \n
  • \n \n 32de3cf4-e3e6-4168-956e-32fa5ddb0ce1\n \n \n \n \n
  • \n \n \n \n
    \n\n \n
    \n \n
    \n\n \n
    \n \n \n\n \n \n\n \n \n\n \n \n
    \n \n \n\n \n \n\n \n \n\n \n \n \n \n \n \n\n
    \n \n
    \n\n\n \n\n \n \n\n"), + timing = c(redirect = 0, namelookup = 3.8e-05, connect = 0, + pretransfer = 0.000127, starttransfer = 0.415744, total = 0.416422 ), cache = new.env(parent = emptyenv())), class = "httr2_response") diff --git a/tests/httptest/login/NA-2f7c1a-POST.R b/tests/httptest/login/NA-2f7c1a-POST.R index 571401c..afcea48 100644 --- a/tests/httptest/login/NA-2f7c1a-POST.R +++ b/tests/httptest/login/NA-2f7c1a-POST.R @@ -1,11 +1,11 @@ structure(list(method = "POST", url = "https://", status_code = 500L, headers = structure(list(Server = "nginx/1.24.0 (Ubuntu)", - Date = "Fri, 16 Oct 2026 03:48:08 GMT", `Content-Type` = "text/html; charset=utf-8", + Date = "Sat, 24 Oct 2026 03:32:45 GMT", `Content-Type` = "text/html; charset=utf-8", `Content-Length` = "43025", Connection = "keep-alive", Vary = "Authorization, Cookie", `X-Frame-Options` = "DENY", `X-Content-Type-Options` = "nosniff", `Referrer-Policy` = "same-origin", - `Cross-Origin-Opener-Policy` = "same-origin", `Set-Cookie` = "csrftoken=e36jYcr3Z69ZFISouZkrX2zsF8Hu0aQN; expires=Fri, 15 Oct 2027 03:48:08 GMT; Max-Age=31449600; Path=/; SameSite=Lax"), class = "httr2_headers"), - body = charToRaw("\n\n \n \n enviPath\n \n \n \n\n \n \n\n \n \n\n \n \n \n\n \n \n \n \n \n \n \n \n\n \n \n\n \n \n\n \n\n \n \n\n \n \n \n \n \n \n \n \n\n
    \n \n
    \n \n
    \n
    \n \n \n \n \n \n \n \n
    \n\n \n\n
    \n \n \n
    \n \n \n \n \n \n \n
    \n \n
  • \n User Profile\n
  • \n
  • \n \n \n \n \n Logout\n
  • \n \n
    \n \n
    \n
    \n
    \n \n
    \n \n
      \n \n
    • \n
      \n Menu\n \n \n \n \n \n
      \n
    • \n \n
    \n
    \n\n\n\n\n\n \n
    \n \n \n \n\n \n \n \n \n\n \n \n \n\n\n \n \n \n \n
    \n\n \n
    \n \n \n
    \n\n\n \n \n\n \n \n
    \n \n
    \n
    \n \n\n \n
    \n \n \n \n \n \n \n \n
  • Text
  • \n
  • \n \n Text\n \n
  • \n
  • SMILES
  • \n
  • \n \n Default\n \n
  • \n
  • \n \n Canonical\n \n
  • \n
  • \n \n Exact\n \n
  • \n
  • InChI
  • \n
  • \n \n InChIKey\n \n
  • \n \n
    \n\n \n \n \n \n \n \n \n \n
    \n
    \n\n \n
    \n \n \n \n \n\n \n \n \n \n \n \n Add Package\n \n
    \n\n \n \n \n
  • Reviewed Packages
  • \n \n
  • \n \n enviPath-PFAS\n \n \n \n \n
  • \n \n
  • \n \n EAWAG-BBD\n \n \n \n \n
  • \n \n
  • \n \n EAWAG-SEDIMENT\n \n \n \n \n
  • \n \n
  • \n \n EAWAG-SLUDGE\n \n \n \n \n
  • \n \n
  • \n \n EAWAG-SOIL\n \n \n \n \n
  • \n \n
  • \n \n Public Prediction Models\n \n \n \n \n
  • \n \n
  • Unreviewed Packages
  • \n \n
  • \n \n Autogenerated Package for Batch Prediction 2026-09-01 00:04:40.517620\n \n \n \n \n
  • \n \n
  • \n \n RiboRings’ Package\n \n \n \n \n
  • \n \n
  • \n \n Autogenerated Package for Batch Prediction 2026-09-01 00:06:57.531194\n \n \n \n \n
  • \n \n
  • \n \n 32de3cf4-e3e6-4168-956e-32fa5ddb0ce1\n \n \n \n \n
  • \n \n
  • \n \n Autogenerated Package for Batch Prediction 2026-09-01 00:04:22.775931\n \n \n \n \n
  • \n \n
  • \n \n Autogenerated Package for Batch Prediction 2026-09-01 00:08:26.613909\n \n \n \n \n
  • \n \n
  • \n \n 32de3cf4-e3e6-4168-956e-32fa5ddb0ce1\n \n \n \n \n
  • \n \n \n \n
    \n\n \n
    \n \n
    \n\n \n
    \n \n \n\n \n \n\n \n \n\n \n \n
    \n \n \n\n \n \n\n \n \n\n \n \n \n \n \n \n\n
    \n \n
    \n\n\n \n\n \n \n\n"), - timing = c(redirect = 0, namelookup = 3.9e-05, connect = 0, - pretransfer = 0.000197, starttransfer = 0.341021, total = 0.647505 + `Cross-Origin-Opener-Policy` = "same-origin", `Set-Cookie` = "csrftoken=9u2FC7Dz4uZvd2M57D4NgVQKCxqiSjaO; expires=Sat, 23 Oct 2027 03:32:45 GMT; Max-Age=31449600; Path=/; SameSite=Lax"), class = "httr2_headers"), + body = charToRaw("\n\n \n \n enviPath\n \n \n \n\n \n \n\n \n \n\n \n \n \n\n \n \n \n \n \n \n \n \n\n \n \n\n \n \n\n \n\n \n \n\n \n \n \n \n \n \n \n \n\n
    \n \n
    \n \n
    \n
    \n \n \n \n \n \n \n \n
    \n\n \n\n
    \n \n \n
    \n \n \n \n \n \n \n
    \n \n
  • \n User Profile\n
  • \n
  • \n \n \n \n \n Logout\n
  • \n \n
    \n \n
    \n
    \n
    \n \n
    \n \n
      \n \n
    • \n
      \n Menu\n \n \n \n \n \n
      \n
    • \n \n
    \n
    \n\n\n\n\n\n \n
    \n \n \n \n\n \n \n \n \n\n \n \n \n\n\n \n \n \n \n
    \n\n \n
    \n \n \n
    \n\n\n \n \n\n \n \n
    \n \n
    \n
    \n \n\n \n
    \n \n \n \n \n \n \n \n
  • Text
  • \n
  • \n \n Text\n \n
  • \n
  • SMILES
  • \n
  • \n \n Default\n \n
  • \n
  • \n \n Canonical\n \n
  • \n
  • \n \n Exact\n \n
  • \n
  • InChI
  • \n
  • \n \n InChIKey\n \n
  • \n \n
    \n\n \n \n \n \n \n \n \n \n
    \n
    \n\n \n
    \n \n \n \n \n\n \n \n \n \n \n \n Add Package\n \n
    \n\n \n \n \n
  • Reviewed Packages
  • \n \n
  • \n \n enviPath-PFAS\n \n \n \n \n
  • \n \n
  • \n \n EAWAG-BBD\n \n \n \n \n
  • \n \n
  • \n \n EAWAG-SEDIMENT\n \n \n \n \n
  • \n \n
  • \n \n EAWAG-SLUDGE\n \n \n \n \n
  • \n \n
  • \n \n EAWAG-SOIL\n \n \n \n \n
  • \n \n
  • \n \n Public Prediction Models\n \n \n \n \n
  • \n \n
  • Unreviewed Packages
  • \n \n
  • \n \n Autogenerated Package for Batch Prediction 2026-09-01 00:04:40.517620\n \n \n \n \n
  • \n \n
  • \n \n RiboRings’ Package\n \n \n \n \n
  • \n \n
  • \n \n Autogenerated Package for Batch Prediction 2026-09-01 00:06:57.531194\n \n \n \n \n
  • \n \n
  • \n \n 32de3cf4-e3e6-4168-956e-32fa5ddb0ce1\n \n \n \n \n
  • \n \n
  • \n \n Autogenerated Package for Batch Prediction 2026-09-01 00:04:22.775931\n \n \n \n \n
  • \n \n
  • \n \n Autogenerated Package for Batch Prediction 2026-09-01 00:08:26.613909\n \n \n \n \n
  • \n \n
  • \n \n 32de3cf4-e3e6-4168-956e-32fa5ddb0ce1\n \n \n \n \n
  • \n \n \n \n
    \n\n \n
    \n \n
    \n\n \n
    \n \n \n\n \n \n\n \n \n\n \n \n
    \n \n \n\n \n \n\n \n \n\n \n \n \n \n \n \n\n
    \n \n
    \n\n\n \n\n \n \n\n"), + timing = c(redirect = 0, namelookup = 3e-05, connect = 0, + pretransfer = 0.000116, starttransfer = 0.422185, total = 0.830267 ), cache = new.env(parent = emptyenv())), class = "httr2_response") diff --git a/tests/httptest/model/util-e1f28b-POST.R b/tests/httptest/model/util-e1f28b-POST.R index d4e696b..b938604 100644 --- a/tests/httptest/model/util-e1f28b-POST.R +++ b/tests/httptest/model/util-e1f28b-POST.R @@ -1,11 +1,11 @@ structure(list(method = "POST", url = "https://util", status_code = 403L, headers = structure(list(Server = "nginx/1.24.0 (Ubuntu)", - Date = "Fri, 16 Oct 2026 03:48:10 GMT", `Content-Type` = "application/json; charset=utf-8", + Date = "Sat, 24 Oct 2026 03:32:47 GMT", `Content-Type` = "application/json; charset=utf-8", `Content-Length` = "139", Connection = "keep-alive", Vary = "Authorization, Cookie", `X-Frame-Options` = "DENY", `X-Content-Type-Options` = "nosniff", `Referrer-Policy` = "same-origin", `Cross-Origin-Opener-Policy` = "same-origin"), class = "httr2_headers"), body = charToRaw("{\"message\": \"Getting Setting with id https://envipath.org/setting/1d915a48-286a-4394-9693-bfaa187326a5 failed due to insufficient rights!\"}"), - timing = c(redirect = 0, namelookup = 3.2e-05, connect = 0, - pretransfer = 0.000166, starttransfer = 0.347267, total = 0.347304 + timing = c(redirect = 0, namelookup = 3.3e-05, connect = 0, + pretransfer = 0.000128, starttransfer = 0.412069, total = 0.412121 ), cache = new.env(parent = emptyenv())), class = "httr2_response") diff --git a/tests/testthat/test-get.R b/tests/testthat/test-get.R index df8349e..6d016b4 100644 --- a/tests/testthat/test-get.R +++ b/tests/testthat/test-get.R @@ -20,6 +20,6 @@ with_mock_dir("../httptest/get", { rxn <- epGet("reaction", rxn_id, BPPARAM = BPPARAM) expect_type(rxn, "list") - expect_length(rxn, 15L) + expect_length(rxn[[1L]], 15L) }) }) diff --git a/tests/testthat/test-link.R b/tests/testthat/test-link.R index 3440940..24d86d1 100644 --- a/tests/testthat/test-link.R +++ b/tests/testthat/test-link.R @@ -18,6 +18,12 @@ with_mock_dir("../httptest/link", { fixed = TRUE ) + expect_error( + epLink(types[1], types[2], factor(cpd_id), BPPARAM = BPPARAM), + "'init' must be a character vector specifying the unique identifiers of type 'from' that should be mapped on 'to'.", + fixed = TRUE + ) + cpd2inchikey <- epLink(types[1], types[2], cpd_id, BPPARAM = BPPARAM) expect_named(cpd2inchikey, types)