Nothing
drake_context("lock")
test_with_dir("lock_environment()", {
skip_on_cran()
skip_if_not_installed("tibble")
scenario <- get_testing_scenario()
e <- eval(parse(text = scenario$envir))
jobs <- scenario$jobs
parallelism <- scenario$parallelism
caching <- scenario$caching
plan <- drake_plan(
x = try(
assign("a", 1L, envir = parent.env(drake_envir("targets"))),
silent = TRUE
)
)
make(
plan,
envir = e,
jobs = jobs,
parallelism = parallelism,
caching = caching,
lock_envir = TRUE,
verbose = 1L,
session_info = FALSE
)
expect_true(inherits(readd(x), "try-error"))
e$a <- 123
e$plan$four <- "five"
plan <- drake_plan(
x = assign("a", 1, envir = drake_envir("targets"))
)
make(
plan,
envir = e,
jobs = jobs,
parallelism = parallelism,
caching = caching,
lock_envir = FALSE,
verbose = 0L,
session_info = FALSE
)
expect_true("x" %in% cached())
expect_equal(readd(x), 1L)
})
test_with_dir("Try to modify a locked environment", {
skip_on_cran()
e <- new.env()
lock_environment(e)
plan <- drake_plan(x = {
e$a <- 1
2
})
expect_error(
make(plan, session_info = FALSE, cache = storr::storr_environment()),
regexp = "Self-invalidation"
)
})
test_with_dir("unlock_environment()", {
skip_on_cran()
expect_error(
unlock_environment(NULL),
regexp = "use of NULL environment is defunct"
)
expect_error(
unlock_environment("x"),
regexp = "not an environment"
)
e <- new.env(parent = emptyenv())
e$y <- 1
expect_false(environmentIsLocked(e))
assign(x = ".x", value = "x", envir = e)
expect_equal(get(x = ".x", envir = e), "x")
lock_environment(e)
msg1 <- "cannot change value of locked binding"
msg2 <- "cannot add bindings to a locked environment"
expect_true(environmentIsLocked(e))
assign(x = ".x", value = "y", envir = e)
expect_equal(get(x = ".x", envir = e), "y")
expect_error(assign(x = "y", value = "y", envir = e), regexp = msg1)
expect_error(assign(x = "a", value = "x", envir = e), regexp = msg2)
expect_error(assign(x = "b", value = "y", envir = e), regexp = msg2)
unlock_environment(e)
assign(x = ".x", value = "1", envir = e)
assign(x = "y", value = "2", envir = e)
assign(x = "a", value = "x", envir = e)
expect_equal(get(x = ".x", envir = e), "1")
expect_equal(get(x = "y", envir = e), "2")
expect_equal(get(x = "a", envir = e), "x")
expect_false(environmentIsLocked(e))
unlock_environment(e)
assign(x = "b", value = "y", envir = e)
expect_equal(get(x = "b", envir = e), "y")
expect_false(environmentIsLocked(e))
})
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.