tests/testthat/test_helper.R

# Set passwords and host names depending on test environment
os_password = ""
pgdb_rdata = "localhost"
mysqldb_rdata = "localhost"
mysql_conf = "~/.my.cnf"
docker_or_travis = Sys.getenv("IN_DOCKER")

# Check if the environment variable "IN_DOCKER" is set to "true"
if (docker_or_travis == "true") {
  os_password = 'Password12!'
  pgdb_rdata = "pgdb_rdata"
  mysqldb_rdata = "mysqldb_rdata"
  mysql_conf = "/cli_tools/.my.cnf"
}

full_normalized_path = function(paths, ..., mustWork = FALSE) {
  # Join and Normalize a path
  # Checks if the path exists if mustWork = TRUE
  file_path <- normalizePath(file.path(paths, ...), 
                             winslash = "/",
                             mustWork = mustWork)
}

# helper to skip tests if python is not avaialable
skip_if_no_retriever <- function() {
  # check for reticulate
  if (!requireNamespace("reticulate", quietly = TRUE)) {
    testthat::skip("reticulate not available for testing")
  }
  retriever_available <- FALSE
  try({
    retriever_available <- reticulate::py_module_available("retriever")
  }, silent = TRUE)
  if (!retriever_available) {
    testthat::skip("retriever not available for testing")
  }
}

skip_if_no_postgres <- function() {
  deps_available <- suppressPackageStartupMessages(require(DBI) && 
                                                   require(RPostgreSQL))
  if (!deps_available) {
    testthat::skip("DBI and RPostgreSQL not available for testing")
  }
}

skip_if_no_sqlite <- function() {
  deps_available <- suppressPackageStartupMessages(require(DBI) && 
                                                   require(RSQLite))
  if (!deps_available) {
    testthat::skip("RSQLite not available for testing")
  }
}
ropensci/rdataretriever documentation built on May 18, 2022, 6:31 p.m.