# ---- nm_fun ----
me_ <- nm_fun("TEST-drive_update")
nm_ <- nm_fun("TEST-drive_update", user_run = FALSE)
# ---- clean ----
if (CLEAN) {
drive_trash(c(
nm_("update-fodder"),
nm_("not-unique"),
nm_("does-not-exist")
))
}
# ---- setup ----
if (SETUP) {
drive_upload(system.file("DESCRIPTION"), nm_("update-fodder"))
drive_upload(system.file("DESCRIPTION"), nm_("not-unique"))
drive_upload(system.file("DESCRIPTION"), nm_("not-unique"))
}
# ---- tests ----
test_that("drive_update() errors if local media does not exist", {
expect_snapshot(drive_update(dribble(), "nope123"), error = TRUE)
})
test_that("drive_update() informatively errors if the path does not exist", {
skip_if_no_token()
skip_if_offline()
expect_snapshot(
drive_update(nm_("does-not-exist"), system.file("DESCRIPTION")),
error = TRUE
)
})
test_that("drive_update() informatively errors if the path is not unique", {
skip_if_no_token()
skip_if_offline()
expect_snapshot(
drive_update(nm_("not-unique"), system.file("DESCRIPTION")),
error = TRUE
)
})
test_that("no op if no media, no metadata", {
skip_if_no_token()
skip_if_offline()
local_drive_loud_and_wide()
expect_snapshot(
out <- drive_update(nm_("update-fodder")),
)
expect_dribble(out)
})
test_that("drive_update() can update metadata only", {
skip_if_no_token()
skip_if_offline()
defer_drive_rm(me_("update-me"))
updatee <- drive_cp(nm_("update-fodder"), name = me_("update-me"))
out <- drive_update(updatee, starred = TRUE) %>% promote("starred")
expect_true(out$starred)
})
test_that("drive_update() uses multipart request to update media + metadata", {
skip_if_no_token()
skip_if_offline()
defer_drive_rm(c(me_("update-me"), me_("update-me-new")))
updatee <- drive_cp(nm_("update-fodder"), name = me_("update-me"))
tmp <- tempfile()
now <- as.character(Sys.time())
write_utf8(now, tmp)
out <- drive_update(updatee, media = tmp, name = me_("update-me-new"))
expect_identical(out$id, updatee$id)
drive_download(updatee, tmp, overwrite = TRUE)
now_out <- read_utf8(tmp)
expect_identical(now, now_out)
expect_identical(out$name, me_("update-me-new"))
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.