test_that("hy_*_db returns the correct locations", {
expect_equal(basename(hy_downloaded_db()), "Hydat.sqlite3")
expect_equal(basename(hy_test_db()), "tinyhydat.sqlite3")
# create a temporary file
tmp_file <- tempfile()
file.create(tmp_file)
prev_def <- hy_set_default_db(tmp_file)
expect_equal(hy_default_db(), tmp_file)
hy_set_default_db(prev_def)
unlink(tmp_file)
})
test_that("hy_set_default_db() fails when the input is not valid", {
def_value <- hy_default_db()
expect_error(
hy_set_default_db(character(0)),
"length\\(hydat_path\\) == 1 is not TRUE"
)
expect_error(
hy_set_default_db(factor(hy_test_db())),
"is.character\\(hydat_path\\) is not TRUE"
)
expect_error(
hy_set_default_db("not_a_file_anywhere.nope"),
"file.exists\\(hydat_path\\) is not TRUE"
)
# make sure we didn't change the default value by accident
hy_set_default_db(def_value)
})
test_that("default place to look for Hydat database can be get/set internally", {
# get previous value so we can reset when done the test
prev_val <- tidyhydat:::hy_set_default_db(NULL)
# NULL should set back to original default
expect_equal(tidyhydat:::hy_default_db(), file.path(hy_dir(), "Hydat.sqlite3"))
# set_default_db should return previous value
expect_equal(tidyhydat:::hy_set_default_db(hy_test_db()), file.path(hy_dir(), "Hydat.sqlite3"))
# set back to value when we started
tidyhydat:::hy_set_default_db(prev_val)
})
test_that("hy_src fails when hydat_path is not a file", {
expect_error(
hy_src("not_a_file_anywhere.nope"),
"Run download_hydat\\(\\) to download the database."
)
})
test_that("hy_src returns a dplyr src", {
src <- hy_src(hydat_path = hy_test_db())
expect_s3_class(src, "src_sql")
hy_src_disconnect(src)
})
test_that("hy_src returns its input if hydat_path is already a hy_src", {
src <- hy_src(hydat_path = hy_test_db())
expect_identical(hy_src(hydat_path = src), src)
hy_src_disconnect(src)
})
test_that("hy_src_disconnect disconnects the database", {
src <- hy_src(hydat_path = hy_test_db())
expect_true(DBI::dbIsValid(src$con))
hy_src_disconnect(src)
expect_false(DBI::dbIsValid(src$con))
})
test_that("hy_src_disconnect produces warnings when database is already connected", {
src <- hy_src(hydat_path = hy_test_db())
expect_true(DBI::dbIsValid(src$con))
expect_silent(hy_src_disconnect(src))
expect_warning(hy_src_disconnect(src), "Already disconnected")
})
test_that("hy_src_disconnect errors when called on an unknown object", {
expect_error(
hy_src_disconnect(NULL),
"hy_src_disconnect doesn't know how to deal with object of class"
)
})
test_that("the test database always exists", {
expect_true(file.exists(hy_test_db()))
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.