Nothing
testthat::skip_if_not_installed("DBI")
testthat::skip_if_not_installed("RSQLite")
test_that("schema_from_db + generate_fake_from_schema work without reading rows", {
testthat::skip_if_not_installed("DBI")
testthat::skip_if_not_installed("RSQLite")
con <- DBI::dbConnect(RSQLite::SQLite(), ":memory:")
on.exit(DBI::dbDisconnect(con), add = TRUE)
DBI::dbExecute(con, "
CREATE TABLE employees (
id INTEGER,
email TEXT,
phone TEXT,
is_active BOOLEAN,
hired_at TIMESTAMP,
salary NUMERIC,
dept TEXT
)
")
sch <- schema_from_db(con, "employees")
expect_s3_class(sch, "data.frame")
expect_true(all(c("name","type","nullable","sensitive") %in% names(sch)))
set.seed(123)
fake <- generate_fake_from_schema(sch, n = 15, seed = 123)
expect_equal(nrow(fake), 15L)
expect_true(all(c("id","email","phone","is_active","hired_at","salary","dept") %in% names(fake)))
expect_type(fake$id, "integer")
expect_type(fake$email, "character")
expect_type(fake$phone, "character")
expect_type(fake$is_active, "logical")
expect_s3_class(fake$hired_at, "POSIXct")
expect_type(fake$salary, "double")
expect_type(fake$dept, "character")
})
test_that("llm_bundle_from_db writes files and schema with sensitive flags", {
testthat::skip_if_not_installed("DBI")
testthat::skip_if_not_installed("RSQLite")
con <- DBI::dbConnect(RSQLite::SQLite(), ":memory:")
on.exit(DBI::dbDisconnect(con), add = TRUE)
DBI::dbExecute(con, "
CREATE TABLE customers (
id INTEGER, email TEXT, phone TEXT, joined DATE, amount NUMERIC
)
")
b <- llm_bundle_from_db(con, "customers",
n = 10, level = "high", seed = 1,
formats = "rds", path = tempdir(),
filename = "cust", write_prompt = TRUE,
sensitive_strategy = "fake")
expect_true(file.exists(b$schema_path))
expect_true(file.exists(b$data_paths$rds))
expect_true(file.exists(b$readme_path))
sch <- jsonlite::fromJSON(b$schema_path)
expect_equal(sch$source, "db_schema_only")
expect_equal(sch$sensitive_strategy, "fake")
# At least one column marked sensitive; columns may deserialize as df or list
has_sensitive <- if (is.data.frame(sch$columns)) {
any(sch$columns$sensitive)
} else {
any(vapply(sch$columns, function(c) isTRUE(c$sensitive), logical(1)))
}
expect_true(has_sensitive)
})
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.