Nothing
test_that("extract_safe_data.opal returns a valid RO-Crate with datasets", {
# open connection to OBiBa's Opal demo server
opal_con <- opal_demo_con()
# terminate connection when done with tests
withr::defer(opalr::opal.logout(opal_con))
# create local mock binding, to avoid long run times
local_mocked_bindings(
opal.datasources = function(...) {
tibble::tibble(name = attr(opal_con, "PROJECT"))
},
.package = "opalr"
)
# ignore warning of project not having tables associated
suppressWarnings(
roc <- extract_safe_data(opal_con)
)
# validate rocrate structure
expect_no_error(rocrateR::is_rocrate(roc))
# should contain Dataset entities (if demo server has datasources)
datasets <- rocrateR::get_entity(roc, type = "Dataset")
expect_type(datasets, "list")
expect_true(length(datasets) >= 1)
# close connection to OBiBa's Opal demo server
opalr::opal.logout(opal_con)
})
test_that("extract_safe_data.opal updates an existing RO-Crate", {
# open connection to OBiBa's Opal demo server
opal_con <- opal_demo_con()
# terminate connection when done with tests
withr::defer(opalr::opal.logout(opal_con))
base_roc <- rocrateR::rocrate_5s()
# create local mock binding, to avoid long run times
local_mocked_bindings(
opal.datasources = function(...) {
tibble::tibble(name = attr(opal_con, "PROJECT"))
},
.package = "opalr"
)
# ignore warning of project not having tables associated
suppressWarnings(
roc <- extract_safe_data(opal_con, rocrate = base_roc)
)
# validate rocrate structure
expect_no_error(rocrateR::is_rocrate(roc))
datasets <- rocrateR::get_entity(roc, type = "Dataset")
expect_true(length(datasets) >= 1)
# close connection to OBiBa's Opal demo server
opalr::opal.logout(opal_con)
})
test_that("extract_safe_data.rocrate copies Dataset entities", {
# create source crate with Dataset entities
src <- rocrateR::rocrate_5s()
src <- rocrateR::add_entity(
src,
entity = rocrateR::entity(
id = "#asset:1",
type = "Dataset",
name = "Dataset 1"
)
)
src <- rocrateR::add_entity(
src,
entity = rocrateR::entity(
id = "#asset:2",
type = "Dataset",
name = "Dataset 2"
)
)
# ignore warning of project not having tables associated
suppressWarnings(
new_roc <- extract_safe_data(src)
)
# validate rocrate structure
expect_no_error(rocrateR::is_rocrate(new_roc))
ents <- rocrateR::get_entity(new_roc, type = "Dataset")
expect_equal(length(ents), 3) # 2 + 1 root entity
})
test_that("extract_safe_data.rocrate filters Dataset entities by id", {
# create source crate with Dataset entities
src <- rocrateR::rocrate_5s()
src <- rocrateR::add_entity(
src,
entity = rocrateR::entity(
id = "#asset:keep_me",
type = "Dataset",
name = "Keep"
)
)
src <- rocrateR::add_entity(
src,
entity = rocrateR::entity(
id = "#asset:drop_me",
type = "Dataset",
name = "Drop"
)
)
# ignore warning of project not having tables associated
suppressWarnings(
new_roc <- extract_safe_data(src, id = "#asset:keep_me")
)
ents <- rocrateR::get_entity(new_roc, type = "Dataset")
ids <- vapply(ents, function(e) e[["@id"]], character(1))
expect_equal(ids, c("./", "#asset:keep_me"))
})
test_that("extract_safe_data.rocrate errors when no Dataset entities exist", {
# create source crate with Dataset entities
src <- rocrateR::rocrate_5s()
expect_error(
extract_safe_data(src),
"No matching entities were found"
)
})
test_that("flatten_safe_data.default returns empty tibble", {
res <- flatten_safe_data(list())
expect_s3_class(res, "data.frame")
expect_equal(nrow(res), 0)
})
test_that("flatten_safe_data.rocrate extracts id and name correctly", {
roc <- rocrateR::rocrate_5s()
roc <- rocrateR::add_entity(
roc,
entity = rocrateR::entity(
id = "#asset:1",
type = "Dataset",
name = "Dataset One"
)
)
roc <- rocrateR::add_entity(
roc,
entity = rocrateR::entity(
id = "#asset:2",
type = "Dataset",
name = "Dataset Two"
)
)
res <- flatten_safe_data(roc)
expect_s3_class(res, "data.frame")
expect_true(all(c("asset_id", "asset") %in% names(res)))
expect_equal(nrow(res), 2)
})
test_that("flatten_safe_data.rocrate filters by id argument", {
roc <- rocrateR::rocrate_5s()
roc <- rocrateR::add_entity(
roc,
entity = rocrateR::entity(
id = "#asset:A",
type = "Dataset",
name = "A"
)
)
roc <- rocrateR::add_entity(
roc,
entity = rocrateR::entity(
id = "#asset:B",
type = "Dataset",
name = "B"
)
)
res <- flatten_safe_data(roc, id = "#asset:A")
expect_equal(nrow(res), 1)
expect_equal(res$asset_id, "#asset:A")
})
test_that("flatten_safe_data.rocrate returns empty tibble on error", {
bad_obj <- list() # not a rocrate
res <- flatten_safe_data.rocrate(bad_obj)
expect_s3_class(res, "data.frame")
expect_equal(nrow(res), 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.