diff options
Diffstat (limited to 'src/garage/tests')
-rw-r--r-- | src/garage/tests/bucket.rs | 22 | ||||
-rw-r--r-- | src/garage/tests/common/garage.rs | 3 | ||||
-rw-r--r-- | src/garage/tests/s3/streaming_signature.rs | 8 |
3 files changed, 31 insertions, 2 deletions
diff --git a/src/garage/tests/bucket.rs b/src/garage/tests/bucket.rs index b32af068..9c363013 100644 --- a/src/garage/tests/bucket.rs +++ b/src/garage/tests/bucket.rs @@ -1,4 +1,5 @@ use crate::common; +use crate::common::ext::CommandExt; use aws_sdk_s3::model::BucketLocationConstraint; use aws_sdk_s3::output::DeleteBucketOutput; @@ -8,6 +9,27 @@ async fn test_bucket_all() { let bucket_name = "hello"; { + // Check bucket cannot be created if not authorized + ctx.garage + .command() + .args(["key", "deny"]) + .args(["--create-bucket", &ctx.garage.key.id]) + .quiet() + .expect_success_output("Could not deny key to create buckets"); + + // Try create bucket, should fail + let r = ctx.client.create_bucket().bucket(bucket_name).send().await; + assert!(r.is_err()); + } + { + // Now allow key to create bucket + ctx.garage + .command() + .args(["key", "allow"]) + .args(["--create-bucket", &ctx.garage.key.id]) + .quiet() + .expect_success_output("Could not deny key to create buckets"); + // Create bucket //@TODO check with an invalid bucket name + with an already existing bucket let r = ctx diff --git a/src/garage/tests/common/garage.rs b/src/garage/tests/common/garage.rs index a539abb7..dbebe5b1 100644 --- a/src/garage/tests/common/garage.rs +++ b/src/garage/tests/common/garage.rs @@ -172,8 +172,7 @@ api_bind_addr = "127.0.0.1:{admin_port}" let output = self .command() - .args(["key", "new"]) - .args(["--name", name]) + .args(["key", "create", name]) .expect_success_output("Could not create key"); let stdout = String::from_utf8(output.stdout).unwrap(); diff --git a/src/garage/tests/s3/streaming_signature.rs b/src/garage/tests/s3/streaming_signature.rs index c68f7dfc..48da7607 100644 --- a/src/garage/tests/s3/streaming_signature.rs +++ b/src/garage/tests/s3/streaming_signature.rs @@ -1,6 +1,7 @@ use std::collections::HashMap; use crate::common; +use crate::common::ext::CommandExt; use common::custom_requester::BodySignature; use hyper::Method; @@ -105,6 +106,13 @@ async fn test_create_bucket_streaming() { let ctx = common::context(); let bucket = "createbucket-streaming"; + ctx.garage + .command() + .args(["key", "allow"]) + .args(["--create-bucket", &ctx.garage.key.id]) + .quiet() + .expect_success_output("Could not allow key to create buckets"); + { // create bucket let _ = ctx |