Nothing
# Fixtures
fixtures <- list()
fixtures$retrieve_lint <- function() {
file_name <- "R/test.R"
lines <- c("foobar1", "foobar2", "foobar3")
lints <- list(
Lint(file_name, 1L, line = "foobar1"),
Lint(file_name, 2L, line = "foobar2"),
Lint(file_name, 3L, line = "foobar3")
)
expr <- list(content = paste(collapse = "\n", lines))
list(
lines = lines,
linters = list(),
lints = lints,
expr = expr
)
}
# Run tests with a temporary cache directory, so we don't leave files behind
# after running
withr::local_options(lintr.cache_directory = withr::local_tempdir())
# Helper functions
fhash <- function(filename) {
digest::digest(filename, algo = "sha1")
}
# Tests
# `clear_cache`
test_that("clear_cache deletes the directory if no file is given", {
local_mocked_bindings(
read_settings = function(...) invisible(...),
unlink = function(...) list(...)
)
expect_identical(clear_cache(file = NULL, path = "."), list(".", recursive = TRUE))
})
test_that("lint with cache uses the provided relative cache directory", {
path <- withr::local_tempdir("my_cache_dir")
linter <- assignment_linter()
# create the cache
expect_lint("a <- 1", NULL, linter, cache = path)
expect_true(dir.exists(path))
expect_length(list.files(file.path(path)), 1L)
# read the cache
expect_lint("a <- 1", NULL, linter, cache = path)
expect_true(dir.exists(path))
})
test_that("it works outside of a package", {
linter <- assignment_linter()
local_mocked_bindings(find_package = function(...) NULL)
path <- withr::local_tempfile(pattern = "my_cache_dir_")
expect_false(dir.exists(path))
expect_lint("a <- 1", NULL, linter, cache = path)
expect_true(dir.exists(path))
expect_length(list.files(path), 1L)
expect_lint("a <- 1", NULL, linter, cache = path)
expect_true(dir.exists(path))
})
test_that("cache = TRUE workflow works", {
# Need a test structure with a safe to load .lintr
withr::local_dir(file.path("dummy_packages", "package"))
withr::local_options(lintr.linter_file = "lintr_test_config")
files <- normalize_path(list.files(recursive = TRUE, full.names = TRUE))
# Manually clear cache (that function is exported)
for (f in files) {
clear_cache(file = f)
}
l1 <- lint_package(cache = TRUE)
l2 <- lint_package(cache = TRUE)
expect_identical(l1, l2)
})
test_that("cache = TRUE works with nolint", {
linters <- list(infix_spaces_linter())
file <- withr::local_tempfile()
writeLines("1+1\n", file)
expect_length(lint(file, linters, cache = TRUE), 1L)
writeLines("1+1 # nolint\n", file)
expect_length(lint(file, linters, cache = TRUE), 0L)
writeLines("1+1\n", file)
expect_length(lint(file, linters, cache = TRUE), 1L)
writeLines("1+1 # nolint\n", file)
expect_length(lint(file, linters, cache = TRUE), 0L)
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.