drake_context("config utils")
test_with_dir("config_util_body() (#1118)", {
body <- config_util_body(outdated_impl)
vars <- all.vars(body)
expect_true("outdated_impl" %in% vars)
expect_false("impl_fun" %in% vars)
})
test_with_dir("drake_config_parent() (#1118)", {
fun <- drake_config_parent(n = 17L)
expect_equal(formals(fun)$envir$n, 17L)
})
test_with_dir("outdated(plan) (#1118)", {
skip_on_cran()
a <- "x"
plan <- drake_plan(x = a, y = a)
make(plan)
# legacy fun(config) syntax
config <- drake_config(plan)
# with informal config arg
expect_warning(tmp <- outdated(config), "deprecated")
# with formal config arg
expect_warning(tmp <- outdated(config = config), "deprecated")
expect_equal(tmp, character(0))
a <- "y"
# informal secondary arg
expect_warning(tmp <- outdated(config, FALSE), "deprecated")
expect_equal(tmp, character(0))
# formal secondary arg
expect_warning(tmp <- outdated(config, make_imports = FALSE), "deprecated")
expect_equal(tmp, character(0))
expect_warning(tmp <- outdated(config), "deprecated")
expect_equal(sort(tmp), sort(plan$target))
make(plan)
# with plan
tmp <- outdated(plan)
expect_equal(tmp, character(0))
a <- "z"
# with plan and formal fun() args
tmp <- outdated(plan, make_imports = FALSE)
expect_equal(tmp, character(0))
# with plan and informal make() args
tmp <- outdated(plan, "x")
expect_equal(tmp, "x")
expect_equal(sort(outdated(plan)), sort(plan$target))
make(plan)
tmp <- outdated(plan)
expect_equal(tmp, character(0))
# envir is forced at the proper time
tmp <- outdated(plan, envir = environment())
expect_equal(tmp, character(0))
# envir is used, formally and informally
tmp <- outdated(plan, "x", new.env())
expect_equal(tmp, "x")
tmp <- outdated(plan, "x", envir = new.env())
expect_equal(tmp, "x")
})
test_with_dir("drake_build(plan) (#1118)", {
skip_on_cran()
a <- "x"
plan <- drake_plan(x = a, y = a)
make(plan)
# legacy fun(config) syntax
config <- drake_config(plan)
# with informal config arg
expect_warning(tmp <- drake_build(x, config), "deprecated")
expect_equal(tmp, "x")
expect_warning(tmp <- drake_build(target = x, config), "deprecated")
expect_equal(tmp, "x")
expect_warning(
tmp <- drake_build("x", config, character_only = TRUE),
"deprecated"
)
expect_equal(tmp, "x")
# with formal config arg
expect_warning(tmp <- drake_build(x, config = config), "deprecated")
expect_equal(tmp, "x")
expect_warning(
tmp <- drake_build("x", config = config, character_only = TRUE),
"deprecated"
)
expect_equal(tmp, "x")
a <- "y"
# with plan
tmp <- drake_build(x, plan)
expect_equal(tmp, "y")
tmp <- drake_build("x", plan, character_only = TRUE)
expect_equal(tmp, "y")
})
test_with_dir("recoverable(plan) (#1118)", {
skip_on_cran()
plan <- drake_plan(x = "x", y = x)
make(plan)
clean()
# legacy fun(config) syntax
config <- drake_config(plan)
# with informal config arg
expect_warning(tmp <- recoverable(config), "deprecated")
expect_equal(tmp, "x")
# with formal config arg
expect_warning(tmp <- recoverable(config = config), "deprecated")
expect_equal(tmp, "x")
# informal secondary arg
expect_warning(tmp <- recoverable(config, FALSE), "deprecated")
expect_equal(tmp, "x")
# formal secondary arg
expect_warning(
tmp <- recoverable(config, make_imports = FALSE),
"deprecated"
)
expect_equal(tmp, "x")
expect_warning(tmp <- recoverable(config), "deprecated")
expect_equal(tmp, "x")
# with plan
tmp <- recoverable(plan)
expect_equal(tmp, "x")
# with plan and formal fun() args
tmp <- recoverable(plan, make_imports = FALSE)
expect_equal(tmp, "x")
# with plan and informal make() args
tmp <- recoverable(plan, "x")
expect_equal(tmp, "x")
expect_equal(recoverable(plan), "x")
tmp <- recoverable(plan)
expect_equal(tmp, "x")
# envir is forced at the proper time
tmp <- recoverable(plan, envir = environment())
expect_equal(tmp, "x")
# envir is used, formally and informally
tmp <- recoverable(plan, "x", new.env())
expect_equal(tmp, "x")
tmp <- recoverable(plan, "x", envir = new.env())
expect_equal(tmp, "x")
})
test_with_dir("missed(plan) (#1118)", {
skip_on_cran()
plan <- drake_plan(x = missing::fun(arg), y = mis2::fun2(x))
expect_equal(missed(plan, targets = "x"), "missing::fun")
config <- drake_config(plan, targets = "x")
expect_warning(tmp <- missed(config))
expect_equal(tmp, "missing::fun")
})
test_with_dir("deps_target(plan) (#1118)", {
skip_on_cran()
plan <- drake_plan(x = 1, y = x)
expect_equal(nrow(deps_target(x, plan)), 0L)
expect_equal(deps_target(y, plan)$name, "x")
config <- drake_config(plan, targets = "x")
expect_warning(tmp <- deps_target(x, config))
expect_warning(tmp <- nrow(deps_target(x, config)))
expect_equal(tmp, 0L)
expect_warning(tmp <- deps_target(y, config)$name)
expect_equal(tmp, "x")
})
test_with_dir("deps_profile(plan) (#1118)", {
skip_on_cran()
plan <- drake_plan(x = 1, y = x)
make(plan)
expect_equal(nrow(deps_profile(x, plan)), 5L)
config <- drake_config(plan)
expect_warning(tmp <- deps_profile(x, config))
})
test_with_dir("drake_graph_info(plan) (#1118)", {
skip_on_cran()
skip_if_not_installed("visNetwork")
plan <- drake_plan(x = 1, y = x)
tmp <- drake_graph_info(plan, targets = "x")
expect_equal(nrow(tmp$nodes), 1L)
config <- drake_config(plan)
expect_warning(tmp <- drake_graph_info(config))
expect_equal(nrow(tmp$nodes), 2L)
})
test_with_dir("predict_runtime(plan) etc. (#1118)", {
skip_on_cran()
skip_if_not_installed("lubridate")
plan <- drake_plan(x = 1, y = x)
make(plan)
tmp <- predict_runtime(plan, targets_predict = "x")
expect_equal(length(tmp), 1L)
tmp <- predict_workers(plan, targets_predict = "x")
expect_equal(nrow(tmp), 1L)
config <- drake_config(plan)
expect_warning(tmp <- predict_runtime(config))
expect_equal(length(tmp), 1L)
expect_warning(tmp <- predict_workers(config))
expect_equal(nrow(tmp), 2L)
})
test_with_dir("vis_drake_graph(plan) etc. (#1118)", {
skip_on_cran()
skip_if_not_installed("ggraph")
skip_if_not_installed("networkD3")
skip_if_not_installed("txtplot")
skip_if_not_installed("visNetwork")
plan <- drake_plan(x = 1, y = x)
make(plan)
config <- drake_config(plan)
tmp <- vis_drake_graph(plan, targets = "x")
tmp <- sankey_drake_graph(plan)
tmp <- drake_ggraph(plan)
tmp <- text_drake_graph(plan, targets = "x")
expect_warning(tmp <- vis_drake_graph(config))
expect_warning(tmp <- sankey_drake_graph(config))
expect_warning(tmp <- drake_ggraph(config))
expect_warning(tmp <- text_drake_graph(config))
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.