test_that("github_resolve_ref.github_release", {
skip_on_cran()
skip_if_offline()
skip_if_over_rate_limit()
expect_error(
github_resolve_ref.github_release(
NA,
list(username = "hadley", repo = "devtools"),
host = "api.github.com"
),
NA
)
})
test_that("github_resolve_ref.NULL", {
expect_equal(
github_resolve_ref(NULL, list()),
list(ref = "HEAD")
)
})
test_that("github_resolve_ref.github_pull", {
expect_error(
github_resolve_ref(
github_pull("1"),
list(userame = "gaborcsardi", repo = "pkgconfig")
),
"Cannot find GitHub pull request"
)
})
test_that("github_resolve_ref.github_release", {
skip_on_cran()
skip_if_offline()
skip_if_over_rate_limit()
expect_error(
github_resolve_ref(
github_release(),
list(userame = "gaborcsardi", repo = "xxxxxxxxxx")
),
"Cannot find repo"
)
})
test_that("github_release", {
skip_on_cran()
skip_if_offline()
skip_if_over_rate_limit()
Sys.unsetenv("R_TESTS")
lib <- tempfile()
on.exit(unlink(lib, recursive = TRUE), add = TRUE)
dir.create(lib)
install_github(
"gaborcsardi/falsy",
ref = github_release(),
lib = lib,
quiet = TRUE
)
expect_silent(packageDescription("falsy", lib.loc = lib))
expect_equal(
packageDescription("falsy", lib.loc = lib)$RemoteRepo,
"falsy")
})
test_that("install_github", {
skip_on_cran()
skip_if_offline()
skip_if_over_rate_limit()
Sys.unsetenv("R_TESTS")
lib <- tempfile()
on.exit(unlink(lib, recursive = TRUE), add = TRUE)
dir.create(lib)
install_github("cran/falsy", lib = lib, quiet = TRUE)
expect_silent(packageDescription("falsy", lib.loc = lib))
expect_equal(
packageDescription("falsy", lib.loc = lib)$RemoteRepo,
"falsy")
remote <- package2remote("falsy", lib = lib)
expect_s3_class(remote, "remote")
expect_s3_class(remote, "github_remote")
expect_equal(format(remote), "GitHub")
expect_equal(remote$host, "api.github.com")
expect_equal(remote$username, "cran")
expect_equal(remote$repo, "falsy")
expect_equal(remote$ref, "HEAD")
expect_equal(remote$subdir, NULL)
expect_true(!is.na(remote$sha) && nzchar(remote$sha))
})
test_that("error if not username, warning if given as argument", {
skip_on_cran()
skip_if_offline()
skip_if_over_rate_limit()
Sys.unsetenv("R_TESTS")
lib <- tempfile()
on.exit(unlink(lib, recursive = TRUE), add = TRUE)
dir.create(lib)
expect_error(
install_github("falsy", lib = lib, quiet = TRUE),
"Invalid git repo specification"
)
})
test_that("remote_download.github_remote messages", {
mockery::stub(remote_download.github_remote, "download", TRUE)
expect_message(
remote_download.github_remote(
list(
host = "api.github.com",
username = "cran",
repo = "falsy",
ref = "HEAD"
)
),
"Downloading GitHub repo"
)
})
test_that("remote_metadata.github_remote", {
expect_equal(
remote_metadata.github_remote(list(), sha = "foobar")$RemoteSha,
"foobar"
)
})
test_that("remote_sha.github_remote", {
skip_on_cran()
skip_if_offline()
skip_if_over_rate_limit()
expect_equal(
remote_sha.github_remote(
list(
username = "cran",
repo = "falsy",
ref = "1.0",
host = "api.github.com"
)
),
"0f39d9eb735bf16909831c0bb129063dda388375"
)
})
test_that("github_remote with deleted branch", {
skip_on_cran()
skip_if_offline()
skip_if_over_rate_limit()
# skip this test unless we are using curl
skip_if(is_standalone() || !pkg_installed("curl"))
expect_equal(
remote_sha.github_remote(
list(
username = "tidyverse",
repo = "purrr",
ref = "rc-0.3.1",
host = "api.github.com"
)
),
NA_character_
)
})
test_that("github_pull", {
if (getRversion() < "4.0.0" && .Platform$OS.type == "windows") {
skip("Does not work on older R on Windows") # why?
}
skip_on_cran()
skip_if_offline()
skip_if_over_rate_limit()
Sys.unsetenv("R_TESTS")
lib <- tempfile()
on.exit(unlink(lib, recursive = TRUE), add = TRUE)
dir.create(lib)
suppressWarnings(install_github(
"r-lib/desc",
ref = github_pull(64),
lib = lib,
quiet = TRUE
))
expect_silent(packageDescription("desc", lib.loc = lib))
expect_equal(
packageDescription("desc", lib.loc = lib)$RemoteRepo,
"desc")
})
test_that("remote_sha.github_remote errors if remote doesn't exist", {
skip_on_cran()
skip_if_offline()
skip_if_over_rate_limit()
expect_error(remote_sha(github_remote("arst/arst")))
})
test_that("remote_sha.github_remote returns expected value if remote does exist", {
skip_on_cran()
skip_if_offline()
skip_if_over_rate_limit()
expect_equal(remote_sha(github_remote("r-lib/devtools@v1.8.0")), "ad9aac7b9a522354e1ff363a86f389e32cec181b")
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.