tar_test("tar_manifest() with default settings", { tar_script({ tar_option_set() list( tar_target(y1, 1 + 1), tar_target(y2, 1 + 1), tar_target(z, y1 + y2), tar_target(m, z, pattern = map(z)), tar_target(c, z, pattern = cross(z), description = "over z") ) }) out <- tar_manifest(callr_function = NULL) expect_equal(colnames(out), c("name", "command", "pattern", "description")) expect_equal(nrow(out), 5L) expect_equal(out$description[out$name == "c"], "over z") }) tar_test("tar_manifest() drop_missing FALSE", { skip_cran() tar_script({ tar_option_set() list( tar_target(y1, 1 + 1), tar_target(y2, 1 + 1), tar_target(z, y1 + y2) ) }) out <- tar_manifest( fields = any_of(c("name", "command", "pattern")), drop_missing = FALSE ) expect_equal(colnames(out), c("name", "command", "pattern")) }) tar_test("tar_manifest() drop_missing TRUE", { skip_cran() tar_script({ tar_option_set() list( tar_target(y1, 1 + 1), tar_target(y2, 1 + 1), tar_target(z, y1 + y2) ) }) out <- tar_manifest( fields = any_of(c("name", "command", "pattern")), callr_function = NULL, drop_missing = TRUE ) expect_equal(colnames(out), c("name", "command")) }) tar_test("tar_manifest() tidyselect on names", { skip_cran() tar_script({ tar_option_set() list( tar_target(y1, 1 + 1), tar_target(y2, 1 + 1), tar_target(z, y1 + y2), tar_target(m, z, pattern = map(z)), tar_target(c, z, pattern = cross(z)) ) }) out <- tar_manifest(names = starts_with("y"), callr_function = NULL) expect_equal(nrow(out), 2L) }) tar_test("tar_manifest() shows patterns correctly", { skip_cran() tar_script({ tar_option_set() list( tar_target(y1, 1 + 1), tar_target(y2, 1 + 1), tar_target(z, y1 + y2), tar_target(m, z, pattern = map(z)), tar_target(c, z, pattern = cross(z)) ) }) out <- tar_manifest( names = c, fields = "pattern", callr_function = NULL ) expect_equal(out$pattern, "cross(z)") out <- tar_manifest( names = m, fields = "pattern", callr_function = NULL ) expect_equal(out$pattern, "map(z)") }) tar_test("tar_manifest() shows cues correctly", { skip_cran() tar_script({ tar_option_set() list( tar_target(y1, 1 + 1), tar_target(y2, 1 + 1), tar_target(z, y1 + y2), tar_target(m, z, pattern = map(z)), tar_target(c, z, pattern = cross(z)) ) }) out <- tar_manifest(fields = starts_with("cue"), callr_function = NULL) cols <- c( "name", "cue_mode", "cue_command", "cue_depend", "cue_file", "cue_format", "cue_repository", "cue_iteration" ) expect_equal(colnames(out), cols) expect_true(is.character(out$cue_mode)) expect_true(is.logical(out$cue_command)) expect_true(is.logical(out$cue_depend)) expect_true(is.logical(out$cue_file)) expect_true(is.logical(out$cue_format)) expect_true(is.logical(out$cue_iteration)) }) tar_test("tar_manifest() shows all fields if the fields arg is NULL", { skip_cran() tar_script({ tar_option_set() list( tar_target(y1, 1 + 1), tar_target(y2, 1 + 1), tar_target(z, y1 + y2), tar_target(m, z, pattern = map(z)), tar_target(c, z, pattern = cross(z)) ) }) out <- tar_manifest( fields = NULL, callr_function = NULL, drop_missing = FALSE ) expect_equal(dim(out), c(5L, 23L)) }) tar_test("tar_manifest() uses topo sort", { skip_cran() tar_script({ list( tar_target(d, "d"), tar_target(c, d), tar_target(b, c), tar_target(a, b) ) }) out <- tar_manifest(fields = command, callr_function = NULL) exp <- tibble::tibble( name = c("d", "c", "b", "a"), command = c("\"d\"", "d", "c", "b") ) expect_equal(out, exp) }) tar_test("custom script and store args", { skip_cran() expect_equal(tar_config_get("script"), path_script_default()) expect_equal(tar_config_get("store"), path_store_default()) tar_script(tar_target(x, "y"), script = "example/script.R") out <- tar_manifest( script = "example/script.R", callr_function = NULL ) expect_true(is.data.frame(out)) expect_false(file.exists("_targets.yaml")) expect_equal(tar_config_get("script"), path_script_default()) expect_equal(tar_config_get("store"), path_store_default()) expect_false(file.exists(path_script_default())) expect_false(file.exists(path_store_default())) expect_true(file.exists("example/script.R")) expect_false(file.exists("example/store")) tar_config_set(script = "x") expect_equal(tar_config_get("script"), "x") expect_true(file.exists("_targets.yaml")) }) tar_test("custom script and store args with callr function", { skip_cran() expect_equal(tar_config_get("script"), path_script_default()) expect_equal(tar_config_get("store"), path_store_default()) tar_script(tar_target(x, "y"), script = "example/script.R") out <- tar_manifest( script = "example/script.R" ) expect_true(is.data.frame(out)) expect_false(file.exists("_targets.yaml")) expect_equal(tar_config_get("script"), path_script_default()) expect_equal(tar_config_get("store"), path_store_default()) expect_false(file.exists(path_script_default())) expect_false(file.exists(path_store_default())) expect_true(file.exists("example/script.R")) expect_false(file.exists("example/store")) tar_config_set(script = "x") expect_equal(tar_config_get("script"), "x") expect_true(file.exists("_targets.yaml")) })