if (interactive()) {
library(testthat)
Sys.setenv(NOT_CRAN = "true")
}
{
mirror <- p3m("2024-01-02")
if (!is.online(mirror, tryHttp = FALSE)) {
# Use http:// for older versions of R
mirror <- sub("^https://", "https://", mirror)
}
rvers <- "4.0"
pkgs <- c("MASS")
repo_root <- file.path(tempdir(), "miniCRAN", Sys.Date())
new_repo_root <- file.path(tempdir(), "newMiniCRAN", Sys.Date())
if (file.exists(repo_root)) unlink(repo_root, recursive = TRUE)
if (file.exists(new_repo_root)) unlink(new_repo_root, recursive = TRUE)
# list.files(repo_root, recursive = TRUE)
}
types <- c("win.binary")
names(types) <- c("win.binary")
pkg_type <- names(types)
test_that("makeRepo downloads files and builds PACKAGES file", {
skip_if_offline(mirror)
# skip_on_cran()
for (pkg_type in names(types)) {
# Create local miniCRAN
# mockery::stub(makeRepo, "download_packages", mock_download_packages, depth = 1)
# mockery::stub(updateRepoIndex, "write_packages", mock_write_packages, depth = 1)
pdb <- pkgAvail(
repos = mirror,
type = pkg_type,
Rversion = rvers,
quiet = TRUE
)
pkgList <- pkgDep(
pkgs,
availPkgs = pdb,
repos = mirror,
type = pkg_type,
suggests = FALSE,
Rversion = rvers
)
prefix <- repoPrefix(pkg_type, Rversion = rvers)
dir.create(repo_root, recursive = TRUE, showWarnings = FALSE)
ret <- makeRepo(
pkgList,
path = repo_root,
repos = mirror,
type = pkg_type,
quiet = TRUE,
Rversion = rvers
)
expect_type(ret, "character")
expect_equal(length(ret), length(pkgList))
expect_true(
.checkForRepoFiles(repo_root, pkgList, prefix)
)
expect_true(
file.exists(file.path(repo_root, prefix, "PACKAGES.gz"))
)
expect_true(
all(
pkgList %in%
pkgAvail(repos = repo_root, type = pkg_type, Rversion = rvers)[,
"Package"
]
)
)
# Create miniCRAN from existing miniCRAN
localCRAN <- paste0("file:///", repo_root)
pdb <- pkgAvail(repos = localCRAN, type = pkg_type, Rversion = rvers)
pkgList <- pkgDep(
pkgs,
availPkgs = pdb,
repos = localCRAN,
type = pkg_type,
suggests = FALSE,
Rversion = rvers
)
prefix <- repoPrefix(pkg_type, Rversion = rvers)
dir.create(new_repo_root, recursive = TRUE, showWarnings = FALSE)
ret <- makeRepo(
pkgList,
path = new_repo_root,
repos = localCRAN,
type = pkg_type,
quiet = TRUE,
Rversion = rvers
)
expect_type(ret, "character")
expect_equal(length(ret), length(pkgList))
expect_true(
.checkForRepoFiles(new_repo_root, pkgList, prefix)
)
expect_true(
file.exists(file.path(new_repo_root, prefix, "PACKAGES.gz"))
)
expect_true(
all(
pkgList %in%
pkgAvail(repos = new_repo_root, type = pkg_type, Rversion = rvers)[,
"Package"
]
)
)
}
})
unlink(repo_root, recursive = TRUE)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.