diff --git a/tests/testthat/packages/cereal/DESCRIPTION b/tests/testthat/packages/cereal/DESCRIPTION new file mode 100644 index 00000000..7eced6fc --- /dev/null +++ b/tests/testthat/packages/cereal/DESCRIPTION @@ -0,0 +1,10 @@ +Package: cereal +Type: Package +Version: 2.0.0 +Repository: testrepo +License: GPL +Description: Packrat test package +Title: Packrat test package +Author: Anonymous Person +Maintainer: Anonymous Person + diff --git a/tests/testthat/packages/yogurt/DESCRIPTION b/tests/testthat/packages/yogurt/DESCRIPTION new file mode 100644 index 00000000..e9bae0eb --- /dev/null +++ b/tests/testthat/packages/yogurt/DESCRIPTION @@ -0,0 +1,9 @@ +Package: yogurt +Type: Package +Version: 2.0.0 +License: GPL +Description: Packrat test package +Title: Packrat test package +Author: Anonymous Person +Maintainer: Anonymous Person + diff --git a/tests/testthat/projects/breakfastcereal/.gitignore b/tests/testthat/projects/breakfastcereal/.gitignore new file mode 100644 index 00000000..d4a80c2d --- /dev/null +++ b/tests/testthat/projects/breakfastcereal/.gitignore @@ -0,0 +1,2 @@ +packrat/lib*/ +packrat/src/ diff --git a/tests/testthat/projects/breakfastcereal/packrat/packrat.lock b/tests/testthat/projects/breakfastcereal/packrat/packrat.lock new file mode 100644 index 00000000..18053b29 --- /dev/null +++ b/tests/testthat/projects/breakfastcereal/packrat/packrat.lock @@ -0,0 +1,10 @@ +PackratFormat: 1.4 +PackratVersion: 0.4.8.1 +RVersion: 3.3.2 +Repos: CRAN=https://mirrors.nics.utk.edu/cran/, + testrepo=file:///home/carendt/r/packrat/tests/testthat/repo + +Package: cereal +Source: testrepo +Version: 1.0.0 +Hash: f5ddaf46bcdd03014f8daa586a84b69f diff --git a/tests/testthat/projects/breakfastyogurt/yogurt.R b/tests/testthat/projects/breakfastyogurt/yogurt.R new file mode 100644 index 00000000..63b08af1 --- /dev/null +++ b/tests/testthat/projects/breakfastyogurt/yogurt.R @@ -0,0 +1 @@ +library(yogurt) diff --git a/tests/testthat/repo/src/contrib/cereal/cereal_1.0.0.tar.gz b/tests/testthat/repo/src/contrib/cereal/cereal_1.0.0.tar.gz new file mode 100644 index 00000000..cae1aacb Binary files /dev/null and b/tests/testthat/repo/src/contrib/cereal/cereal_1.0.0.tar.gz differ diff --git a/tests/testthat/repo/src/contrib/cereal/cereal_2.0.0.tar.gz b/tests/testthat/repo/src/contrib/cereal/cereal_2.0.0.tar.gz new file mode 100644 index 00000000..15eba0a9 Binary files /dev/null and b/tests/testthat/repo/src/contrib/cereal/cereal_2.0.0.tar.gz differ diff --git a/tests/testthat/repo/src/contrib/yogurt/yogurt_1.0.0.tar.gz b/tests/testthat/repo/src/contrib/yogurt/yogurt_1.0.0.tar.gz new file mode 100644 index 00000000..eafd9d63 Binary files /dev/null and b/tests/testthat/repo/src/contrib/yogurt/yogurt_1.0.0.tar.gz differ diff --git a/tests/testthat/test-local-repositories.R b/tests/testthat/test-local-repositories.R index 3872d709..2f0219f0 100644 --- a/tests/testthat/test-local-repositories.R +++ b/tests/testthat/test-local-repositories.R @@ -26,4 +26,30 @@ withTestContext({ }) }) + test_that("packrat::restore can load an old version", { + skip('restore cannot load an old local version') + + projRoot <- cloneTestProject('breakfastcereal') + repos <- getOption('repos') + options(repos = c(testrepo = paste0("file:///", normalizePath("repo")))) + + ## Should be no warnings + expect_warning(packrat::restore(projRoot, restart=FALSE), regexp=NA) + + options(repos = repos) + }) + + test_that("packrat can load packages without a repository label", { + skip('packrat requires a repository label') + + projRoot <- cloneTestProject('breakfastyogurt') + repos <- getOption('repos') + options(repos = c(testrepo = paste0("file:///", normalizePath("repo")))) + + ## Should be no warnings + expect_warning(packrat::init(projRoot, enter=FALSE), regexp=NA) + + options(repos=repos) + }) + })