test_that("can access tables", { local_options(lifecycle_verbosity = "quiet") skip_if_not_installed("nycflights13") expect_identical(tbl(dm_nycflights13(), "airlines"), nycflights_subset()$airlines) expect_dm_error( tbl_impl(dm_nycflights13(), "x"), class = "table_not_in_dm" ) }) test_that("'copy_to.dm()' works", { local_options(lifecycle_verbosity = "quiet") expect_dm_error( copy_to(dm_for_filter(), letters[1:5], name = "letters"), "only_data_frames_supported" ) expect_dm_error( copy_to(dm_for_filter(), list(mtcars, iris)), "only_data_frames_supported" ) expect_dm_error( copy_to(dm_for_filter(), mtcars, overwrite = TRUE), "no_overwrite" ) skip_if_src_not("df", "mssql") # `tibble()` call necessary, #322 car_table <- test_src_frame(!!!mtcars) expect_equivalent_dm( suppress_mssql_message(copy_to(dm_for_filter(), mtcars, "car_table")), dm(dm_for_filter(), car_table) ) # FIXME: Why do we do name repair in copy_to()? expect_equivalent_dm( suppress_mssql_message(expect_name_repair_message( copy_to(dm_for_filter(), mtcars, "") )), dm(dm_for_filter(), ...7 = car_table) ) }) test_that("'copy_to.dm()' works (2)", { skip_if_ide() local_options(lifecycle_verbosity = "quiet") expect_dm_error( copy_to(dm(), mtcars, c("car_table", "another_table")), "one_name_for_copy_to" ) # rename old and new tables if `repair = unique` expect_name_repair_message( expect_equivalent_dm( copy_to(dm(mtcars), mtcars), dm(mtcars...1 = mtcars, mtcars...2 = tibble(mtcars)) ) ) expect_equivalent_dm( expect_silent( copy_to(dm(mtcars), mtcars, quiet = TRUE) ), dm(mtcars...1 = mtcars, mtcars...2 = tibble(mtcars)) ) # throw error if duplicate table names and `repair = check_unique` expect_dm_error( dm(mtcars) %>% copy_to(mtcars, repair = "check_unique"), "need_unique_names" ) skip_if_not_installed("dbplyr") # copying `tibble` from chosen src to sqlite() `dm` expect_equivalent_dm( copy_to(dm_for_filter_duckdb(), data_card_1(), "test_table"), dm(dm_for_filter_duckdb(), test_table = data_card_1_duckdb()) ) # copying sqlite() `tibble` to `dm` on src of choice expect_equivalent_dm( suppress_mssql_message(copy_to(dm_for_filter(), data_card_1_duckdb(), "test_table_1")), dm(dm_for_filter(), test_table_1 = data_card_1()) ) })