diff options
Diffstat (limited to 'tests/testthat')
| -rw-r--r-- | tests/testthat/setup.R | 8 | ||||
| -rw-r--r-- | tests/testthat/test_chent.R | 27 | ||||
| -rw-r--r-- | tests/testthat/test_pai.R | 21 |
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")) |
