summaryrefslogtreecommitdiff
path: root/tests/testthat
diff options
context:
space:
mode:
Diffstat (limited to 'tests/testthat')
-rw-r--r--tests/testthat/setup.R8
-rw-r--r--tests/testthat/test_chent.R27
-rw-r--r--tests/testthat/test_pai.R21
3 files changed, 39 insertions, 17 deletions
diff --git a/tests/testthat/setup.R b/tests/testthat/setup.R
new file mode 100644
index 0000000..4232120
--- /dev/null
+++ b/tests/testthat/setup.R
@@ -0,0 +1,8 @@
+# Check if we can use RDKit
+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 1f4a186..a008599 100644
--- a/tests/testthat/test_chent.R
+++ b/tests/testthat/test_chent.R
@@ -1,21 +1,26 @@
-# Check if we can use RDKit
-skip_if_no_rdkit <- function() {
- if (!chents:::rdkit_available) skip("RDKit is not available via reticulate")
-}
-
test_that("We can initialise an object and add information", {
oct <- chent$new("1-octanol", smiles = "CCCCCCCCO", rdkit = FALSE, pubchem = FALSE, chyaml = FALSE)
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"))
+
+ # Check availability of BCPC and PubChem immediately before use
+ bcpc_up <- webchem::ping_service("bcpc")
+ pc_up <- webchem::ping_service("pc")
+
+ skip_if_not(pc_up)
expect_snapshot(print(oct))
})
diff --git a/tests/testthat/test_pai.R b/tests/testthat/test_pai.R
index 0d5264a..fbc9757 100644
--- a/tests/testthat/test_pai.R
+++ b/tests/testthat/test_pai.R
@@ -1,14 +1,23 @@
test_that("a pai object is correctly generated", {
- skip_on_travis() # server certificate verification failed in curl_fetch_memory()
- {glyphosate <- pai$new("glyphosate")} |>
- expect_message("Querying BCPC for glyphosate") |>
- expect_message("Querying PubChem for inchikey ") |>
- expect_message("Get chemical information from RDKit using PubChem SMILES")
-
+
+ # Check availability of BCPC and PubChem immediately before use
+ bcpc_up <- webchem::ping_service("bcpc")
+ pc_up <- webchem::ping_service("pc")
+
+ 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
ik = "XDDAORKBJWWYJS-UHFFFAOYSA-N"
expect_equal(glyphosate$inchikey, structure("XDDAORKBJWWYJS-UHFFFAOYSA-N", source = c("bcpc", "pubchem")))
expect_equal(round(glyphosate$mw, 2), structure(169.07, source = "pubchem"))

Contact - Imprint