Nothing
tar_test("tar_timestamp() for URLs", {
skip_on_cran()
skip_if_not_installed("curl")
skip_if_offline()
url <- "https://github.com/ropensci/targets"
skip_if(
!url_exists(
url,
seconds_interval = 1,
seconds_timeout = 10,
max_tries = Inf,
verbose = TRUE
)
)
tar_script({
list(
tar_target(
abc,
rep("https://github.com/ropensci/targets", 2),
format = "url"
)
)
})
expect_equal(as.numeric(tar_timestamp(abc)), as.numeric(file_time_reference))
tar_make(callr_function = NULL)
# correctly parsed posix object
out <- tar_timestamp(abc)
expect_equal(length(out), 1L)
expect_true(inherits(out, "POSIXct"))
expect_false(anyNA(out))
})
tar_test("dynamic urls work", {
skip_cran()
skip_if_offline()
url <- "https://httpbin.org/etag/test"
skip_if(
!url_exists(
url,
seconds_interval = 1,
seconds_timeout = 10,
max_tries = Inf,
verbose = TRUE
)
)
tar_script({
list(
tar_target(
abc,
rep("https://httpbin.org/etag/test", 2),
format = "url",
resources = tar_resources(
network = tar_resources_network(
seconds_interval = 0.5,
seconds_timeout = 20,
max_tries = 100
)
)
)
)
})
tar_make(callr_function = NULL)
exp <- tibble::tibble(
name = "abc",
type = "stem",
parent = "abc",
branches = 0L,
progress = "built"
)
expect_equal(tar_progress(fields = NULL), exp)
tar_make(callr_function = NULL)
expect_equal(tar_progress()$progress, "skipped")
meta <- tar_meta(abc)
expect_equal(nchar(meta$data), 16)
out <- meta$path[[1]]
exp <- rep(url, 2)
expect_equal(out, exp)
expect_equal(tar_read(abc), exp)
expect_false(file.exists(file.path("_targets", "objects", "abc")))
expect_true(inherits(tar_timestamp(abc), "POSIXct"))
expect_gt(tar_timestamp(abc), tar_timestamp(nope))
})
tar_test("dynamic urls have non-NULL default resources", {
skip_cran()
skip_if_offline()
url <- "https://httpbin.org/etag/test"
skip_if(
!url_exists(
url,
seconds_interval = 1,
seconds_timeout = 10,
max_tries = Inf,
verbose = TRUE
)
)
tar_script({
list(
tar_target(
abc,
rep("https://httpbin.org/etag/test", 2),
format = "url",
)
)
})
tar_make(callr_function = NULL)
exp <- tibble::tibble(
name = "abc",
type = "stem",
parent = "abc",
branches = 0L,
progress = "built"
)
expect_equal(tar_progress(fields = NULL), exp)
tar_make(callr_function = NULL)
expect_equal(tar_progress()$progress, "skipped")
meta <- tar_meta(abc)
expect_equal(nchar(meta$data), 16)
out <- meta$path[[1]]
exp <- rep(url, 2)
expect_equal(out, exp)
expect_equal(tar_read(abc), exp)
expect_false(file.exists(file.path("_targets", "objects", "abc")))
expect_true(inherits(tar_timestamp(abc), "POSIXct"))
expect_gt(tar_timestamp(abc), tar_timestamp(nope))
})
tar_test("dynamic urls in dynamic branches work", {
skip_cran()
skip_if_offline()
url <- "https://httpbin.org/etag/test"
skip_if(
!url_exists(
url,
seconds_interval = 0.1,
seconds_timeout = 10,
max_tries = Inf,
verbose = TRUE
)
)
tar_script({
list(
tar_target(x, 1),
tar_target(
abc,
"https://httpbin.org/etag/test",
format = "url",
pattern = map(x),
resources = tar_resources(
network = tar_resources_network(
seconds_interval = 0.5,
seconds_timeout = 20
)
)
)
)
})
tar_make(callr_function = NULL)
branch <- tar_branch_names(abc, 1)
expect_equal(tar_progress(fields = NULL)$progress, rep("built", 3))
tar_make(callr_function = NULL)
expect_equal(tar_progress(fields = NULL)$progress, rep("skipped", 3))
meta <- tar_meta()
meta <- meta[meta$name == branch, ]
expect_equal(nchar(meta$data), 16)
out <- meta$path[[1]]
expect_equal(out, url)
expect_equal(tar_read_raw(branch), url)
expect_false(file.exists(file.path("_targets", "objects", "abc")))
expect_false(file.exists(file.path("_targets", "objects", branch)))
expect_true(inherits(tar_timestamp_raw(branch), "POSIXct"))
expect_gt(tar_timestamp_raw(branch), tar_timestamp(nope))
})
tar_test("dynamic urls work from a custom data store", {
skip_cran()
skip_if_offline()
url <- "https://httpbin.org/etag/test"
skip_if(
!url_exists(
url,
seconds_interval = 0.1,
seconds_timeout = 10,
max_tries = Inf,
verbose = TRUE
)
)
tar_script({
list(
tar_target(
abc,
rep("https://httpbin.org/etag/test", 2),
format = "url",
resources = tar_resources(
network = tar_resources_network(
seconds_interval = 0.5,
seconds_timeout = 20
)
)
)
)
})
path <- tempfile()
writeLines(paste("main:\n store:", path), "_targets.yaml")
tar_make(callr_function = NULL)
expect_true(dir.exists(path))
expect_false(file.exists(path_store_default()))
exp <- tibble::tibble(
name = "abc",
type = "stem",
parent = "abc",
branches = 0L,
progress = "built"
)
expect_equal(tar_progress(fields = NULL), exp)
tar_make(callr_function = NULL)
expect_equal(tar_progress()$progress, "skipped")
meta <- tar_meta(abc)
expect_equal(nchar(meta$data), 16)
out <- meta$path[[1]]
exp <- rep(url, 2)
expect_equal(out, exp)
expect_equal(tar_read(abc), exp)
expect_false(file.exists(file.path(path, "objects", "abc")))
expect_false(file.exists(file.path(path_store_default(), "objects", "abc")))
expect_true(dir.exists(path))
expect_false(file.exists(path_store_default()))
# Move the data store and verify that the targets are still up to date.
unlink("_targets.yaml")
file.rename(path, path_store_default())
expect_false(dir.exists(path))
expect_true(file.exists(path_store_default()))
expect_equal(tar_outdated(callr_function = NULL), character(0))
tar_make(callr_function = NULL)
expect_equal(unique(tar_progress()$progress), "skipped")
})
tar_test("tar_condition_run error on 404 URL", {
skip_cran()
skip_if_offline()
tar_script(
tar_target(
abc,
"https://httpbin.org/status/404",
format = "url",
resources = tar_resources(
url = tar_resources_url(
seconds_interval = 0.5,
seconds_timeout = 10,
max_tries = 2,
verbose = TRUE
)
)
)
)
expect_error(tar_make(callr_function = NULL), class = "tar_condition_run")
})
tar_test("tar_condition_run error on 502 URL", {
skip_cran()
skip_if_offline()
tar_script(
tar_target(
abc,
"https://httpbin.org/status/502",
format = "url",
resources = tar_resources(
url = tar_resources_url(
seconds_interval = 0.5,
seconds_timeout = 10,
max_tries = 2,
verbose = TRUE
)
)
)
)
expect_error(tar_make(callr_function = NULL), class = "tar_condition_run")
})
tar_test("custom handle without error (unstructured resources)", {
skip_cran()
skip_if_offline()
url <- "https://httpbin.org/etag/test"
skip_if(
!url_exists(
url,
seconds_interval = 0.1,
seconds_timeout = 10,
max_tries = Inf,
verbose = TRUE
)
)
tar_script({
list(
tar_target(
abc,
rep("https://httpbin.org/etag/test", 2),
format = "url",
resources = list(handle = curl::new_handle())
)
)
})
expect_warning(
tar_target(
abc,
rep("https://httpbin.org/etag/test", 2),
format = "url",
resources = list(handle = curl::new_handle())
),
class = "tar_condition_deprecate"
)
suppressWarnings(tar_make(callr_function = NULL))
expect_equal(tar_read(abc), rep("https://httpbin.org/etag/test", 2))
expect_false(file.exists(file.path("_targets", "objects", "abc")))
})
tar_test("dynamic urls must return characters", {
skip_cran()
skip_if_offline()
x <- target_init(
name = "abc",
expr = quote(list(list("illegal"))),
format = "url",
resources = tar_resources(
network = tar_resources_network(
seconds_interval = 0.5,
seconds_timeout = 0
)
)
)
pipeline <- pipeline_init(list(x))
local <- local_init(pipeline = pipeline)
expect_error(local$run(), class = "tar_condition_run")
})
tar_test("url target gets custom curl handle (structured resources)", {
skip_cran()
x <- tar_target_raw(
name = "abc",
command = quote(list(list("illegal"))),
format = "url",
resources = tar_resources(
url = tar_resources_url(handle = curl::new_handle())
)
)
handle <- x$store$resources$url$handle
expect_true(inherits(handle, "curl_handle"))
})
tar_test("url target gets custom curl handle (unstructured resources)", {
skip_cran()
expect_warning(
x <- tar_target_raw(
name = "abc",
command = quote(list(list("illegal"))),
format = "url",
resources = list(handle = curl::new_handle())
),
class = "tar_condition_deprecate"
)
handle <- x$store$resources$handle
expect_true(inherits(handle, "curl_handle"))
})
tar_test("bad curl handle throws an error (structrued resources)", {
skip_cran()
skip_if_offline()
url <- "https://httpbin.org/etag/test"
skip_if(
!url_exists(
url,
seconds_interval = 0.1,
seconds_timeout = 10,
max_tries = Inf,
verbose = TRUE
)
)
tar_script({
list(
tar_target(
abc,
rep("https://httpbin.org/etag/test", 2),
format = "url",
resources = tar_resources(
url = tar_resources_url(handle = "invalid"),
network = tar_resources_network(
seconds_interval = 0.5,
seconds_timeout = 0
)
)
)
)
})
expect_error(
tar_make(callr_function = NULL),
class = "tar_condition_run"
)
})
tar_test("bad curl handle throws an error (unstructrued resources)", {
skip_cran()
skip_if_offline()
url <- "https://httpbin.org/etag/test"
skip_if(
!url_exists(
url,
seconds_interval = 0.1,
seconds_timeout = 10,
max_tries = Inf,
verbose = TRUE
)
)
tar_script({
list(
tar_target(
abc,
rep("https://httpbin.org/etag/test", 2),
format = "url",
resources = list(handle = "invalid")
)
)
})
expect_warning(
tar_target(
abc,
rep("https://httpbin.org/etag/test", 2),
format = "url",
resources = list(handle = "invalid")
),
class = "tar_condition_deprecate"
)
suppressWarnings(
expect_error(
tar_make(callr_function = NULL),
class = "tar_condition_run"
)
)
})
tar_test("inherits from tar_external", {
store <- tar_target(x, "x_value", format = "url")$store
expect_true(inherits(store, "tar_external"))
})
tar_test("store_row_path()", {
store <- tar_target(x, "x_value", format = "url")$store
store$file$path <- "path"
expect_equal(store_row_path(store), "path")
})
tar_test("store_path_from_record()", {
store <- tar_target(x, "x_value", format = "url")$store
record <- record_init(path = "path", format = "url")
expect_equal(
store_path_from_record(store, record, path_store_default()),
"path"
)
})
tar_test("url packages", {
x <- tar_target(x, 1, format = "url")
out <- store_get_packages(x$store)
expect_equal(out, "curl")
})
tar_test("validate url format", {
tar_script(list(tar_target(x, "x_value", format = "url")))
expect_silent(tar_validate(callr_function = NULL))
})
tar_test("url and NULL", {
skip_cran()
tar_script(tar_target(x, NULL, format = "url", memory = "persistent"))
tar_make(callr_function = NULL)
expect_equal(tar_read(x), character(0))
})
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.