tests/testthat/test-from.R

# /tmp/testdir
# ├── git_repo
# │   ├── data
# │   │   └── data.csv
# │   ├── r_package
# │   │   ├── DESCRIPTION
# │   │   ├── R
# │   │   ├── data
# │   │   │   └── input.csv
# │   │   └── tests
# │   │       └── testthat
# │   │           └── test-example.R
# │   └── standalone_analysis
# │       ├── analysis.Rproj
# │       ├── data
# │       │   └── dataset.csv
# │       ├── results
# │       └── scripts
# │           └── analysis.R
# └── project.Rproj

test_that("paths from r package", {
  setwd(file.path(temp_dir, "git_repo", "r_package"))
  expect_equal(
    as.character(from_r_package()),
    getwd()
  )
  expect_equal(
    as.character(from_testthat()),
    file.path(temp_dir, "git_repo", "r_package", "tests", "testthat")
  )
  expect_equal(
    as.character(from_git()),
    file.path(temp_dir, "git_repo")
  )
  expect_equal(
    as.character(from_rproj()),
    file.path(temp_dir)
  )
  expect_equal(
    as.character(from_rproj("git_repo", "data", "input.csv")),
    file.path(temp_dir, "git_repo", "data", "input.csv")
  )
  expect_equal(
    as.character(from_git("data", "input.csv")),
    file.path(temp_dir, "git_repo", "data", "input.csv")
  )
  expect_equal(
    from_r_package("data/input.csv"),
    from_r_package$data$input.csv
  )
  expect_error(
    from_targets(),
    "No root directory found"
  )
})


test_that("paths from git folder", {
  setwd(file.path(temp_dir, "git_repo"))
  expect_equal(
    as.character(from_git()),
    file.path(temp_dir, "git_repo")
  )
  expect_equal(
    as.character(from_rproj()),
    file.path(temp_dir)
  )
  expect_equal(
    as.character(from_rproj("git_repo", "data", "input.csv")),
    file.path(temp_dir, "git_repo", "data", "input.csv")
  )
  expect_equal(
    as.character(from_git("data", "input.csv")),
    file.path(temp_dir, "git_repo", "data", "input.csv")
  )
  expect_error(
    from_r_package(),
    "No root directory found"
  )
  expect_error(
    from_testthat(),
    "No root directory found"
  )
})

Try the fromhere package in your browser

Any scripts or data that you put into this service are public.

fromhere documentation built on April 3, 2025, 8:49 p.m.