Skip to content

Commit

Permalink
Adding unit tests for Snowflake
Browse files Browse the repository at this point in the history
  • Loading branch information
Admin_mschuemi authored and Admin_mschuemi committed Sep 18, 2023
1 parent 03f110e commit fdadefc
Show file tree
Hide file tree
Showing 43 changed files with 204 additions and 15 deletions.
4 changes: 3 additions & 1 deletion DESCRIPTION
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ Depends:
R (>= 4.0.0)
Imports:
rJava,
SqlRender (>= 1.15.2),
SqlRender (>= 1.16.0),
methods,
stringr,
readr,
Expand Down Expand Up @@ -49,6 +49,8 @@ Suggests:
duckdb,
pool,
ParallelLogger
Remotes:
ohdsi/SqlRender@develop
License: Apache License
VignetteBuilder: knitr
URL: https://ohdsi.github.io/DatabaseConnector/, https://github.com/OHDSI/DatabaseConnector
Expand Down
2 changes: 1 addition & 1 deletion extras/UploadDataToTestServer.R
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ fromConnection <- connect(
password = URLdecode(Sys.getenv("CDM5_SQL_SERVER_PASSWORD")),
server = Sys.getenv("CDM5_SQL_SERVER_SERVER")
)
fromDatabaseSchema <- Sys.getenv("CDM5_SQL_SERVER_CDM_SCHEMA")
fromDatabaseSchema <- Sys.getenv("CDM5_SQL_SERVER_CDM54_SCHEMA")

toConnection <- connect(
dbms = "postgresql",
Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions man/dbClearResult-DatabaseConnectorDbiResult-method.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions man/dbClearResult-DatabaseConnectorJdbcResult-method.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions man/dbColumnInfo-DatabaseConnectorDbiResult-method.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions man/dbColumnInfo-DatabaseConnectorJdbcResult-method.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions man/dbCreateTable-DatabaseConnectorConnection-method.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions man/dbDisconnect-DatabaseConnectorConnection-method.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions man/dbFetch-DatabaseConnectorDbiResult-method.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions man/dbFetch-DatabaseConnectorJdbcResult-method.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions man/dbGetInfo-DatabaseConnectorConnection-method.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions man/dbGetInfo-DatabaseConnectorDriver-method.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions man/dbGetRowCount-DatabaseConnectorDbiResult-method.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions man/dbGetRowCount-DatabaseConnectorJdbcResult-method.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions man/dbGetRowsAffected-DatabaseConnectorDbiResult-method.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions man/dbGetStatement-DatabaseConnectorDbiResult-method.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions man/dbGetStatement-DatabaseConnectorJdbcResult-method.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions man/dbHasCompleted-DatabaseConnectorDbiResult-method.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions man/dbHasCompleted-DatabaseConnectorJdbcResult-method.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions man/dbIsValid-DatabaseConnectorDbiConnection-method.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions man/dbIsValid-DatabaseConnectorJdbcConnection-method.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions man/dbListTables-DatabaseConnectorConnection-method.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions man/dbWriteTable-DatabaseConnectorConnection-ANY-method.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions tests/testthat/dbplyrTestFunction.R
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@ testDbplyrFunctions <- function(connectionDetails, cdmDatabaseSchema) {
assertTempEmulationSchemaSet(connectionDetails$dbms)

connection <- connect(connectionDetails)
on.exit(disconnect(connection))
on.exit(dropEmulatedTempTables(connection))
on.exit(disconnect(connection), add = TRUE)

person <- tbl(connection, inDatabaseSchema(cdmDatabaseSchema, "person"))
observationPeriod <- tbl(connection, inDatabaseSchema(cdmDatabaseSchema, "observation_period"))
Expand Down Expand Up @@ -178,7 +179,6 @@ testDbplyrFunctions <- function(connectionDetails, cdmDatabaseSchema) {
# names(dumbNameCars) <- c("Car speed", "Dist. to Stop")
# copy_to(connection, dumbNameCars, name = "dn_cars")

dropEmulatedTempTables(connection)
# disconnect(connection)
invisible(NULL)
}
22 changes: 22 additions & 0 deletions tests/testthat/test-BatchProcess.R
Original file line number Diff line number Diff line change
Expand Up @@ -111,4 +111,26 @@ test_that("renderTranslateQueryApplyBatched works", {

disconnect(connection)
unlink(dbFile)

# Snowflake --------------------------------------------------
details <- createConnectionDetails(
dbms = "snowflake",
user = Sys.getenv("CDM_SNOWFLAKE_USER"),
password = URLdecode(Sys.getenv("CDM_SNOWFLAKE_PASSWORD")),
connectionString = Sys.getenv("CDM_SNOWFLAKE_CONNECTION_STRING")
)
connection <- connect(details)
cdmDatabaseSchema <- Sys.getenv("CDM_SNOWFLAKE_CDM53_SCHEMA")

sql <- "SELECT TOP 10 * FROM @cdm_database_schema.vocabulary;"
data <- renderTranslateQueryApplyBatched(connection,
sql,
fun,
args,
cdm_database_schema = cdmDatabaseSchema
)
data <- do.call(rbind, data)
expect_true("test" %in% colnames(data))
expect_true(all(data$test == "MY STRING"))
disconnect(connection)
})
22 changes: 11 additions & 11 deletions tests/testthat/test-connection.R
Original file line number Diff line number Diff line change
Expand Up @@ -253,17 +253,17 @@ test_that("Open and close connection using connection strings with separate user
# expect_equal(dbms(connection), "spark")
# expect_true(disconnect(connection))

# Snowflake --------------------------------------------------
# Disable Snowflake unit tests until we have a testing server
# details <- createConnectionDetails(
# dbms = "snowflake",
# connectionString = Sys.getenv("CDM5_SNOWFLAKE_CONNECTION_STRING"),
# user = Sys.getenv("CDM5_SNOWFLAKE_USER"),
# password = URLdecode(Sys.getenv("CDM5_SNOWFLAKE_PASSWORD"))
# )
# connection <- connect(details)
# expect_true(inherits(connection, "DatabaseConnectorConnection"))
# expect_true(disconnect(connection))
# Snowflake --------------------------------------------------
details <- createConnectionDetails(
dbms = "snowflake",
user = Sys.getenv("CDM_SNOWFLAKE_USER"),
password = URLdecode(Sys.getenv("CDM_SNOWFLAKE_PASSWORD")),
connectionString = Sys.getenv("CDM_SNOWFLAKE_CONNECTION_STRING")
)
connection <- connect(details)
expect_true(inherits(connection, "DatabaseConnectorConnection"))
expect_equal(dbms(connection), "snowflake")
expect_true(disconnect(connection))
})

test_that("Error is thrown when using incorrect dbms argument", {
Expand Down
13 changes: 13 additions & 0 deletions tests/testthat/test-dataHash.R
Original file line number Diff line number Diff line change
Expand Up @@ -106,4 +106,17 @@ test_that("Compute data hash", {

disconnect(connection)
unlink(dbFile)

# Snowflake ------------------------------------------------------------------
details <- createConnectionDetails(
dbms = "snowflake",
user = Sys.getenv("CDM_SNOWFLAKE_USER"),
password = URLdecode(Sys.getenv("CDM_SNOWFLAKE_PASSWORD")),
connectionString = Sys.getenv("CDM_SNOWFLAKE_CONNECTION_STRING")
)
connection <- connect(details)
hash <- computeDataHash(connection, Sys.getenv("CDM_SNOWFLAKE_CDM53_SCHEMA"))
expect_true(is.character(hash))

disconnect(connection)
})
13 changes: 13 additions & 0 deletions tests/testthat/test-dbplyr.R
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,19 @@ test_that("Test dbplyr on DuckDB", {
unlink(databaseFile)
})

test_that("Test dbplyr on Snowflake", {
# Snowflake ----------------------------------------------
connectionDetails <- createConnectionDetails(
dbms = "snowflake",
user = Sys.getenv("CDM_SNOWFLAKE_USER"),
password = URLdecode(Sys.getenv("CDM_SNOWFLAKE_PASSWORD")),
connectionString = Sys.getenv("CDM_SNOWFLAKE_CONNECTION_STRING")
)
cdmDatabaseSchema <- Sys.getenv("CDM_SNOWFLAKE_CDM53_SCHEMA")
options(sqlRenderTempEmulationSchema = Sys.getenv("CDM_SNOWFLAKE_OHDSI_SCHEMA"))
testDbplyrFunctions(connectionDetails, cdmDatabaseSchema)
})

test_that("Test dbplyr date functions on non-dbplyr data", {
date <- c(as.Date("2000-02-01"), as.Date("2000-12-31"), as.Date("2000-01-31"))

Expand Down
Loading

0 comments on commit fdadefc

Please sign in to comment.