tests/testthat/setup.R

# location to download the JDBC drivers used in the tests
jdbcDriverFolder <- tempfile("jdbcDrivers")

withr::defer({
  unlink(jdbcDriverFolder, recursive = TRUE, force = TRUE)
}, testthat::teardown_env())


dbms <- getOption("dbms", default = "sqlite")
if (dbms == "sqlite") {
  connectionDetails <- Eunomia::getEunomiaConnectionDetails()
  cdmDatabaseSchema <- "main"
  cdmVersion <- 5
}
if (dbms == "postgresql") {
  DatabaseConnector::downloadJdbcDrivers("postgresql", pathToDriver = jdbcDriverFolder)
  connectionDetails <- createConnectionDetails(dbms = "postgresql",
                                               user = Sys.getenv("CDM5_POSTGRESQL_USER"),
                                               password = URLdecode(Sys.getenv("CDM5_POSTGRESQL_PASSWORD")),
                                               server = Sys.getenv("CDM5_POSTGRESQL_SERVER"),
                                               pathToDriver = jdbcDriverFolder)

  cdmDatabaseSchema <- Sys.getenv("CDM5_POSTGRESQL_CDM_SCHEMA")
  cdmVersion <- 5
}
if (dbms == "redshift") {
  DatabaseConnector::downloadJdbcDrivers("redshift", pathToDriver = jdbcDriverFolder)
  connectionDetails <- createConnectionDetails(dbms = "redshift",
                                               user = Sys.getenv("CDM5_REDSHIFT_USER"),
                                               password = URLdecode(Sys.getenv("CDM5_REDSHIFT_PASSWORD")),
                                               server = Sys.getenv("CDM5_REDSHIFT_SERVER"),
                                               pathToDriver = jdbcDriverFolder)

  cdmDatabaseSchema <- Sys.getenv("CDM5_REDSHIFT_CDM_SCHEMA")
  cdmVersion <- 5
}
if (dbms == "sql server") {
  DatabaseConnector::downloadJdbcDrivers("sql server", pathToDriver = jdbcDriverFolder)
  connectionDetails <- createConnectionDetails(dbms = "sql server",
                                               user = Sys.getenv("CDM5_SQL_SERVER_USER"),
                                               password = URLdecode(Sys.getenv("CDM5_SQL_SERVER_PASSWORD")),
                                               server = Sys.getenv("CDM5_SQL_SERVER_SERVER"),
                                               pathToDriver = jdbcDriverFolder)
  cdmDatabaseSchema <- Sys.getenv("CDM5_SQL_SERVER_CDM_SCHEMA")
  cdmVersion <- 5
}
if (dbms == "oracle") {
  DatabaseConnector::downloadJdbcDrivers("oracle", pathToDriver = jdbcDriverFolder)
  connectionDetails <- createConnectionDetails(dbms = "oracle",
                                               user = Sys.getenv("CDM5_ORACLE_USER"),
                                               password = URLdecode(Sys.getenv("CDM5_ORACLE_PASSWORD")),
                                               server = Sys.getenv("CDM5_ORACLE_SERVER"),
                                               pathToDriver = jdbcDriverFolder)
  cdmDatabaseSchema <- Sys.getenv("CDM5_ORACLE_CDM_SCHEMA")

  # Restore temp schema setting after tests complete
  oldTempSchema <- getOption("sqlRenderTempEmulationSchema")
  withr::defer(options("sqlRenderTempEmulationSchema" = oldTempSchema), testthat::teardown_env())
  options("sqlRenderTempEmulationSchema" = Sys.getenv("CDM5_ORACLE_OHDSI_SCHEMA"))
  cdmVersion <- 5
}
OHDSI/SelfControlledCohort documentation built on Feb. 22, 2023, 5:44 p.m.