Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 6 additions & 5 deletions DESCRIPTION
Original file line number Diff line number Diff line change
Expand Up @@ -22,13 +22,14 @@ LazyData: false
Depends: R (>= 3.5.0)
Imports: Rcpp (>= 0.12.16), Matrix, methods, utils, raster, gdistance, stringr, tools, grDevices
Suggests:
knitr,
markdown,
testthat (>= 2.1.0),
rmarkdown,
formatR
knitr,
markdown,
testthat (>= 3.2.0),
rmarkdown,
formatR
LinkingTo: Rcpp, BH
URL: https://github.com/project-Gen3sis/R-package
BugReports: https://github.com/project-Gen3sis/R-package/issues
RoxygenNote: 7.2.3
VignetteBuilder: knitr
Config/testthat/edition: 3
21 changes: 14 additions & 7 deletions tests/testthat/test-config_handling.R
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,8 @@ test_that("prepare_directories: Error on non-existing input directory", {
test_that("derive input/output directories from config path", {
skip("skip for now")
new_dirs <- list()
local_mock(dir.create = function(new_dir, ...){ new_dirs <<- append(new_dirs, new_dir)} )
testthat::local_mocked_bindings(dir.create = function(new_dir, ...){ new_dirs <<- append(new_dirs, new_dir)},
.env = baseenv())
config_file <- "data/config/tests_config_handling_0d/tests_run/config_empty.R"
dirs <- evaluate_promise(prepare_directories(config_file = config_file))
expect_true(all(new_dirs %in% dirs$result))
Expand All @@ -37,7 +38,8 @@ test_that("derive input/output directories from config path", {
test_that("prepare_directories: default config, input_directory given, output directory derived", {
skip("skip until config handling settled")
new_dirs <- list()
local_mock(dir.create = function(new_dir, ...){ new_dirs <<- append(new_dirs, new_dir)} )
testthat::local_mocked_bindings(dir.create = function(new_dir, ...){ new_dirs <<- append(new_dirs, new_dir)},
.env = baseenv())
input_directory <- "data/input"
dirs <- evaluate_promise(prepare_directories(input_directory = input_directory))
expect_true(all(new_dirs %in% dirs$result))
Expand All @@ -48,7 +50,8 @@ test_that("prepare_directories: default config, input_directory given, output di
test_that("prepare_directories: config, input-, and output- directory given", {
skip("skip for now")
new_dirs <- list()
local_mock(dir.create = function(new_dir, ...){ new_dirs <<- append(new_dirs, new_dir)} )
testthat::local_mocked_bindings(dir.create = function(new_dir, ...){ new_dirs <<- append(new_dirs, new_dir)},
.env = baseenv())
config_file <- "data/config/tests_config_handling_0d/tests_run/config_empty.R"
input_directory <- "data/input"
output_directory <- "data/output"
Expand All @@ -62,7 +65,8 @@ test_that("prepare_directories: config, input-, and output- directory given", {

test_that("no user config provided, using default config" , {
skip("skip until devtools updated in docker image")
local_mock(dir.create = function(new_dir, ...) { } )
testthat::local_mocked_bindings(dir.create = function(new_dir, ...) { },
.env = baseenv())
empty_config <- "data/config/tests_config_handling_0d/tests_run/config_empty.R"
dirs <- evaluate_promise(prepare_directories(config_file = empty_config))
expect_known_output(create_input_config(empty_config, dirs$result),
Expand All @@ -72,7 +76,8 @@ test_that("no user config provided, using default config" , {

test_that("partial user config provided" , {
skip("skip until devtools updated in docker image")
local_mock(dir.create = function(new_dir, ...) { } )
testthat::local_mocked_bindings(dir.create = function(new_dir, ...) { },
.env = baseenv())
empty_config <- "data/config/tests_config_handling_0d/tests_run/config_partial.R"
dirs <- evaluate_promise(prepare_directories(config_file = empty_config))
expect_known_output(create_input_config(empty_config, dirs$result),
Expand All @@ -82,7 +87,8 @@ test_that("partial user config provided" , {

test_that("full user config provided" , {
skip("skip until devtools updated in docker image")
local_mock(dir.create = function(new_dir, ...) { } )
testthat::local_mocked_bindings(dir.create = function(new_dir, ...) { },
.env = baseenv())
empty_config <- "data/config/tests_config_handling_0d/tests_run/config_complete.R"
dirs <- evaluate_promise(prepare_directories(config_file = empty_config))
expect_known_output(create_input_config(empty_config, dirs$result),
Expand All @@ -92,7 +98,8 @@ test_that("full user config provided" , {

test_that("user config provided with extra values" , {
skip("skip until devtools updated in docker image")
local_mock(dir.create = function(new_dir, ...) { } )
testthat::local_mocked_bindings(dir.create = function(new_dir, ...) { },
.env = baseenv())
empty_config <- "data/config/tests_config_handling_0d/tests_run/config_additional_user_values.R"
dirs <- evaluate_promise(prepare_directories(config_file = empty_config))
expect_known_output(create_input_config(empty_config, dirs$result),
Expand Down
25 changes: 21 additions & 4 deletions tests/testthat/test-input_creation.R
Original file line number Diff line number Diff line change
@@ -1,10 +1,22 @@
test_that("create_directories overwrite protection works", {
skip("can't mock file.exists")
# remove temporary skip added due to mocking issue
# testthat::skip("can't mock file.exists")
# mocking base functions is no longer feasible, overwrite is not tested as it calls "unlink"
new_dirs <- list()
local_mock(dir.create = function(new_dir, ...){ new_dirs <<- append(new_dirs, new_dir)} )
testthat::local_mocked_bindings(
dir.create = function(new_dir, ...) {
new_dirs <<- append(new_dirs, new_dir)
},
.env = base::.BaseNamespaceEnv
)

# test overwrite protection
local_mock(file.exists = function(...){ return(TRUE)} )
testthat::local_mocked_bindings(
file.exists = function(...) {
return(TRUE)
},
.env = base::.BaseNamespaceEnv
)
expect_error(create_directories("test", overwrite = FALSE, full_matrices = FALSE),
"output directory already exists", fixed = TRUE)
})
Expand All @@ -13,7 +25,12 @@ test_that("create_directories overwrite protection works", {
test_that("create_directories works", {
# mocking base functions is no longer feasible, overwrite is not tested as it calls "unlink"
new_dirs <- list()
local_mock(dir.create = function(new_dir, ...){ new_dirs <<- append(new_dirs, new_dir)} )
testthat::local_mocked_bindings(
dir.create = function(new_dir, ...) {
new_dirs <<- append(new_dirs, new_dir)
},
.env = base::.BaseNamespaceEnv
)

create_directories("test", overwrite = FALSE, full_matrices = FALSE)
expect_true("test" %in% new_dirs)
Expand Down