summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohannes Ranke <johannes.ranke@jrwb.de>2026-03-05 14:32:30 +0100
committerJohannes Ranke <johannes.ranke@jrwb.de>2026-03-05 14:32:30 +0100
commit0d73256947c7c79890a5f94622f0948645ea4da7 (patch)
tree73469afee00da18d2e3ece1368c355afbb8817ff
parentd6c7e8f5a0d0d4b564addf5b447bed6b3ba03b5e (diff)
Make test robust against unavailable services
Test logs are without internet.
-rw-r--r--R/chent.R6
-rw-r--r--log/test.log23
-rw-r--r--tests/testthat/setup.R4
-rw-r--r--tests/testthat/test_chent.R17
-rw-r--r--tests/testthat/test_pai.R9
5 files changed, 40 insertions, 19 deletions
diff --git a/R/chent.R b/R/chent.R
index 05066b8..038fe7b 100644
--- a/R/chent.R
+++ b/R/chent.R
@@ -219,10 +219,10 @@ chent <- R6Class("chent",
#' @description
#' Get chemical information from RDKit if available
get_rdkit = function(template = NULL) {
-
+
if (!rdkit_available) stop("RDKit is not available")
if (is.null(self$smiles)) stop("RDKit would need a SMILES code")
-
+
available_smiles <- names(self$smiles)
smiles_preference <- c("user", "PubChem", "PubChem_Connectivity")
smiles_preferred_i <- min(match(available_smiles, smiles_preference))
@@ -492,7 +492,7 @@ chent <- R6Class("chent",
#' @param N The Freundlich exponent
#' @param perc_clay The percentage of clay in the soil
#' @param CEC The cation exchange capacity
- add_soil_sorption = function(soils,
+ add_soil_sorption = function(soils,
Kf, Kfoc, N,
type = NA, pH_orig = NA, pH_medium = NA,
pH_H2O = NA,
diff --git a/log/test.log b/log/test.log
index 0e8fc46..daa7c22 100644
--- a/log/test.log
+++ b/log/test.log
@@ -7,18 +7,29 @@ The following object is masked from ‘package:devtools’:
test_file
+Error in curl::curl_fetch_memory(url, handle = handle): Could not resolve hostname [pesticidecompendium.bcpc.org]:
+Could not resolve host: pesticidecompendium.bcpc.org
+Request failed [ERROR]. Retrying in 1.5 seconds...
+Error in curl::curl_fetch_memory(url, handle = handle): Could not resolve hostname [pesticidecompendium.bcpc.org]:
+Could not resolve host: pesticidecompendium.bcpc.org
+Request failed [ERROR]. Retrying in 1.5 seconds...
+Error in curl::curl_fetch_memory(url, handle = handle) :
+ Could not resolve hostname [pesticidecompendium.bcpc.org]:
+Could not resolve host: pesticidecompendium.bcpc.org
✔ | F W S OK | Context
⠏ | 0 | chent
⠸ | 4 | chent
-⠧ | 8 | chent
-✔ | 10 | chent [4.4s]
+✔ | 1 4 | chent [9.8s]
⠏ | 0 | pai
-⠋ | 1 | pai
-✔ | 9 | pai [6.1s]
+✔ | 1 0 | pai
══ Results ═════════════════════════════════════════════════════════════════════
-Duration: 10.6 s
+Duration: 9.8 s
-[ FAIL 0 | WARN 0 | SKIP 0 | PASS 19 ]
+── Skipped tests (2) ───────────────────────────────────────────────────────────
+• bcpc_up & pc_up is not TRUE (1): 'test_pai.R:3:3'
+• pc_up is not TRUE (1): 'test_chent.R:20:3'
+
+[ FAIL 0 | WARN 0 | SKIP 2 | PASS 4 ]
diff --git a/tests/testthat/setup.R b/tests/testthat/setup.R
index fb55272..4232120 100644
--- a/tests/testthat/setup.R
+++ b/tests/testthat/setup.R
@@ -2,3 +2,7 @@
skip_if_no_rdkit <- function() {
if (!chents:::rdkit_available) skip("RDKit is not available via reticulate")
}
+
+# Check availability of BCPC and PubChem
+bcpc_up <- webchem::ping_service("bcpc")
+pc_up <- webchem::ping_service("pc")
diff --git a/tests/testthat/test_chent.R b/tests/testthat/test_chent.R
index 76af7aa..4017042 100644
--- a/tests/testthat/test_chent.R
+++ b/tests/testthat/test_chent.R
@@ -3,15 +3,20 @@ test_that("We can initialise an object and add information", {
expect_equal(oct$identifier, c(X1.octanol = "1-octanol")) # The name of the identifier is generated using make.names()
expect_equal(oct$inchikey, structure(NA, source = "user"))
expect_equal(oct$smiles, c(user = "CCCCCCCCO"))
- oct$try_pubchem() |>
- expect_message("Querying PubChem for name 1-octanol") |>
- expect_warning("Overwriting uninitialized InChIKey")
- expect_equal(oct$inchikey, structure("KBPLFHHGFOOTCA-UHFFFAOYSA-N", source = "pubchem"))
- expect_equal(oct$smiles[["PubChem"]], "CCCCCCCCO")
+
+ if (webchem::ping_service("pc")) {
+ oct$try_pubchem() |>
+ expect_message("Querying PubChem for name 1-octanol") |>
+ expect_warning("Overwriting uninitialized InChIKey")
+ expect_equal(oct$inchikey, structure("KBPLFHHGFOOTCA-UHFFFAOYSA-N", source = "pubchem"))
+ expect_equal(oct$smiles[["PubChem"]], "CCCCCCCCO")
+ expect_equal(round(oct$mw, 2), structure(130.23, source = "pubchem"))
+ }
skip_if_no_rdkit()
oct$get_rdkit() |>
expect_message("Get chemical information from RDKit using user SMILES")
- expect_equal(round(oct$mw, 2), structure(130.23, source = "pubchem"))
+
+ skip_if_not(pc_up)
expect_snapshot(print(oct))
})
diff --git a/tests/testthat/test_pai.R b/tests/testthat/test_pai.R
index 9d73b58..7d9c566 100644
--- a/tests/testthat/test_pai.R
+++ b/tests/testthat/test_pai.R
@@ -1,14 +1,15 @@
test_that("a pai object is correctly generated", {
- {glyphosate <- pai$new("glyphosate", rdkit = FALSE)} |>
- expect_message("Querying BCPC for glyphosate") |>
+ skip_if_not(bcpc_up & pc_up)
+ {glyphosate <- pai$new("glyphosate", rdkit = FALSE)} |>
+ expect_message("Querying BCPC for glyphosate") |>
expect_message("Querying PubChem for inchikey ")
-
+
# Check BCPC results
expect_equal(glyphosate$bcpc$cas, "1071-83-6")
expect_equal(glyphosate$bcpc$formula, "C3H8NO5P")
expect_equal(glyphosate$bcpc$iupac_name, "N-(phosphonomethyl)glycine")
-
+
expect_equal(names(glyphosate$identifier), "glyphosate")
# Check PubChem results

Contact - Imprint