## For sparklyr testing testthat_context <- new.env() ## --------------------------- Connection -------------------------------------- testthat_spark_connection_open <- function(set_to = NULL) { cs <- testthat_context$spark$connection$open if (is.null(cs)) { cs <- FALSE } if (!is.null(set_to)) { cs <- set_to } testthat_context$spark$connection$open <- cs cs } testthat_spark_connection_object <- function(con = NULL) { co <- testthat_spark_connection_open() if (co && !is.null(con)) { stop("There is a connection already open") } if (co) { return(testthat_context$spark$connection$object) } if (!is.null(con)) { testthat_spark_connection_open(TRUE) testthat_context$spark$connection$object <- con } } testthat_spark_connection_type <- function() { ct <- testthat_context$spark$type if (is.null(ct)) { ct <- "local" lv <- using_livy() db <- using_databricks() sy <- using_synapse() mt <- using_method() if (lv && db) { stop("Databricks and Livy cannot be tested simultaneously") } if (lv) { ct <- "livy" } if (db) { ct <- "databricks" } if (sy) { ct <- "synapse" } if (mt) ct <- "method" } ct } testthat_spark_env_version <- function(set_to = NULL) { cv <- testthat_context$spark$version if (is.null(cv)) { esv <- Sys.getenv("SPARK_VERSION") sv <- NULL if (esv != "") { sv <- esv } if (!is.null(cv)) { sv <- cv } if (is.null(sv)) { mv <- max(sparklyr::spark_installed_versions()$spark) sv <- mv } } else { sv <- cv } if (!is.null(set_to)) { sv <- set_to } testthat_context$spark$version <- sv if (is.null(set_to)) sv } ## ----------------------------- Using ----------------------------------------- using_master_get <- function() { Sys.getenv("TEST_SPARKLYR_MASTER", unset = NA) } using_method_get <- function() { Sys.getenv("TEST_SPARKLYR_METHOD", unset = NA) } using_method <- function() { !is.na(using_method_get()) } using_livy_version <- function() { lv <- Sys.getenv("LIVY_VERSION") testthat_context$spark$livy$version <- lv lv } using_livy <- function() { lt <- FALSE if (using_livy_version() != "") { lt <- TRUE } lt } using_arrow_version <- function() { lv <- Sys.getenv("ARROW_VERSION") testthat_context$spark$arrow$version <- lv lv } using_arrow_devel <- function() { if (using_arrow_version() == "devel") { TRUE } else { FALSE } } using_arrow <- function() { lt <- FALSE if (using_arrow_version() != "") { lt <- TRUE } lt } using_databricks <- function() { dcs <- FALSE dc <- Sys.getenv("TEST_DATABRICKS_CONNECT") if (dc == 'true') { dcs <- TRUE } #sc <- testthat_spark_connection() #if(sc$method == "databricks_connect") dcs <- TRUE testthat_context$databricks <- dcs dcs } using_synapse <- function() { if (Sys.getenv("TEST_SYNAPSE_CONNECT") == "true") { TRUE } else { FALSE } }