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(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
}
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.