Skip to content

Commit

Permalink
allow to test multiple dbms
Browse files Browse the repository at this point in the history
closes #48
  • Loading branch information
catalamarti committed Jul 29, 2024
1 parent 29df430 commit 32af7e7
Show file tree
Hide file tree
Showing 4 changed files with 50 additions and 33 deletions.
23 changes: 23 additions & 0 deletions tests/testthat/setup.R
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,26 @@ if (!on_cran()) {
)
CDMConnector::downloadEunomiaData(overwrite = TRUE)
}
connection <- function(type = Sys.getenv("DB_TO_TEST", "duckdb")) {
switch(
type,
"duckdb" = DBI::dbConnect(duckdb::duckdb(), ":memory:")
)
}
schema <- function(type = Sys.getenv("DB_TO_TEST", "duckdb")) {
switch(
type,
"duckdb" = c(schema = "main", prefix = "os_")
)
}
cdmEunomia <- function() {
con <- connection()
schema <- schema()
conDuck <- DBI::dbConnect(duckdb::duckdb(), CDMConnector::eunomia_dir())
cdmDuck <- CDMConnector::cdmFromCon(
con = conDuck, cdmSchema = "main", writeSchema = "main"
)
cdm <- CDMConnector::copyCdmTo(con = con, cdm = cdmDuck, schema = schema)
CDMConnector::cdmDisconnect(cdm = cdmDuck)
return(cdm)
}
16 changes: 6 additions & 10 deletions tests/testthat/test-summariseClinicalRecords.R
Original file line number Diff line number Diff line change
@@ -1,10 +1,7 @@
test_that("summariseClinicalRecords() works", {

# Load mock database ----
con <- DBI::dbConnect(duckdb::duckdb(), CDMConnector::eunomia_dir())
cdm <- CDMConnector::cdmFromCon(
con = con, cdmSchema = "main", writeSchema = "main"
)
cdm <- cdmEunomia()

# Check all tables work ----
expect_true(inherits(summariseClinicalRecords(cdm$observation_period),"summarised_result"))
Expand Down Expand Up @@ -58,20 +55,19 @@ test_that("summariseClinicalRecords() works", {
domainId = FALSE,
typeConcept = FALSE) |>
dplyr::tally() |> dplyr::pull() == 3)
})

PatientProfiles::mockDisconnect(cdm = cdm)
})

test_that("tableClinicalRecords() works", {
# Load mock database ----
con <- DBI::dbConnect(duckdb::duckdb(), CDMConnector::eunomia_dir())
cdm <- CDMConnector::cdmFromCon(
con = con, cdmSchema = "main", writeSchema = "main"
)
cdm <- cdmEunomia()

# Check that works ----
expect_no_error(x <- tableClinicalRecords(summariseClinicalRecords(cdm$condition_occurrence)))
expect_true(inherits(x,"gt_tbl"))
expect_warning(t <- summariseClinicalRecords(cdm$death))
expect_warning(inherits(tableClinicalRecords(t),"gt_tbl"))
})

PatientProfiles::mockDisconnect(cdm = cdm)
})
11 changes: 5 additions & 6 deletions tests/testthat/test-summariseObservationPeriod.R
Original file line number Diff line number Diff line change
@@ -1,10 +1,7 @@
test_that("check summariseObservationPeriod works", {
#
# # Load mock database ----
# con <- DBI::dbConnect(duckdb::duckdb(), CDMConnector::eunomia_dir())
# cdm <- CDMConnector::cdmFromCon(
# con = con, cdmSchema = "main", writeSchema = "main"
# )
# Load mock database ----
cdm <- cdmEunomia()

#
# # Check all tables work ----
# expect_true(inherits(summariseObservationPeriod(cdm$observation_period),"summarised_result"))
Expand Down Expand Up @@ -94,4 +91,6 @@ test_that("check summariseObservationPeriod works", {
# expect_true(inherits(plotObservationPeriod(x),"ggplot"))
# x <- x |> dplyr::filter(result_id == -1)
# expect_warning(plotObservationPeriod(x))

PatientProfiles::mockDisconnect(cdm = cdm)
})
33 changes: 16 additions & 17 deletions tests/testthat/test-summariseRecordCount.R
Original file line number Diff line number Diff line change
@@ -1,10 +1,7 @@
test_that("summariseRecordCount() works", {

# Load mock database ----
con <- DBI::dbConnect(duckdb::duckdb(), CDMConnector::eunomia_dir())
cdm <- CDMConnector::cdmFromCon(
con = con, cdmSchema = "main", writeSchema = "main"
)
cdm <- cdmEunomia()

# Check inputs ----
expect_true(inherits(summariseRecordCount(omopTable = cdm$observation_period, unit = "month"),"summarised_result"))
Expand Down Expand Up @@ -74,24 +71,26 @@ test_that("summariseRecordCount() works", {
dplyr::tally() |>
dplyr::pull("n"))
)

PatientProfiles::mockDisconnect(cdm = cdm)
})

test_that("plotRecordCount() works", {
# Load mock database ----
con <- DBI::dbConnect(duckdb::duckdb(), CDMConnector::eunomia_dir())
cdm <- CDMConnector::cdmFromCon(
con = con, cdmSchema = "main", writeSchema = "main"
)
expect_true(inherits(plotRecordCount(summariseRecordCount(cdm$drug_exposure, unitInterval = 8)),"ggplot"))
cdm <- cdmEunomia()

p <- summariseRecordCount(cdm$drug_exposure, unitInterval = 8) |>
plotRecordCount()

expect_true(inherits(p,"ggplot"))
# expect_warning(inherits(plotRecordCount(summariseRecordCount(cdm$death, unitInterval = 8)),"ggplot"))

PatientProfiles::mockDisconnect(cdm = cdm)
})

test_that("summariseRecordCount() ageGroup argument works", {
# Load mock database ----
con <- DBI::dbConnect(duckdb::duckdb(), CDMConnector::eunomia_dir())
cdm <- CDMConnector::cdmFromCon(
con = con, cdmSchema = "main", writeSchema = "main"
)
cdm <- cdmEunomia()

# Check that works ----
expect_no_error(t <- summariseRecordCount(cdm$condition_occurrence, ageGroup = list(">=65" = c(65, Inf), "<65" = c(0,64))))
Expand Down Expand Up @@ -140,15 +139,13 @@ test_that("summariseRecordCount() ageGroup argument works", {
dplyr::pull(n)
expect_equal(x,y)

PatientProfiles::mockDisconnect(cdm = cdm)
})


test_that("summariseRecordCount() sex argument works", {
# Load mock database ----
con <- DBI::dbConnect(duckdb::duckdb(), CDMConnector::eunomia_dir())
cdm <- CDMConnector::cdmFromCon(
con = con, cdmSchema = "main", writeSchema = "main"
)
cdm <- cdmEunomia()

# Check that works ----
expect_no_error(t <- summariseRecordCount(cdm$condition_occurrence, sex = TRUE))
Expand Down Expand Up @@ -197,6 +194,8 @@ test_that("summariseRecordCount() sex argument works", {
dplyr::pull(n) |>
as.character()
expect_equal(x,y)

PatientProfiles::mockDisconnect(cdm = cdm)
})


Expand Down

0 comments on commit 32af7e7

Please sign in to comment.