From bf2886e1d7d52110a1ab1db38700651a92d484e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kirill=20M=C3=BCller?= Date: Wed, 11 Oct 2023 22:08:14 +0200 Subject: [PATCH 1/4] chore: Fix tests when dplyr is missing --- R/backend-dbplyr__duckdb_connection.R | 2 +- man/backend-duckdb.Rd | 2 ++ tests/testthat/test_tbl__duckdb_connection.R | 12 +++++++++++- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/R/backend-dbplyr__duckdb_connection.R b/R/backend-dbplyr__duckdb_connection.R index 4dda1aa96..c27f03f6f 100644 --- a/R/backend-dbplyr__duckdb_connection.R +++ b/R/backend-dbplyr__duckdb_connection.R @@ -7,7 +7,7 @@ #' #' @name backend-duckdb #' @aliases NULL -#' @examples +#' @examplesIf rlang::is_installed("dbplyr") #' library(dplyr, warn.conflicts = FALSE) #' con <- DBI::dbConnect(duckdb(), path = ":memory:") #' diff --git a/man/backend-duckdb.Rd b/man/backend-duckdb.Rd index cdac292c0..3eab99358 100644 --- a/man/backend-duckdb.Rd +++ b/man/backend-duckdb.Rd @@ -18,6 +18,7 @@ possibilities. This mainly follows the backend for PostgreSQL, but contains more mapped functions. } \examples{ +\dontshow{if (rlang::is_installed("dbplyr")) (if (getRversion() >= "3.4") withAutoprint else force)(\{ # examplesIf} library(dplyr, warn.conflicts = FALSE) con <- DBI::dbConnect(duckdb(), path = ":memory:") @@ -29,4 +30,5 @@ dbiris \%>\% head(5) DBI::dbDisconnect(con, shutdown = TRUE) +\dontshow{\}) # examplesIf} } diff --git a/tests/testthat/test_tbl__duckdb_connection.R b/tests/testthat/test_tbl__duckdb_connection.R index f0bb07d82..bc5607e35 100644 --- a/tests/testthat/test_tbl__duckdb_connection.R +++ b/tests/testthat/test_tbl__duckdb_connection.R @@ -2,6 +2,8 @@ skip_on_cran() `%>%` <- dplyr::`%>%` test_that("Parquet files can be registered with dplyr::tbl()", { + skip_if_not_installed("dplyr") + con <- DBI::dbConnect(duckdb()) on.exit(DBI::dbDisconnect(con, shutdown = TRUE)) @@ -24,6 +26,8 @@ test_that("Parquet files can be registered with dplyr::tbl()", { test_that("Object cache can be enabled for parquet files with dplyr::tbl()", { + skip_if_not_installed("dplyr") + con <- DBI::dbConnect(duckdb()) on.exit(DBI::dbDisconnect(con, shutdown = TRUE)) @@ -38,6 +42,8 @@ test_that("Object cache can be enabled for parquet files with dplyr::tbl()", { test_that("CSV files can be registered with dplyr::tbl()", { + skip_if_not_installed("dplyr") + path <- file.path(tempdir(), "duckdbtest.csv") write.csv(iris, file = path) on.exit(unlink(path)) @@ -55,6 +61,8 @@ test_that("CSV files can be registered with dplyr::tbl()", { }) test_that("Other replacement scans or functions can be registered with dplyr::tbl()", { + skip_if_not_installed("dplyr") + con <- DBI::dbConnect(duckdb()) on.exit(DBI::dbDisconnect(con, shutdown = TRUE)) @@ -64,9 +72,11 @@ test_that("Other replacement scans or functions can be registered with dplyr::tb }) test_that("Strings tagged as SQL will be handled correctly with dplyr::tbl()", { + skip_if_not_installed("dplyr") + con <- DBI::dbConnect(duckdb()) on.exit(DBI::dbDisconnect(con, shutdown = TRUE)) - + rs <- dplyr::tbl(con, dplyr::sql("SELECT 1")) expect_true(inherits(rs, "tbl_duckdb_connection")) expect_true(rs %>% dplyr::collect() == 1) From d2f8ea69d6fecc5ae7dbda5ebbc1348ee1236eb7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kirill=20M=C3=BCller?= Date: Wed, 11 Oct 2023 22:37:46 +0200 Subject: [PATCH 2/4] Skip --- tests/testthat/test_arrow_stream.R | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/testthat/test_arrow_stream.R b/tests/testthat/test_arrow_stream.R index f16f5ce2d..6b5b27764 100644 --- a/tests/testthat/test_arrow_stream.R +++ b/tests/testthat/test_arrow_stream.R @@ -1,6 +1,7 @@ skip_on_cran() skip_on_os("windows") skip_if_not_installed("arrow", "5.0.0") +skip_if_not_installed("dplyr") library("testthat") library("DBI") From 155d02c11163f39af4ec070e6d4b3af385bf8d52 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kirill=20M=C3=BCller?= Date: Wed, 11 Oct 2023 22:38:58 +0200 Subject: [PATCH 3/4] Conditional pipe --- tests/testthat/test_tbl__duckdb_connection.R | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tests/testthat/test_tbl__duckdb_connection.R b/tests/testthat/test_tbl__duckdb_connection.R index bc5607e35..6639a9b38 100644 --- a/tests/testthat/test_tbl__duckdb_connection.R +++ b/tests/testthat/test_tbl__duckdb_connection.R @@ -1,5 +1,7 @@ skip_on_cran() -`%>%` <- dplyr::`%>%` +if (rlang::is_installed("dplyr")) { + `%>%` <- dplyr::`%>%` +} test_that("Parquet files can be registered with dplyr::tbl()", { skip_if_not_installed("dplyr") @@ -82,4 +84,4 @@ test_that("Strings tagged as SQL will be handled correctly with dplyr::tbl()", { expect_true(rs %>% dplyr::collect() == 1) }) -rm(`%>%`) +try(rm(`%>%`)) From c05bbf5b2ca5d5e05b5ceacafbeb489a27a10bd7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kirill=20M=C3=BCller?= Date: Wed, 11 Oct 2023 23:23:26 +0200 Subject: [PATCH 4/4] dplyr -> dbplyr --- tests/testthat/test_arrow_stream.R | 2 +- tests/testthat/test_tbl__duckdb_connection.R | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/tests/testthat/test_arrow_stream.R b/tests/testthat/test_arrow_stream.R index 6b5b27764..966a7c3b4 100644 --- a/tests/testthat/test_arrow_stream.R +++ b/tests/testthat/test_arrow_stream.R @@ -1,7 +1,7 @@ skip_on_cran() skip_on_os("windows") skip_if_not_installed("arrow", "5.0.0") -skip_if_not_installed("dplyr") +skip_if_not_installed("dbplyr") library("testthat") library("DBI") diff --git a/tests/testthat/test_tbl__duckdb_connection.R b/tests/testthat/test_tbl__duckdb_connection.R index 6639a9b38..3b3fbea01 100644 --- a/tests/testthat/test_tbl__duckdb_connection.R +++ b/tests/testthat/test_tbl__duckdb_connection.R @@ -1,10 +1,10 @@ skip_on_cran() -if (rlang::is_installed("dplyr")) { +if (rlang::is_installed("dbplyr")) { `%>%` <- dplyr::`%>%` } test_that("Parquet files can be registered with dplyr::tbl()", { - skip_if_not_installed("dplyr") + skip_if_not_installed("dbplyr") con <- DBI::dbConnect(duckdb()) on.exit(DBI::dbDisconnect(con, shutdown = TRUE)) @@ -28,7 +28,7 @@ test_that("Parquet files can be registered with dplyr::tbl()", { test_that("Object cache can be enabled for parquet files with dplyr::tbl()", { - skip_if_not_installed("dplyr") + skip_if_not_installed("dbplyr") con <- DBI::dbConnect(duckdb()) on.exit(DBI::dbDisconnect(con, shutdown = TRUE)) @@ -44,7 +44,7 @@ test_that("Object cache can be enabled for parquet files with dplyr::tbl()", { test_that("CSV files can be registered with dplyr::tbl()", { - skip_if_not_installed("dplyr") + skip_if_not_installed("dbplyr") path <- file.path(tempdir(), "duckdbtest.csv") write.csv(iris, file = path) @@ -63,7 +63,7 @@ test_that("CSV files can be registered with dplyr::tbl()", { }) test_that("Other replacement scans or functions can be registered with dplyr::tbl()", { - skip_if_not_installed("dplyr") + skip_if_not_installed("dbplyr") con <- DBI::dbConnect(duckdb()) on.exit(DBI::dbDisconnect(con, shutdown = TRUE)) @@ -74,7 +74,7 @@ test_that("Other replacement scans or functions can be registered with dplyr::tb }) test_that("Strings tagged as SQL will be handled correctly with dplyr::tbl()", { - skip_if_not_installed("dplyr") + skip_if_not_installed("dbplyr") con <- DBI::dbConnect(duckdb()) on.exit(DBI::dbDisconnect(con, shutdown = TRUE))