Nothing
library(testthat)
test_that("Write JSON results", {
outputFolder <- tempfile("dqd_")
on.exit(unlink(outputFolder, recursive = TRUE))
withCallingHandlers(
results <- executeDqChecks(
connectionDetails = connectionDetailsEunomia,
cdmDatabaseSchema = cdmDatabaseSchemaEunomia,
resultsDatabaseSchema = resultsDatabaseSchemaEunomia,
cdmSourceName = "Eunomia",
checkNames = "measurePersonCompleteness",
outputFolder = outputFolder,
writeToTable = FALSE
),
warning = function(w) {
if (grepl("^Missing check names", w$message)) {
invokeRestart("muffleWarning")
}
}
)
jsonPath <- list.files(outputFolder, ".json", full.names = TRUE)
csvPath <- file.path(outputFolder, "results.csv")
writeJsonResultsToCsv(
jsonPath = jsonPath,
csvPath = csvPath
)
expect_true(file.exists(csvPath))
# Test default behavior (3 separate tables with deprecation warning)
expect_warning(
DataQualityDashboard::writeJsonResultsToTable(
connectionDetails = connectionDetailsEunomia,
resultsDatabaseSchema = resultsDatabaseSchemaEunomia,
jsonFilePath = jsonPath,
writeTableName = "dqd_json_results"
),
"Writing to 3 separate tables by check level is deprecated"
)
connection <- DatabaseConnector::connect(connectionDetailsEunomia)
on.exit(DatabaseConnector::disconnect(connection), add = TRUE)
tableNames <- DatabaseConnector::getTableNames(connection = connection, databaseSchema = resultsDatabaseSchemaEunomia)
expect_true("dqd_json_results_table" %in% tolower(tableNames))
DatabaseConnector::renderTranslateExecuteSql(connection, "DROP TABLE @database_schema.dqd_json_results_table;", database_schema = resultsDatabaseSchemaEunomia)
})
test_that("Write JSON results with singleTable parameter", {
outputFolder <- tempfile("dqd_")
on.exit(unlink(outputFolder, recursive = TRUE))
withCallingHandlers(
results <- executeDqChecks(
connectionDetails = connectionDetailsEunomia,
cdmDatabaseSchema = cdmDatabaseSchemaEunomia,
resultsDatabaseSchema = resultsDatabaseSchemaEunomia,
cdmSourceName = "Eunomia",
checkNames = "measurePersonCompleteness",
outputFolder = outputFolder,
writeToTable = FALSE
),
warning = function(w) {
if (grepl("^Missing check names", w$message)) {
invokeRestart("muffleWarning")
}
}
)
jsonPath <- list.files(outputFolder, ".json", full.names = TRUE)
# Test singleTable = TRUE (new behavior)
expect_warning(
DataQualityDashboard::writeJsonResultsToTable(
connectionDetails = connectionDetailsEunomia,
resultsDatabaseSchema = resultsDatabaseSchemaEunomia,
jsonFilePath = jsonPath,
writeTableName = "dqd_single_table",
singleTable = TRUE
),
NA
)
connection <- DatabaseConnector::connect(connectionDetailsEunomia)
on.exit(DatabaseConnector::disconnect(connection), add = TRUE)
tableNames <- DatabaseConnector::getTableNames(connection = connection, databaseSchema = resultsDatabaseSchemaEunomia)
expect_true("dqd_single_table" %in% tolower(tableNames))
DatabaseConnector::renderTranslateExecuteSql(connection, "DROP TABLE @database_schema.dqd_single_table;", database_schema = resultsDatabaseSchemaEunomia)
# Test singleTable = FALSE (old behavior with deprecation warning)
# Since we only have table-level checks, only the table-level table will be created
expect_warning(
DataQualityDashboard::writeJsonResultsToTable(
connectionDetails = connectionDetailsEunomia,
resultsDatabaseSchema = resultsDatabaseSchemaEunomia,
jsonFilePath = jsonPath,
writeTableName = "dqd_separate_tables",
singleTable = FALSE
),
"Writing to 3 separate tables by check level is deprecated"
)
tableNames <- DatabaseConnector::getTableNames(connection = connection, databaseSchema = resultsDatabaseSchemaEunomia)
# Check that table-level table was created (only one that should exist for this test)
expect_true("dqd_separate_tables_table" %in% tolower(tableNames))
# Clean up
DatabaseConnector::renderTranslateExecuteSql(connection, "DROP TABLE @database_schema.dqd_separate_tables_table;", database_schema = resultsDatabaseSchemaEunomia)
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.