remote_info <- data.frame(
RemoteType = "gitlab",
RemoteHost = "gitlab.com",
RemoteRepo = "bread",
RemoteUsername = "breakfaster",
RemoteRef = "HEAD",
RemoteSha = "abc123",
stringsAsFactors = FALSE
)
test_that("appendRemoteInfoToDescription modifies DESCRIPTION file", {
src_tmp <- tempfile(fileext = ".tar.gz")
on.exit(
if (file.exists(src_tmp)) unlink(src_tmp, recursive = TRUE),
add = TRUE
)
dest_tmp <- tempfile(fileext = ".tar.gz")
on.exit(
if (file.exists(dest_tmp)) unlink(dest_tmp, recursive = TRUE),
add = TRUE
)
basedir <- test_path("packages/toast")
tryCatch(
in_dir(dirname(basedir),
suppressWarnings(tar(tarfile = src_tmp, files = basename(basedir),
compression = "gzip", tar = tar_binary()))
),
error = function(e) {
unlink(src_tmp)
stop(e)
}
)
success <- appendRemoteInfoToDescription(
src = src_tmp,
dest = dest_tmp,
remote_info = remote_info
)
expect_true(success)
untarred_tmp <- tempfile()
on.exit(
if (file.exists(untarred_tmp)) unlink(untarred_tmp, recursive = TRUE),
add = TRUE
)
untar(dest_tmp, exdir = untarred_tmp, tar = tar_binary())
if (length(dir(untarred_tmp)) == 1 &&
dir.exists(file.path(untarred_tmp, dir(untarred_tmp)))) {
basedir <- file.path(untarred_tmp, dir(untarred_tmp))
} else {
basedir <- untarred_tmp
}
desc <- readLines(file.path(untarred_tmp, "toast", "DESCRIPTION"))
expected_desc_tail <- c(
"RemoteType: gitlab",
"RemoteHost: gitlab.com",
"RemoteRepo: bread",
"RemoteUsername: breakfaster",
"RemoteRef: HEAD",
"RemoteSha: abc123"
)
expect_identical(tail(desc, 6), expected_desc_tail)
getwd()
})
test_that("annotatePkgDesc annotates a package description", {
project <- tempfile()
dir.create(project)
lib <- libDir(project)
package <- file.path(lib, "fake")
dir.create(package, recursive = TRUE)
desc <- file.path(package, "DESCRIPTION")
write_dcf(
list(
Package = "fake",
Version = "1.2.3",
InstallAgent = "testthat"
),
desc
)
pkgRecord <- list(
name = "fake",
source = "CRAN",
version = "1.2.3"
)
annotatePkgDesc(pkgRecord, project)
result <- as.data.frame(readDcf(desc), stringsAsFactors = FALSE)
expect_equal(result$Package, "fake")
expect_equal(result$Version, "1.2.3")
expect_equal(result$InstallAgent, paste('packrat', packageVersion('packrat')))
expect_equal(result$InstallSource, "CRAN")
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.