Nothing
skip_if_not(localstack_available(), "LocalStack Not Available")
Sys.setenv(AWS_PROFILE = "localstack")
buckets_empty()
test_that("aws_s3_policy_doc_create", {
bucket <- random_bucket()
doc <- aws_s3_policy_doc_create(
bucket = bucket,
action = s3_actions_read(),
resource = bucket_arn(bucket)
)
expect_s3_class(doc, "json")
expect_type(unclass(doc), "character")
expect_identical(
jsonlite::fromJSON(doc)$Statement$Action[[1]],
s3_actions_read()
)
expect_equal(
jsonlite::fromJSON(doc)$Version,
"2012-10-17" # hard-coded version doc number #nolint
)
})
test_that("six_bucket_add_user - failure behavior", {
expect_error(
six_bucket_add_user(
bucket = "mybucket",
username = "sam",
permissions = "notavalidpermission"
),
"permissions must be one of"
)
expect_error(
six_bucket_add_user(
bucket = "mybucket",
username = "sam",
permissions = c("read", "write")
),
"permissions must be length 1"
)
})
test_that("six_bucket_add_user", {
user_name <- random_user()
withr::with_envvar(
c("AWS_PROFILE" = "localstack"),
the_user <- aws_user_create(user_name)
)
bucket_name <- random_bucket()
withr::with_envvar(
c("AWS_PROFILE" = "localstack"),
aws_bucket_create(bucket_name)
)
withr::with_envvar(
c("AWS_PROFILE" = "localstack"),
{
withr::with_options(
list(cli.default_handler = function(...) {
}),
{
user_added <- six_bucket_add_user(
bucket = bucket_name,
username = user_name,
permissions = "read"
)
}
)
}
)
expect_null(user_added)
# cleanup
policy_name <- bucket_to_policy_name(bucket_name, "read")
withr::with_envvar(
c("AWS_PROFILE" = "localstack"),
{
if (aws_user_exists(user_name)) {
aws_user(user_name) %>%
aws_policy_detach(policy_name)
aws_user_delete(user_name)
}
if (aws_policy_exists(policy_name)) {
aws_policy_delete(policy_name)
}
if (aws_bucket_exists(bucket_name)) {
aws_bucket_delete(bucket_name, force = TRUE)
}
}
)
})
test_that("six_bucket_permissions", {
expect_error(six_bucket_permissions("asdf"), "does not exist")
user1 <- random_user()
user2 <- random_user()
withr::with_envvar(
c("AWS_PROFILE" = "localstack"),
{
aws_user_create(user1)
aws_user_create(user2)
}
)
bucket_name <- random_bucket()
withr::with_envvar(
c("AWS_PROFILE" = "localstack"),
aws_bucket_create(bucket_name)
)
withr::with_envvar(
c("AWS_PROFILE" = "localstack"),
{
withr::with_options(
list(cli.default_handler = function(...) {
}),
{
six_bucket_add_user(
bucket = bucket_name,
username = user1,
permissions = "read"
)
six_bucket_add_user(
bucket = bucket_name,
username = user2,
permissions = "read"
)
}
)
}
)
withr::with_envvar(
c("AWS_PROFILE" = "localstack"),
res <- six_bucket_permissions(bucket_name)
)
expect_s3_class(res, "tbl")
# cleanup
withr::with_envvar(
c("AWS_PROFILE" = "localstack"),
{
if (aws_user_exists(user1)) {
withr::with_options(
list(cli.default_handler = function(...) {
}),
six_user_delete(user1)
)
}
if (aws_user_exists(user2)) {
withr::with_options(
list(cli.default_handler = function(...) {
}),
six_user_delete(user2)
)
}
if (aws_bucket_exists(bucket_name)) {
aws_bucket_delete(bucket_name, force = TRUE)
}
}
)
})
test_that("six_bucket_remove_user", {
user_name <- random_user()
withr::with_envvar(
c("AWS_PROFILE" = "localstack"),
{
aws_user_create(user_name)
}
)
bucket_name <- random_bucket()
withr::with_envvar(
c("AWS_PROFILE" = "localstack"),
{
aws_bucket_create(bucket_name)
}
)
withr::with_envvar(
c("AWS_PROFILE" = "localstack"),
{
withr::with_options(
list(cli.default_handler = function(...) {
}),
{
six_bucket_add_user(
bucket = bucket_name,
username = user_name,
permissions = "read"
)
}
)
}
)
withr::with_envvar(
c("AWS_PROFILE" = "localstack"),
{
withr::with_options(
list(cli.default_handler = function(...) {
}),
{
user_removed <- six_bucket_remove_user(
bucket = bucket_name,
username = user_name
)
}
)
}
)
expect_null(user_removed)
# cleanup
policy_name <- bucket_to_policy_name(bucket_name, "read")
withr::with_envvar(
c("AWS_PROFILE" = "localstack"),
{
if (aws_user_exists(user_name)) {
withr::with_options(
list(cli.default_handler = function(...) {
}),
six_user_delete(user_name)
)
}
if (aws_policy_exists(policy_name)) {
aws_policy_delete(policy_name)
}
if (aws_bucket_exists(bucket_name)) {
aws_bucket_delete(bucket_name, force = TRUE)
}
}
)
})
# cleanup
buckets_empty()
Sys.unsetenv("AWS_PROFILE")
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.