Add test for buildRelease (#432)

* Add github actions workflow to build package and run tests.

* update Description file

* rename .Rproj file.

* Consolidate 'create' functions into one file.

* Add tests for create functions.

* update description

* removed spaces in file and folder names. Regenerated ddl output. Tried to fix Field_Level.csv file.

* consolidate write functions into one file. Add execute function.

* update docs

* add tests for write and execute functions

* update documentation

* Add windows and linux runners in github actions.

* update github actions

* download drivers before running tests

* fix small error in setup test file.

* debug github actions

* debug github actions

* debug github actions

* debug github actions

* fix tiny bug

* comment out execute ddl test

* fix bug in test

* Add execute test back in

* revert accidental change in description

* add print statement for debugging schema error on github actions.

* Fix schema environment variable name

* Add comment to github actions workflow file.

* remove placeholder text in function documentation.

* Rename createdDdl.R to createDdl.R

* Hack-a-thon updates

Closes #81, #387, #239, #412, #391, #330, #408, #365, #306, #264

* Changed bigint to integer for consistency

* Updated DDLs

* Add tests for redshift. Clean up test setup file.

* Foreign key fixes

* Add imports and update docs.

* Fix bug in setup test script.

* update setup file

* Add tests for oracle and sql server. Move setup.R file.

* fix bug in setup

* debug tests on github

* debug github actions

* debug actions.

* debug actions

* debug actions.

* Add missing secrets to yaml!!

* debug actions

* test connection on all platforms

* add ddl execution

* add windows and linux runners

* Allow user to specify output location in buildRelease

* replace outputpath with outputfolder for consitent argument names in the package.

* Add test for buildRelease.

* replace outputpath with outputfolder for consistency. update documentation.

* move ddl folder to inst so it is accessible from tests

* update documentation

Co-authored-by: Adam Black <adam.black@odysseusinc.com>
Co-authored-by: Clair Blacketer <mblacke@its.jnj.com>
This commit is contained in:
Adam Black 2021-08-20 12:32:46 -04:00 committed by GitHub
parent 532be98c0c
commit 40e26982d4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
73 changed files with 115 additions and 68 deletions

View File

@ -1,5 +1,6 @@
# Generated by roxygen2: do not edit by hand # Generated by roxygen2: do not edit by hand
export(buildRelease)
export(buildReleaseZip) export(buildReleaseZip)
export(createDdl) export(createDdl)
export(createForeignKeys) export(createForeignKeys)

View File

@ -19,25 +19,36 @@
#' Writes DDL, ForeignKey, PrimaryKey and index SQL files for given cdmVersion #' Writes DDL, ForeignKey, PrimaryKey and index SQL files for given cdmVersion
#' and targetDialect to the 'ddl' folder in current working directory. #' and targetDialect to the 'ddl' folder in current working directory.
#' #'
#' @param cdmVersion The version of the CDM you are creating, e.g. 5.3, 5.4. #' @param cdmVersions The versions of the CDM you are creating, e.g. 5.3, 5.4.
#' Defaults to all supported CDM versions. #' Defaults to all supported CDM versions.
#' @param targetDialect The target dialect #' @param targetDialects A character vector of target dialects.
#' #' Defaults to all supported dialects.
buildRelease <- function(cdmVersion = listSupportedVersions(), #' @param outputfolder The base folder where the SQL files will be written.
targetDialect = listSupportedDialects()){ #' Subfolders will be created for each cdmVersion and targetDialect.
for (cdmVersion in cdmVersion) { #' @export
for (targetDialect in targetDialect) { buildRelease <- function(cdmVersions = listSupportedVersions(),
targetDialects = listSupportedDialects(),
outputfolder = file.path(getwd(), "inst", "ddl")){
basefolder <- outputfolder
for (cdmVersion in cdmVersions) {
for (targetDialect in targetDialects) {
outputfolder <- file.path(basefolder, cdmVersion, gsub(" ", "_", targetDialect))
writeDdl(targetDialect = targetDialect, writeDdl(targetDialect = targetDialect,
cdmVersion = cdmVersion) cdmVersion = cdmVersion,
outputfolder = outputfolder)
writePrimaryKeys(targetDialect = targetDialect, writePrimaryKeys(targetDialect = targetDialect,
cdmVersion = cdmVersion) cdmVersion = cdmVersion,
outputfolder = outputfolder)
writeForeignKeys(targetDialect = targetDialect, writeForeignKeys(targetDialect = targetDialect,
cdmVersion = cdmVersion) cdmVersion = cdmVersion,
outputfolder = outputfolder)
writeIndex(targetDialect = targetDialect, writeIndex(targetDialect = targetDialect,
cdmVersion = cdmVersion) cdmVersion = cdmVersion,
outputfolder = outputfolder)
} }
} }
} }
@ -62,7 +73,7 @@ buildRelease <- function(cdmVersion = listSupportedVersions(),
#' #'
buildReleaseZip <- function(cdmVersion, buildReleaseZip <- function(cdmVersion,
targetDialect = listSupportedDialects(), targetDialect = listSupportedDialects(),
outputfolder = "output"){ outputfolder = file.path(getwd(), "inst", "ddl")){
# argument checks # argument checks
stopifnot(is.character(cdmVersion), length(cdmVersion) == 1, cdmVersion %in% listSupportedVersions()) stopifnot(is.character(cdmVersion), length(cdmVersion) == 1, cdmVersion %in% listSupportedVersions())
@ -72,8 +83,8 @@ buildReleaseZip <- function(cdmVersion,
files <- c() files <- c()
for (dialect in targetDialect) { for (dialect in targetDialect) {
buildRelease(cdmVersion, dialect) buildRelease(cdmVersion, dialect, outputfolder = outputfolder)
files <- c(files, list.files(file.path('ddl', cdmVersion, gsub(" ", "_", dialect)), files <- c(files, list.files(file.path(outputfolder, cdmVersion, gsub(" ", "_", dialect)),
pattern = ".*\\.sql$", pattern = ".*\\.sql$",
full.names = TRUE)) full.names = TRUE))
} }

View File

@ -42,16 +42,16 @@ executeDdl <- function(connectionDetails,
executeForeignKey = TRUE, executeForeignKey = TRUE,
...) { ...) {
outputpath <- tempdir(check = TRUE) outputfolder <- tempdir(check = TRUE)
if(executeDdl) { if(executeDdl) {
filename <- writeDdl(targetDialect = connectionDetails$dbms, filename <- writeDdl(targetDialect = connectionDetails$dbms,
cdmVersion = cdmVersion, cdmVersion = cdmVersion,
cdmDatabaseSchema = cdmDatabaseSchema, cdmDatabaseSchema = cdmDatabaseSchema,
outputpath = outputpath) outputfolder = outputfolder)
sql <- readr::read_file(file.path(outputpath, filename)) sql <- readr::read_file(file.path(outputfolder, filename))
} else { } else {
sql <- "" sql <- ""
} }
@ -60,18 +60,18 @@ executeDdl <- function(connectionDetails,
filename <- writePrimaryKeys(targetDialect = connectionDetails$dbms, filename <- writePrimaryKeys(targetDialect = connectionDetails$dbms,
cdmVersion = cdmVersion, cdmVersion = cdmVersion,
cdmDatabaseSchema = cdmDatabaseSchema, cdmDatabaseSchema = cdmDatabaseSchema,
outputpath = outputpath) outputfolder = outputfolder)
sql <- paste(sql, readr::read_file(file.path(outputpath, filename)), sep = "\n") sql <- paste(sql, readr::read_file(file.path(outputfolder, filename)), sep = "\n")
} }
if(executeForeignKey) { if(executeForeignKey) {
filename <- writeForeignKeys(targetDialect = connectionDetails$dbms, filename <- writeForeignKeys(targetDialect = connectionDetails$dbms,
cdmVersion = cdmVersion, cdmVersion = cdmVersion,
cdmDatabaseSchema = cdmDatabaseSchema, cdmDatabaseSchema = cdmDatabaseSchema,
outputpath = outputpath) outputfolder = outputfolder)
sql <- paste(sql, readr::read_file(file.path(outputpath, filename)), sep = "\n") sql <- paste(sql, readr::read_file(file.path(outputfolder, filename)), sep = "\n")
} }
con <- DatabaseConnector::connect(connectionDetails = connectionDetails) con <- DatabaseConnector::connect(connectionDetails = connectionDetails)

View File

@ -22,95 +22,95 @@
#' #'
#' @param targetDialect The dialect of the target database. Choices are "oracle", "postgresql", "pdw", "redshift", "impala", "netezza", "bigquery", "sql server" #' @param targetDialect The dialect of the target database. Choices are "oracle", "postgresql", "pdw", "redshift", "impala", "netezza", "bigquery", "sql server"
#' @param cdmVersion The version of the CDM you are creating, e.g. 5.3, 5.4 #' @param cdmVersion The version of the CDM you are creating, e.g. 5.3, 5.4
#' @param outputpath The directory or folder where the SQL file should be saved. #' @param outputfolder The directory or folder where the SQL file should be saved.
#' @param cdmDatabaseSchema The schema of the CDM instance where the DDL will be run. For example, this would be "ohdsi.dbo" when testing on sql server. #' @param cdmDatabaseSchema The schema of the CDM instance where the DDL will be run. For example, this would be "ohdsi.dbo" when testing on sql server.
#' Defaults to "@cdmDatabaseSchema" #' Defaults to "@cdmDatabaseSchema"
#' #'
#' @export #' @export
writeDdl <- function(targetDialect, cdmVersion, outputpath, cdmDatabaseSchema = "@cdmDatabaseSchema") { writeDdl <- function(targetDialect, cdmVersion, outputfolder, cdmDatabaseSchema = "@cdmDatabaseSchema") {
# argument checks # argument checks
stopifnot(targetDialect %in% c("oracle", "postgresql", "pdw", "redshift", "impala", "netezza", "bigquery", "sql server")) stopifnot(targetDialect %in% c("oracle", "postgresql", "pdw", "redshift", "impala", "netezza", "bigquery", "sql server"))
stopifnot(cdmVersion %in% listSupportedVersions()) stopifnot(cdmVersion %in% listSupportedVersions())
stopifnot(is.character(cdmDatabaseSchema)) stopifnot(is.character(cdmDatabaseSchema))
if(missing(outputpath)) { if(missing(outputfolder)) {
outputpath <- file.path("ddl", cdmVersion, gsub(" ", "_", targetDialect)) outputfolder <- file.path("ddl", cdmVersion, gsub(" ", "_", targetDialect))
} }
if(!dir.exists(outputpath)) dir.create(outputpath, showWarnings = FALSE, recursive = TRUE) if(!dir.exists(outputfolder)) dir.create(outputfolder, showWarnings = FALSE, recursive = TRUE)
sql <- createDdl(cdmVersion) sql <- createDdl(cdmVersion)
sql <- SqlRender::render(sql = sql, cdmDatabaseSchema = cdmDatabaseSchema, targetDialect = targetDialect) sql <- SqlRender::render(sql = sql, cdmDatabaseSchema = cdmDatabaseSchema, targetDialect = targetDialect)
sql <- SqlRender::translate(sql, targetDialect = targetDialect) sql <- SqlRender::translate(sql, targetDialect = targetDialect)
filename <- paste("OMOPCDM", gsub(" ", "_", targetDialect), cdmVersion, "ddl.sql", sep = "_") filename <- paste("OMOPCDM", gsub(" ", "_", targetDialect), cdmVersion, "ddl.sql", sep = "_")
SqlRender::writeSql(sql = sql, targetFile = file.path(outputpath, filename)) SqlRender::writeSql(sql = sql, targetFile = file.path(outputfolder, filename))
invisible(filename) invisible(filename)
} }
#' @describeIn writeDdl writePrimaryKeys Write the SQL code that creates the primary keys to a file. #' @describeIn writeDdl writePrimaryKeys Write the SQL code that creates the primary keys to a file.
#' @export #' @export
writePrimaryKeys <- function(targetDialect, cdmVersion, outputpath, cdmDatabaseSchema = "@cdmDatabaseSchema") { writePrimaryKeys <- function(targetDialect, cdmVersion, outputfolder, cdmDatabaseSchema = "@cdmDatabaseSchema") {
# argument checks # argument checks
stopifnot(targetDialect %in% c("oracle", "postgresql", "pdw", "redshift", "impala", "netezza", "bigquery", "sql server")) stopifnot(targetDialect %in% c("oracle", "postgresql", "pdw", "redshift", "impala", "netezza", "bigquery", "sql server"))
stopifnot(cdmVersion %in% listSupportedVersions()) stopifnot(cdmVersion %in% listSupportedVersions())
stopifnot(is.character(cdmDatabaseSchema)) stopifnot(is.character(cdmDatabaseSchema))
if(missing(outputpath)) { if(missing(outputfolder)) {
outputpath <- file.path("ddl", cdmVersion, gsub(" ", "_", targetDialect)) outputfolder <- file.path("ddl", cdmVersion, gsub(" ", "_", targetDialect))
} }
if(!dir.exists(outputpath)) dir.create(outputpath, showWarnings = FALSE, recursive = TRUE) if(!dir.exists(outputfolder)) dir.create(outputfolder, showWarnings = FALSE, recursive = TRUE)
sql <- createPrimaryKeys(cdmVersion) sql <- createPrimaryKeys(cdmVersion)
sql <- SqlRender::render(sql = sql, cdmDatabaseSchema = cdmDatabaseSchema, targetDialect = targetDialect) sql <- SqlRender::render(sql = sql, cdmDatabaseSchema = cdmDatabaseSchema, targetDialect = targetDialect)
sql <- SqlRender::translate(sql, targetDialect = targetDialect) sql <- SqlRender::translate(sql, targetDialect = targetDialect)
filename <- paste("OMOPCDM", gsub(" ", "_", targetDialect), cdmVersion, "primary", "keys.sql", sep = "_") filename <- paste("OMOPCDM", gsub(" ", "_", targetDialect), cdmVersion, "primary", "keys.sql", sep = "_")
SqlRender::writeSql(sql = sql, targetFile = file.path(outputpath, filename)) SqlRender::writeSql(sql = sql, targetFile = file.path(outputfolder, filename))
invisible(filename) invisible(filename)
} }
#' @describeIn writeDdl writeForeignKeys Write the SQL code that creates the foreign keys to a file. #' @describeIn writeDdl writeForeignKeys Write the SQL code that creates the foreign keys to a file.
#' @export #' @export
writeForeignKeys <- function(targetDialect, cdmVersion, outputpath, cdmDatabaseSchema = "@cdmDatabaseSchema") { writeForeignKeys <- function(targetDialect, cdmVersion, outputfolder, cdmDatabaseSchema = "@cdmDatabaseSchema") {
# argument checks # argument checks
stopifnot(targetDialect %in% c("oracle", "postgresql", "pdw", "redshift", "impala", "netezza", "bigquery", "sql server")) stopifnot(targetDialect %in% c("oracle", "postgresql", "pdw", "redshift", "impala", "netezza", "bigquery", "sql server"))
stopifnot(cdmVersion %in% listSupportedVersions()) stopifnot(cdmVersion %in% listSupportedVersions())
stopifnot(is.character(cdmDatabaseSchema)) stopifnot(is.character(cdmDatabaseSchema))
if(missing(outputpath)) { if(missing(outputfolder)) {
outputpath <- file.path("ddl", cdmVersion, gsub(" ", "_", targetDialect)) outputfolder <- file.path("ddl", cdmVersion, gsub(" ", "_", targetDialect))
} }
if(!dir.exists(outputpath)) dir.create(outputpath, showWarnings = FALSE, recursive = TRUE) if(!dir.exists(outputfolder)) dir.create(outputfolder, showWarnings = FALSE, recursive = TRUE)
sql <- createForeignKeys(cdmVersion) sql <- createForeignKeys(cdmVersion)
sql <- SqlRender::render(sql = sql, cdmDatabaseSchema = cdmDatabaseSchema, targetDialect = targetDialect) sql <- SqlRender::render(sql = sql, cdmDatabaseSchema = cdmDatabaseSchema, targetDialect = targetDialect)
sql <- SqlRender::translate(sql, targetDialect = targetDialect) sql <- SqlRender::translate(sql, targetDialect = targetDialect)
filename <- paste("OMOPCDM", gsub(" ", "_", targetDialect), cdmVersion, "constraints.sql", sep = "_") filename <- paste("OMOPCDM", gsub(" ", "_", targetDialect), cdmVersion, "constraints.sql", sep = "_")
SqlRender::writeSql(sql = sql, targetFile = file.path(outputpath, filename)) SqlRender::writeSql(sql = sql, targetFile = file.path(outputfolder, filename))
invisible(filename) invisible(filename)
} }
#' @describeIn writeDdl writeIndex Write the rendered and translated sql that creates recommended indexes to a file. #' @describeIn writeDdl writeIndex Write the rendered and translated sql that creates recommended indexes to a file.
#' @export #' @export
writeIndex <- function(targetDialect, cdmVersion, outputpath, cdmDatabaseSchema = "@cdmDatabaseSchema") { writeIndex <- function(targetDialect, cdmVersion, outputfolder, cdmDatabaseSchema = "@cdmDatabaseSchema") {
# argument checks # argument checks
stopifnot(targetDialect %in% c("oracle", "postgresql", "pdw", "redshift", "impala", "netezza", "bigquery", "sql server")) stopifnot(targetDialect %in% c("oracle", "postgresql", "pdw", "redshift", "impala", "netezza", "bigquery", "sql server"))
stopifnot(cdmVersion %in% listSupportedVersions()) stopifnot(cdmVersion %in% listSupportedVersions())
stopifnot(is.character(cdmDatabaseSchema)) stopifnot(is.character(cdmDatabaseSchema))
if(missing(outputpath)) { if(missing(outputfolder)) {
outputpath <- file.path("ddl", cdmVersion, gsub(" ", "_", targetDialect)) outputfolder <- file.path("ddl", cdmVersion, gsub(" ", "_", targetDialect))
} }
if(!dir.exists(outputpath)) dir.create(outputpath, showWarnings = FALSE, recursive = TRUE) if(!dir.exists(outputfolder)) dir.create(outputfolder, showWarnings = FALSE, recursive = TRUE)
sqlFilename <- paste0("OMOP_CDM_indices_v", cdmVersion, ".sql") sqlFilename <- paste0("OMOP_CDM_indices_v", cdmVersion, ".sql")
sql <- readr::read_file(system.file(file.path("sql", "sql_server", sqlFilename), package = "CommonDataModel")) sql <- readr::read_file(system.file(file.path("sql", "sql_server", sqlFilename), package = "CommonDataModel"))
@ -118,6 +118,6 @@ writeIndex <- function(targetDialect, cdmVersion, outputpath, cdmDatabaseSchema
sql <- SqlRender::translate(sql, targetDialect = targetDialect) sql <- SqlRender::translate(sql, targetDialect = targetDialect)
filename <- paste("OMOPCDM", gsub(" ", "_", targetDialect), cdmVersion, "indices.sql", sep = "_") filename <- paste("OMOPCDM", gsub(" ", "_", targetDialect), cdmVersion, "indices.sql", sep = "_")
SqlRender::writeSql(sql = sql, targetFile = file.path(outputpath, filename)) SqlRender::writeSql(sql = sql, targetFile = file.path(outputfolder, filename))
invisible(filename) invisible(filename)
} }

View File

@ -5,15 +5,20 @@
\title{Create OMOP CDM SQL files} \title{Create OMOP CDM SQL files}
\usage{ \usage{
buildRelease( buildRelease(
cdmVersion = listSupportedVersions(), cdmVersions = listSupportedVersions(),
targetDialect = listSupportedDialects() targetDialects = listSupportedDialects(),
outputfolder = file.path(getwd(), "inst", "ddl")
) )
} }
\arguments{ \arguments{
\item{cdmVersion}{The version of the CDM you are creating, e.g. 5.3, 5.4. \item{cdmVersions}{The versions of the CDM you are creating, e.g. 5.3, 5.4.
Defaults to all supported CDM versions.} Defaults to all supported CDM versions.}
\item{targetDialect}{The target dialect} \item{targetDialects}{A character vector of target dialects.
Defaults to all supported dialects.}
\item{outputfolder}{The base folder where the SQL files will be written.
Subfolders will be created for each cdmVersion and targetDialect.}
} }
\description{ \description{
Writes DDL, ForeignKey, PrimaryKey and index SQL files for given cdmVersion Writes DDL, ForeignKey, PrimaryKey and index SQL files for given cdmVersion

View File

@ -7,7 +7,7 @@
buildReleaseZip( buildReleaseZip(
cdmVersion, cdmVersion,
targetDialect = listSupportedDialects(), targetDialect = listSupportedDialects(),
outputfolder = "output" outputfolder = file.path(getwd(), "inst", "ddl")
) )
} }
\arguments{ \arguments{

View File

@ -10,28 +10,28 @@
writeDdl( writeDdl(
targetDialect, targetDialect,
cdmVersion, cdmVersion,
outputpath, outputfolder,
cdmDatabaseSchema = "@cdmDatabaseSchema" cdmDatabaseSchema = "@cdmDatabaseSchema"
) )
writePrimaryKeys( writePrimaryKeys(
targetDialect, targetDialect,
cdmVersion, cdmVersion,
outputpath, outputfolder,
cdmDatabaseSchema = "@cdmDatabaseSchema" cdmDatabaseSchema = "@cdmDatabaseSchema"
) )
writeForeignKeys( writeForeignKeys(
targetDialect, targetDialect,
cdmVersion, cdmVersion,
outputpath, outputfolder,
cdmDatabaseSchema = "@cdmDatabaseSchema" cdmDatabaseSchema = "@cdmDatabaseSchema"
) )
writeIndex( writeIndex(
targetDialect, targetDialect,
cdmVersion, cdmVersion,
outputpath, outputfolder,
cdmDatabaseSchema = "@cdmDatabaseSchema" cdmDatabaseSchema = "@cdmDatabaseSchema"
) )
} }
@ -40,7 +40,7 @@ writeIndex(
\item{cdmVersion}{The version of the CDM you are creating, e.g. 5.3, 5.4} \item{cdmVersion}{The version of the CDM you are creating, e.g. 5.3, 5.4}
\item{outputpath}{The directory or folder where the SQL file should be saved.} \item{outputfolder}{The directory or folder where the SQL file should be saved.}
\item{cdmDatabaseSchema}{The schema of the CDM instance where the DDL will be run. For example, this would be "ohdsi.dbo" when testing on sql server. \item{cdmDatabaseSchema}{The schema of the CDM instance where the DDL will be run. For example, this would be "ohdsi.dbo" when testing on sql server.
Defaults to "@cdmDatabaseSchema"} Defaults to "@cdmDatabaseSchema"}

View File

@ -0,0 +1,30 @@
test_that("buildRelease() output matches current ddl folder", {
tempfolder <- tempdir(check = TRUE)
generatedBaseFolder <- file.path(tempdir(check = TRUE), "ddl")
currentBaseFolder <- system.file("ddl", package = "CommonDataModel", mustWork = TRUE)
# build all of the releases in a temp folder
buildRelease(outputfolder = generatedBaseFolder)
# compare to the files in the current ddl folder of the package
generatedDirectories <- list.dirs(generatedBaseFolder, full.names = F)
currentDirectories <- list.dirs(currentBaseFolder, full.names = F)
expect_gt(length(currentDirectories), 1)
expect_setequal(generatedDirectories, currentDirectories)
# compare filenames
generatedFilenames <- list.files(generatedBaseFolder, recursive = TRUE)
currentFilenames <- list.files(generatedBaseFolder, recursive = TRUE)
expect_gt(length(currentFilenames), 1)
expect_setequal(generatedFilenames, currentFilenames)
# compare file contents using md5 hash
generatedChecksums <- tools::md5sum(file.path(generatedBaseFolder, generatedFilenames))
currentChecksums <- tools::md5sum(file.path(currentBaseFolder, currentFilenames))
names(generatedChecksums) <- NULL
names(currentChecksums) <- NULL
expect_gt(length(currentChecksums), 1)
expect_setequal(generatedChecksums, currentChecksums)
})

View File

@ -1,10 +1,10 @@
test_that("writeDdl works", { test_that("writeDdl works", {
outputpath <- tempdir(TRUE) outputfolder <- tempdir(TRUE)
filename <- writeDdl(targetDialect = "postgresql", cdmVersion = "5.4", outputpath = outputpath) filename <- writeDdl(targetDialect = "postgresql", cdmVersion = "5.4", outputfolder = outputfolder)
expect_true(file.exists(file.path(outputpath, filename))) expect_true(file.exists(file.path(outputfolder, filename)))
sql <- readr::read_file(file.path(outputpath, filename)) sql <- readr::read_file(file.path(outputfolder, filename))
expect_type(sql, "character") expect_type(sql, "character")
expect_gt(nchar(sql), 10) expect_gt(nchar(sql), 10)
@ -13,11 +13,11 @@ test_that("writeDdl works", {
test_that("writePrimaryKeys works", { test_that("writePrimaryKeys works", {
outputpath <- tempdir(TRUE) outputfolder <- tempdir(TRUE)
filename <- writePrimaryKeys(targetDialect = "postgresql", cdmVersion = "5.4", outputpath = outputpath) filename <- writePrimaryKeys(targetDialect = "postgresql", cdmVersion = "5.4", outputfolder = outputfolder)
expect_true(file.exists(file.path(outputpath, filename))) expect_true(file.exists(file.path(outputfolder, filename)))
sql <- readr::read_file(file.path(outputpath, filename)) sql <- readr::read_file(file.path(outputfolder, filename))
expect_type(sql, "character") expect_type(sql, "character")
expect_gt(nchar(sql), 10) expect_gt(nchar(sql), 10)
@ -26,11 +26,11 @@ test_that("writePrimaryKeys works", {
test_that("writeForeignKeys works", { test_that("writeForeignKeys works", {
outputpath <- tempdir(TRUE) outputfolder <- tempdir(TRUE)
filename <- writeForeignKeys(targetDialect = "postgresql", cdmVersion = "5.4", outputpath = outputpath) filename <- writeForeignKeys(targetDialect = "postgresql", cdmVersion = "5.4", outputfolder = outputfolder)
expect_true(file.exists(file.path(outputpath, filename))) expect_true(file.exists(file.path(outputfolder, filename)))
sql <- readr::read_file(file.path(outputpath, filename)) sql <- readr::read_file(file.path(outputfolder, filename))
expect_type(sql, "character") expect_type(sql, "character")
expect_gt(nchar(sql), 10) expect_gt(nchar(sql), 10)
@ -39,11 +39,11 @@ test_that("writeForeignKeys works", {
test_that("writeIndex works", { test_that("writeIndex works", {
outputpath <- tempdir(TRUE) outputfolder <- tempdir(TRUE)
filename <- writeIndex(targetDialect = "postgresql", cdmVersion = "5.4", outputpath = outputpath) filename <- writeIndex(targetDialect = "postgresql", cdmVersion = "5.4", outputfolder = outputfolder)
expect_true(file.exists(file.path(outputpath, filename))) expect_true(file.exists(file.path(outputfolder, filename)))
sql <- readr::read_file(file.path(outputpath, filename)) sql <- readr::read_file(file.path(outputfolder, filename))
expect_type(sql, "character") expect_type(sql, "character")
expect_gt(nchar(sql), 10) expect_gt(nchar(sql), 10)