tests/testthat/setup.R

# set madrat mainfolder and options before running tests, cleanup after all tests are finished

previousMadratConfig <- getOption("madrat_cfg")
withr::defer({
  options(madrat_cfg = previousMadratConfig) # nolint
}, envir = testthat::teardown_env())

setConfig(mainfolder = withr::local_tempdir(.local_envir = testthat::teardown_env()),
          globalenv = TRUE,
          redirections = list(),
          .verbose = FALSE)
withr::local_options(madrat_codelabels = NULL,
                     MadratCache = NULL,
                     renv.verbose = FALSE,
                     magclass_expand_version = NULL,
                     magclass_sizeLimit = NULL,
                     .local_envir = testthat::teardown_env())

withr::local_envvar(LANGUAGE = "EN",
                    .local_envir = testthat::teardown_env())

globalassign <- function(...) {
  withr::defer({
    # suppress warning if object does not exist in .GlobalEnv
    suppressWarnings(rm(list = c(...), envir = .GlobalEnv))
  }, envir = parent.frame())
  for (x in c(...)) {
    assign(x, eval.parent(parse(text = x)), .GlobalEnv)
  }
}
pik-piam/madrat documentation built on May 10, 2024, 4:37 a.m.