Skip to content

Commit 132a6dd

Browse files
fix for testthat 3.3.0 (#2966)
1 parent 252b4f4 commit 132a6dd

File tree

3 files changed

+7
-6
lines changed

3 files changed

+7
-6
lines changed

NEWS.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
* `assignment_linter()` no longer errors if `"%<>%"` is an allowed operator (#2850, @AshesITR).
2121
* `condition_call_linter()` no longer covers cases where the object type in the ellipsis cannot be determined with certainty (#2888, #2890, @Bisaloo). In particular, this fixes the known false positive of custom conditions created via `errorCondition()` or `warningCondition()` not being compatible with the `call.` argument in `stop()` or `warning()`.
2222
* `package_hooks_linter()` now validates `.onUnload()` hook signatures, requiring exactly one argument starting with 'lib' (#2940, @emmanuel-ferdman).
23+
* `expect_lint()` conforms to {testthat} v3.3.0+ rules for custom expectations, namely that they produce either exactly one success or exactly one failure (#2937, @hadley).
2324

2425
## Changes to default linters
2526

R/expect_lint.R

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -87,8 +87,6 @@ expect_lint <- function(content, checks, ..., file = NULL, language = "en", igno
8787
}
8888

8989
expect_lint_impl_(lints, checks)
90-
91-
testthat::succeed()
9290
}
9391

9492
#' NB: must _not_ succeed(), should only fail() or abort()
@@ -122,11 +120,13 @@ expect_lint_impl_ <- function(lints, checks) {
122120
return(testthat::fail(sprintf(
123121
"check #%d: %s %s did not match %s",
124122
# deparse ensures that NULL, list(), etc are handled gracefully
125-
itr, field, deparse(value), deparse(check)
123+
itr, field, deparse(value), deparse(check_field)
126124
)))
127125
}
128126
}
129127
}
128+
129+
testthat::succeed()
130130
}
131131

132132
#' @rdname expect_lint

tests/testthat/test-expect_lint.R

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ test_that("single check", {
2020
expect_failure(expect_lint("a=1", "asdf", linter))
2121
expect_success(expect_lint("a=1", c(message = lint_msg), linter))
2222
expect_failure(expect_lint("a=1", c(message = NULL), linter))
23-
expect_success(expect_lint("a=1", c(message = lint_msg, line_number = 1L), linter))
23+
expect_success(expect_lint("a=1", list(message = lint_msg, line_number = 1L), linter))
2424
expect_failure(expect_lint("a=1", c(line_number = 2L, message = lint_msg), linter))
2525

2626
expect_error(expect_lint("a=1", c(message = lint_msg, lineXXX = 1L), linter), "Check 1 has an invalid field: lineXXX")
@@ -41,11 +41,11 @@ test_that("multiple checks", {
4141
expect_success(expect_lint("a=1; b=2", list(lint_msg, lint_msg), linter))
4242
expect_success(expect_lint("a=1; b=2", list(c(message = lint_msg), c(message = lint_msg)), linter))
4343
expect_success(expect_lint("a=1; b=2", list(c(line_number = 1L), c(linter = "assignment_linter")), linter))
44-
expect_success(expect_lint("a=1; b=2", list(lint_msg, c(line = "a=1; b=2", type = "warning")), linter))
44+
expect_success(expect_lint("a=1; b=2", list(lint_msg, list(line = "a=1; b=2", type = "style")), linter))
4545
expect_success(expect_lint("a=1\nb=2", list(c(line_number = 1L), c(line_number = 2L)), linter))
4646
expect_failure(expect_lint("a=1\nb=2", list(c(line_number = 2L), c(line_number = 2L)), linter))
4747

48-
expect_success(expect_lint("a=1; b=2", list(list(line_number = 1L), list(line_number = 2L)), linter))
48+
expect_success(expect_lint("a=1\nb=2", list(list(line_number = 1L), list(line_number = 2L)), linter))
4949
expect_failure(expect_lint("a=1; b=2", list(list(line_number = 2L), list(line_number = 2L)), linter))
5050
expect_success(
5151
expect_lint("\t1\n\t2", list("tabs", list(column_number = 1L, ranges = list(c(1L, 1L)))), whitespace_linter())

0 commit comments

Comments
 (0)