## 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 } }