context("Authenticated s3HTTP tests")
requireNamespace("httr")
test_that("Simple GET bucket call to s3HTTP returns status code 200", {
r <- s3HTTP(verb = "GET",
bucket = 'hpk',
region = "us-east-1",
key = Sys.getenv("TRAVIS_AWS_ACCESS_KEY_ID"),
secret = Sys.getenv("TRAVIS_AWS_SECRET_ACCESS_KEY"),
parse_response = FALSE)
expect_equal(httr::status_code(r), 200L)
r2 <- s3HTTP(verb = "GET",
bucket = 'hpk',
key = Sys.getenv("TRAVIS_AWS_ACCESS_KEY_ID"),
secret = Sys.getenv("TRAVIS_AWS_SECRET_ACCESS_KEY"))
})
test_that("GET bucket call to s3HTTP using query parameters", {
r2 <- s3HTTP(verb = "GET",
bucket = 'hpk',
query = list("max-keys" = "2", prefix="index"),
key = Sys.getenv("TRAVIS_AWS_ACCESS_KEY_ID"),
secret = Sys.getenv("TRAVIS_AWS_SECRET_ACCESS_KEY"),
parse_response = FALSE)
expect_equal(httr::status_code(r2), 200L)
})
test_that("Simple GET object call to s3HTTP returns code 200", {
r <- s3HTTP(verb = "GET",
bucket = 'hpk',
path = "/robots.txt",
region = "us-east-1",
key = Sys.getenv("TRAVIS_AWS_ACCESS_KEY_ID"),
secret = Sys.getenv("TRAVIS_AWS_SECRET_ACCESS_KEY"),
parse_response = FALSE)
expect_equal(httr::status_code(r), 200L)
## Should be response object even if we don't ask for parsing, since we cannot assume how to parse robots.txt
r <- s3HTTP(verb = "GET",
bucket = 'hpk',
path = "/robots.txt",
region = "us-east-1",
key = Sys.getenv("TRAVIS_AWS_ACCESS_KEY_ID"),
secret = Sys.getenv("TRAVIS_AWS_SECRET_ACCESS_KEY"))
expect_equal(httr::status_code(r), 200L)
})
test_that("PUT works", {
tmp <- tempfile(fileext = ".txt")
writeLines(c("cloudyr", "test"), tmp)
p <- s3HTTP(verb = "PUT",
path = paste0("/", basename(tmp)),
bucket = 'hpk',
headers = list(`Content-Length` = file.size(tmp)),
request_body = tmp,
key = Sys.getenv("TRAVIS_AWS_ACCESS_KEY_ID"),
secret = Sys.getenv("TRAVIS_AWS_SECRET_ACCESS_KEY"),
parse_response = FALSE
)
expect_equal(httr::status_code(p), 200L)
p <- s3HTTP(verb = "DELETE",
path = paste0("/", basename(tmp)),
bucket = 'hpk',
key = Sys.getenv("TRAVIS_AWS_ACCESS_KEY_ID"),
secret = Sys.getenv("TRAVIS_AWS_SECRET_ACCESS_KEY"),
parse_response = FALSE
)
# expect_equal(httr::status_code(p), 200L)
## Currently doesn't return a response object even when asked not to parse
expect_true(p)
unlink(tmp)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.