drake_context("checks")
test_with_dir("top-level checks", {
skip_on_cran() # CRAN gets essential tests only (check time limits).
config <- list()
expect_error(config_checks(config))
expect_error(plan_checks(data.frame(x = 1, y = 2)), "columns")
})
test_with_dir("config and make without safety checks", {
skip_on_cran() # CRAN gets essential tests only (check time limits).
x <- drake_plan(
file = readRDS(file_in("my_file.rds"))
)
tmp <- drake_config(x, verbose = 0L)
expect_silent(
tmp <- drake_config(x, skip_safety_checks = TRUE, verbose = 0L))
expect_silent(config_checks(config = tmp))
})
test_with_dir("config_checks() via make()", {
skip_on_cran() # CRAN gets essential tests only (check time limits).
config <- dbug()
y <- data.frame(x = 1, y = 2)
suppressWarnings(
expect_error(
make(y, envir = config$envir, session_info = FALSE, verbose = 0L)))
y <- data.frame(target = character(0), command = character(0))
suppressWarnings(
expect_error(
make(y, envir = config$envir,
session_info = FALSE, verbose = 0L)))
suppressWarnings(expect_error(
make(
config$plan,
targets = character(0),
envir = config$envir,
session_info = FALSE,
verbose = 0L
),
regexp = "valid targets"
))
})
test_with_dir(".onLoad() warns correctly and .onAttach() works", {
skip_on_cran() # CRAN gets essential tests only (check time limits).
skip_if_not_installed("tibble")
f <- ".RData"
expect_false(file.exists(f))
expect_silent(drake:::.onLoad())
save.image()
expect_true(file.exists(f))
expect_warning(drake:::.onLoad())
unlink(f, force = TRUE)
set.seed(0)
expect_silent(suppressPackageStartupMessages(drake:::.onAttach()))
})
test_with_dir("warnings and messages are caught", {
skip_on_cran() # CRAN gets essential tests only (check time limits).
skip_if_not_installed("tibble")
expect_equal(nrow(drake_progress()), 0)
f <- function(x) {
warning("my first warn")
message("my first mess")
warning("my second warn")
message("my second mess")
123
}
bad_plan <- drake_plan(x = f(), y = x)
expect_warning(make(bad_plan, verbose = 1L, session_info = FALSE))
x <- diagnose(x)
expect_true(grepl("my first warn", x$warnings[1], fixed = TRUE))
expect_true(grepl("my second warn", x$warnings[2], fixed = TRUE))
expect_true(grepl("my first mess", x$messages[1], fixed = TRUE))
expect_true(grepl("my second mess", x$messages[2], fixed = TRUE))
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.