From 48483e7312a0472a2f9cb48f5e3123600a7f4ac9 Mon Sep 17 00:00:00 2001 From: Pawel Rucki <12943682+pawelru@users.noreply.github.com> Date: Wed, 14 Feb 2024 11:59:13 +0100 Subject: [PATCH 1/4] add options for strict testing --- R/validate_inputs.R | 6 +++--- man/validate_inputs.Rd | 6 +++--- tests/testthat/setup-options.R | 20 ++++++++++++++++++++ 3 files changed, 26 insertions(+), 6 deletions(-) create mode 100644 tests/testthat/setup-options.R diff --git a/R/validate_inputs.R b/R/validate_inputs.R index c146dc04c6..8a5adc2cc1 100644 --- a/R/validate_inputs.R +++ b/R/validate_inputs.R @@ -58,12 +58,12 @@ #' # set up input validation #' iv <- InputValidator$new() #' iv$add_rule("letter", sv_in_set(LETTERS, "choose a capital letter")) -#' iv$add_rule("number", ~ if (as.integer(.) %% 2L == 1L) "choose an even number") +#' iv$add_rule("number", ~ if (as.integer(.data$.) %% 2L == 1L) "choose an even number") #' iv$enable() #' # more input validation #' iv_par <- InputValidator$new() #' iv_par$add_rule("color", sv_required(message = "choose a color")) -#' iv_par$add_rule("color", ~ if (length(.) > 1L) "choose only one color") +#' iv_par$add_rule("color", ~ if (length(.data$.) > 1L) "choose only one color") #' iv_par$add_rule( #' "size", #' sv_between( @@ -87,7 +87,7 @@ #' )) #' ) #' -#' plot(eruptions ~ waiting, faithful, +#' plot(.data$eruptions ~ .data$waiting, faithful, #' las = 1, pch = 16, #' col = input[["color"]], cex = input[["size"]] #' ) diff --git a/man/validate_inputs.Rd b/man/validate_inputs.Rd index 50ae876d0e..159f7b62b7 100644 --- a/man/validate_inputs.Rd +++ b/man/validate_inputs.Rd @@ -66,12 +66,12 @@ server <- function(input, output) { # set up input validation iv <- InputValidator$new() iv$add_rule("letter", sv_in_set(LETTERS, "choose a capital letter")) - iv$add_rule("number", ~ if (as.integer(.) \%\% 2L == 1L) "choose an even number") + iv$add_rule("number", ~ if (as.integer(.data$.) \%\% 2L == 1L) "choose an even number") iv$enable() # more input validation iv_par <- InputValidator$new() iv_par$add_rule("color", sv_required(message = "choose a color")) - iv_par$add_rule("color", ~ if (length(.) > 1L) "choose only one color") + iv_par$add_rule("color", ~ if (length(.data$.) > 1L) "choose only one color") iv_par$add_rule( "size", sv_between( @@ -95,7 +95,7 @@ server <- function(input, output) { )) ) - plot(eruptions ~ waiting, faithful, + plot(.data$eruptions ~ .data$waiting, faithful, las = 1, pch = 16, col = input[["color"]], cex = input[["size"]] ) diff --git a/tests/testthat/setup-options.R b/tests/testthat/setup-options.R new file mode 100644 index 0000000000..78be1f9b5f --- /dev/null +++ b/tests/testthat/setup-options.R @@ -0,0 +1,20 @@ +# `opts_partial_match_old` is left for exclusions due to partial matching in dependent packages (i.e. not fixable here) +# it might happen that it is not used right now, but it is left for possible future use +# use with: `withr::with_options(opts_partial_match_old, { ... })` inside the test +opts_partial_match_old <- list( + warnPartialMatchDollar = getOption("warnPartialMatchDollar"), + warnPartialMatchArgs = getOption("warnPartialMatchArgs"), + warnPartialMatchAttr = getOption("warnPartialMatchAttr") +) +opts_partial_match_new <- list( + warnPartialMatchDollar = TRUE, + warnPartialMatchArgs = TRUE, + warnPartialMatchAttr = TRUE +) + +if (isFALSE(getFromNamespace("on_cran", "testthat")()) && requireNamespace("withr", quietly = TRUE)) { + withr::local_options( + opts_partial_match_new, + .local_envir = testthat::teardown_env() + ) +} From b2cacdc54b28ca736914a380cea9934dbc656351 Mon Sep 17 00:00:00 2001 From: Pawel Rucki <12943682+pawelru@users.noreply.github.com> Date: Thu, 15 Feb 2024 10:42:17 +0100 Subject: [PATCH 2/4] formula to function in order to avoid `.` --- R/validate_inputs.R | 6 +++--- man/validate_inputs.Rd | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/R/validate_inputs.R b/R/validate_inputs.R index 8a5adc2cc1..1d2ec75697 100644 --- a/R/validate_inputs.R +++ b/R/validate_inputs.R @@ -58,12 +58,12 @@ #' # set up input validation #' iv <- InputValidator$new() #' iv$add_rule("letter", sv_in_set(LETTERS, "choose a capital letter")) -#' iv$add_rule("number", ~ if (as.integer(.data$.) %% 2L == 1L) "choose an even number") +#' iv$add_rule("number", function(x) if (as.integer(x) %% 2L == 1L) "choose an even number") #' iv$enable() #' # more input validation #' iv_par <- InputValidator$new() #' iv_par$add_rule("color", sv_required(message = "choose a color")) -#' iv_par$add_rule("color", ~ if (length(.data$.) > 1L) "choose only one color") +#' iv_par$add_rule("color", function(x) if (length(x) > 1L) "choose only one color") #' iv_par$add_rule( #' "size", #' sv_between( @@ -87,7 +87,7 @@ #' )) #' ) #' -#' plot(.data$eruptions ~ .data$waiting, faithful, +#' plot(faithful$eruptions ~ faithful$waiting, #' las = 1, pch = 16, #' col = input[["color"]], cex = input[["size"]] #' ) diff --git a/man/validate_inputs.Rd b/man/validate_inputs.Rd index 159f7b62b7..121288e100 100644 --- a/man/validate_inputs.Rd +++ b/man/validate_inputs.Rd @@ -66,12 +66,12 @@ server <- function(input, output) { # set up input validation iv <- InputValidator$new() iv$add_rule("letter", sv_in_set(LETTERS, "choose a capital letter")) - iv$add_rule("number", ~ if (as.integer(.data$.) \%\% 2L == 1L) "choose an even number") + iv$add_rule("number", function(x) if (as.integer(x) \%\% 2L == 1L) "choose an even number") iv$enable() # more input validation iv_par <- InputValidator$new() iv_par$add_rule("color", sv_required(message = "choose a color")) - iv_par$add_rule("color", ~ if (length(.data$.) > 1L) "choose only one color") + iv_par$add_rule("color", function(x) if (length(x) > 1L) "choose only one color") iv_par$add_rule( "size", sv_between( @@ -95,7 +95,7 @@ server <- function(input, output) { )) ) - plot(.data$eruptions ~ .data$waiting, faithful, + plot(faithful$eruptions ~ faithful$waiting, las = 1, pch = 16, col = input[["color"]], cex = input[["size"]] ) From 8669b619931398b6ddc24321fea3769f535b34e7 Mon Sep 17 00:00:00 2001 From: Pawel Rucki <12943682+pawelru@users.noreply.github.com> Date: Thu, 15 Feb 2024 10:55:01 +0100 Subject: [PATCH 3/4] add fun braces in example --- R/validate_inputs.R | 8 ++++++-- man/validate_inputs.Rd | 8 ++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/R/validate_inputs.R b/R/validate_inputs.R index 1d2ec75697..4fa8645a44 100644 --- a/R/validate_inputs.R +++ b/R/validate_inputs.R @@ -58,12 +58,16 @@ #' # set up input validation #' iv <- InputValidator$new() #' iv$add_rule("letter", sv_in_set(LETTERS, "choose a capital letter")) -#' iv$add_rule("number", function(x) if (as.integer(x) %% 2L == 1L) "choose an even number") +#' iv$add_rule("number", function(x) { +#' if (as.integer(x) %% 2L == 1L) "choose an even number" +#' }) #' iv$enable() #' # more input validation #' iv_par <- InputValidator$new() #' iv_par$add_rule("color", sv_required(message = "choose a color")) -#' iv_par$add_rule("color", function(x) if (length(x) > 1L) "choose only one color") +#' iv_par$add_rule("color", function(x) { +#' if (length(x) > 1L) "choose only one color" +#' }) #' iv_par$add_rule( #' "size", #' sv_between( diff --git a/man/validate_inputs.Rd b/man/validate_inputs.Rd index 121288e100..caf9bb4be8 100644 --- a/man/validate_inputs.Rd +++ b/man/validate_inputs.Rd @@ -66,12 +66,16 @@ server <- function(input, output) { # set up input validation iv <- InputValidator$new() iv$add_rule("letter", sv_in_set(LETTERS, "choose a capital letter")) - iv$add_rule("number", function(x) if (as.integer(x) \%\% 2L == 1L) "choose an even number") + iv$add_rule("number", function(x) { + if (as.integer(x) \%\% 2L == 1L) "choose an even number" + }) iv$enable() # more input validation iv_par <- InputValidator$new() iv_par$add_rule("color", sv_required(message = "choose a color")) - iv_par$add_rule("color", function(x) if (length(x) > 1L) "choose only one color") + iv_par$add_rule("color", function(x) { + if (length(x) > 1L) "choose only one color" + }) iv_par$add_rule( "size", sv_between( From 8139a5928464a17b6850dd11d442dec29110ee59 Mon Sep 17 00:00:00 2001 From: "27856297+dependabot-preview[bot]@users.noreply.github.com" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 26 Feb 2024 08:26:31 +0000 Subject: [PATCH 4/4] [skip roxygen] [skip vbump] Roxygen Man Pages Auto Update --- man/reporter_previewer_module.Rd | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/man/reporter_previewer_module.Rd b/man/reporter_previewer_module.Rd index 1aa7bb0784..e54418141d 100644 --- a/man/reporter_previewer_module.Rd +++ b/man/reporter_previewer_module.Rd @@ -11,7 +11,7 @@ reporter_previewer_module(label = "Report previewer", server_args = list()) For \code{modules()} defaults to \code{"root"}. See \code{Details}.} \item{server_args}{(named \code{list}) -Arguments passed to \code{\link[teal.reporter:reporter_previewer_srv]{teal.reporter::reporter_previewer_srv()}}.} +Arguments passed to \code{\link[teal.reporter:reporter_previewer]{teal.reporter::reporter_previewer_srv()}}.} } \value{ \code{teal_module} (extended with \code{teal_module_previewer} class) containing the \code{teal.reporter} previewer functionality. @@ -19,8 +19,8 @@ Arguments passed to \code{\link[teal.reporter:reporter_previewer_srv]{teal.repor \description{ \ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}} -This function wraps \code{\link[teal.reporter:reporter_previewer_ui]{teal.reporter::reporter_previewer_ui()}} and -\code{\link[teal.reporter:reporter_previewer_srv]{teal.reporter::reporter_previewer_srv()}} into a \code{teal_module} to be +This function wraps \code{\link[teal.reporter:reporter_previewer]{teal.reporter::reporter_previewer_ui()}} and +\code{\link[teal.reporter:reporter_previewer]{teal.reporter::reporter_previewer_srv()}} into a \code{teal_module} to be used in \code{teal} applications. If you are creating a \code{teal} application using \code{\link[=init]{init()}} then this