From 20d37fa943e9627beba8fc24f2e216eca9e8c956 Mon Sep 17 00:00:00 2001 From: Michael Chirico <michaelchirico4@gmail.com> Date: Sun, 6 Dec 2020 04:34:48 -0500 Subject: [PATCH] Enable tests (#669) * remove line in .lintr * lint files in tests/ * remove duplication --- .lintr | 2 +- tests/testthat/test-T_and_F_symbol_linter.R | 1 - tests/testthat/test-absolute_path_linter.R | 2 +- tests/testthat/test-closed_curly_linter.R | 8 ++++---- tests/testthat/test-defaults.R | 2 +- tests/testthat/test-extraction_operator_linter.R | 2 -- tests/testthat/test-get_source_expressions.R | 8 +++----- tests/testthat/test-lint_file.R | 4 ++-- tests/testthat/test-lint_package.R | 8 +++----- tests/testthat/test-open_curly_linter.R | 2 +- tests/testthat/test-seq_linter.R | 2 +- tests/testthat/test-spaces_inside_linter.R | 4 +--- tests/testthat/test-unneeded_concatenation_linter.R | 3 --- 13 files changed, 18 insertions(+), 30 deletions(-) diff --git a/.lintr b/.lintr index a111d08d6..858b126e2 100644 --- a/.lintr +++ b/.lintr @@ -8,7 +8,7 @@ linters: with_defaults( # The following TODOs are part of an effort to have {lin exclusions: list( "inst/doc/creating_linters.R" = 1, "inst/example/bad.R", - "tests", # TODO remove this + "tests/testthat/default_linter_testcode.R", "tests/testthat/dummy_packages", "tests/testthat/exclusions-test", "tests/testthat/knitr_formats", diff --git a/tests/testthat/test-T_and_F_symbol_linter.R b/tests/testthat/test-T_and_F_symbol_linter.R index c31cfef6f..c462ce0d7 100644 --- a/tests/testthat/test-T_and_F_symbol_linter.R +++ b/tests/testthat/test-T_and_F_symbol_linter.R @@ -16,4 +16,3 @@ test_that("returns the correct linting", { ), linter) }) - diff --git a/tests/testthat/test-absolute_path_linter.R b/tests/testthat/test-absolute_path_linter.R index 39715659b..e0706510f 100644 --- a/tests/testthat/test-absolute_path_linter.R +++ b/tests/testthat/test-absolute_path_linter.R @@ -166,7 +166,7 @@ test_that("returns the correct linting", { "./blah", encodeString("blah\\file.txt") ) - for(path in non_absolute_path_strings) { + for (path in non_absolute_path_strings) { expect_lint(single_quote(path), NULL, linter) expect_lint(double_quote(path), NULL, linter) } diff --git a/tests/testthat/test-closed_curly_linter.R b/tests/testthat/test-closed_curly_linter.R index c3ead0a0d..fbc5321ff 100644 --- a/tests/testthat/test-closed_curly_linter.R +++ b/tests/testthat/test-closed_curly_linter.R @@ -35,18 +35,18 @@ test_that("returns the correct linting", { rex("Closing curly-braces should always be on their own line, unless it's followed by an else.") ), closed_curly_linter()) - + expect_lint("eval(bquote({...}))", NULL, closed_curly_linter()) - + expect_lint("fun({\n statements\n}, param)", NULL, closed_curly_linter()) - + expect_lint("out <- lapply(stuff, function(i) {\n do_something(i)\n}) %>% unlist", NULL, closed_curly_linter()) - expect_lint('{{x}}', NULL, closed_curly_linter()) + expect_lint("{{x}}", NULL, closed_curly_linter()) }) diff --git a/tests/testthat/test-defaults.R b/tests/testthat/test-defaults.R index 609c7cc45..6dbb5b27c 100644 --- a/tests/testthat/test-defaults.R +++ b/tests/testthat/test-defaults.R @@ -18,7 +18,7 @@ test_that("undesirable functions and operators", { expect_is(x, "list") expect_gt(length(x), 0L) expect_true(all(names(x) != "")) - expect_true(all(vapply(x, function(x) {is.na(x) || is.character(x)}, logical(1L)))) + expect_true(all(vapply(x, function(x) is.na(x) || is.character(x), logical(1L)))) expect_true(all(vapply(x, length, integer(1L)) == 1L)) } }) diff --git a/tests/testthat/test-extraction_operator_linter.R b/tests/testthat/test-extraction_operator_linter.R index c32c7a3d2..327d19f9f 100644 --- a/tests/testthat/test-extraction_operator_linter.R +++ b/tests/testthat/test-extraction_operator_linter.R @@ -21,5 +21,3 @@ test_that("linter returns the correct linting", { ), linter) }) - - diff --git a/tests/testthat/test-get_source_expressions.R b/tests/testthat/test-get_source_expressions.R index e43473bfd..038437318 100644 --- a/tests/testthat/test-get_source_expressions.R +++ b/tests/testthat/test-get_source_expressions.R @@ -1,12 +1,10 @@ -context("get_source_expression") - - with_content_to_parse <- function(content, code) { f <- tempfile() on.exit(unlink(f)) writeLines(content, f) - pc <- lapply(get_source_expressions(f)[["expressions"]], `[[`, "parsed_content") - eval(substitute(code)) + content_env <- new.env() + content_env$pc <- lapply(get_source_expressions(f)[["expressions"]], `[[`, "parsed_content") + eval(substitute(code), envir = content_env) } diff --git a/tests/testthat/test-lint_file.R b/tests/testthat/test-lint_file.R index 8596b2b8e..6379a8e0c 100644 --- a/tests/testthat/test-lint_file.R +++ b/tests/testthat/test-lint_file.R @@ -88,7 +88,7 @@ test_that("lint() results do not depend on the position of the .lintr", { ) ) - lints_with_config_in_source_dir <- withr::with_dir( + lints_with_config_in_r_dir <- withr::with_dir( pkg_path, lint_with_config( config_path = "R/.lintr", @@ -102,7 +102,7 @@ test_that("lint() results do not depend on the position of the .lintr", { ) expect_equal( as.data.frame(lints_with_config_at_pkg_root), - as.data.frame(lints_with_config_in_source_dir), + as.data.frame(lints_with_config_in_r_dir), info = paste( "lints for a source file should be independent of whether the .lintr", "file is in the project-root or the source-file-directory" diff --git a/tests/testthat/test-lint_package.R b/tests/testthat/test-lint_package.R index 9b08d89ac..f572419b6 100644 --- a/tests/testthat/test-lint_package.R +++ b/tests/testthat/test-lint_package.R @@ -1,13 +1,11 @@ -context("Integration tests for `lint_package`") - # When called from inside a package: -# lint_package(".") +# lint_package(".") # nolint # .. should give the same results as when called from outside the package # with: -# lint_package(path_to_package) +# lint_package(path_to_package) # nolint # Template packages for use in testing are stored in -# `tests/testthat/dummy_packages/<pkgName>` +# tests/testthat/dummy_packages/<pkgName> # These packages should not have a .lintr file: Hardcoding a .lintr in a # dummy package throws problems during `R CMD check` (they are flagged as # hidden files, but can't be added to RBuildIgnore since they should be diff --git a/tests/testthat/test-open_curly_linter.R b/tests/testthat/test-open_curly_linter.R index dca514a77..6a66d473b 100644 --- a/tests/testthat/test-open_curly_linter.R +++ b/tests/testthat/test-open_curly_linter.R @@ -47,5 +47,5 @@ test_that("returns the correct linting", { open_curly_linter() ) - expect_lint('{{x}}', NULL, open_curly_linter()) + expect_lint("{{x}}", NULL, open_curly_linter()) }) diff --git a/tests/testthat/test-seq_linter.R b/tests/testthat/test-seq_linter.R index 02a559177..9f18bc1e8 100644 --- a/tests/testthat/test-seq_linter.R +++ b/tests/testthat/test-seq_linter.R @@ -30,7 +30,7 @@ test_that("finds 1:length(...) expressions", { expect_lint("function(x) { 1:dim(x)[1L] }", rex("dim(...)", anything, "use seq_len"), seq_linter) - + expect_lint("function(x) { 1L:dim(x)[[1]] }", rex("dim(...)", anything, "use seq_len"), seq_linter) diff --git a/tests/testthat/test-spaces_inside_linter.R b/tests/testthat/test-spaces_inside_linter.R index 3932d2335..4ab573316 100644 --- a/tests/testthat/test-spaces_inside_linter.R +++ b/tests/testthat/test-spaces_inside_linter.R @@ -1,5 +1,3 @@ -context("spaces_inside_linter") - test_that("returns the correct linting", { msg <- rex::rex("Do not place spaces around code in parentheses or square brackets.") @@ -55,7 +53,7 @@ test_that("returns the correct linting", { # trailing comments are OK (#636) expect_lint("or( #code\n x, y\n)", NULL, spaces_inside_linter) - + expect_lint(trim_some(" fun( # this is another comment a = 42, # because 42 is always the answer diff --git a/tests/testthat/test-unneeded_concatenation_linter.R b/tests/testthat/test-unneeded_concatenation_linter.R index 0c163e8bb..6c0699dd7 100644 --- a/tests/testthat/test-unneeded_concatenation_linter.R +++ b/tests/testthat/test-unneeded_concatenation_linter.R @@ -1,5 +1,3 @@ -context("unneeded_concatenation_linter") - test_that("returns the correct linting", { linter <- unneeded_concatenation_linter msg_c <- rex::escape("Unneeded concatenation of a constant. Remove the \"c\" call.") @@ -23,4 +21,3 @@ test_that("returns the correct linting", { ), linter) }) -