diff options
author | Jill <kokakiwi@deuxfleurs.fr> | 2022-02-04 17:55:54 +0100 |
---|---|---|
committer | Jill <kokakiwi@deuxfleurs.fr> | 2022-02-10 17:55:50 +0100 |
commit | d7decda3f4423602e2a8064fa398181736b3a3ab (patch) | |
tree | f8b8ee686989bc987e036d47a897864016c7656e /src/garage/tests/common | |
parent | cd13ea461b5e6011ddda28c4923260315d67482a (diff) | |
download | garage-d7decda3f4423602e2a8064fa398181736b3a3ab.tar.gz garage-d7decda3f4423602e2a8064fa398181736b3a3ab.zip |
garage(tests): Add random suffix to created buckets.
Diffstat (limited to 'src/garage/tests/common')
-rw-r--r-- | src/garage/tests/common/mod.rs | 14 | ||||
-rw-r--r-- | src/garage/tests/common/util.rs | 13 |
2 files changed, 24 insertions, 3 deletions
diff --git a/src/garage/tests/common/mod.rs b/src/garage/tests/common/mod.rs index b5f7f0b2..c40fde0f 100644 --- a/src/garage/tests/common/mod.rs +++ b/src/garage/tests/common/mod.rs @@ -7,6 +7,7 @@ pub mod macros; pub mod client; pub mod ext; pub mod garage; +pub mod util; const REGION: Region = Region::from_static("garage-integ-test"); @@ -23,20 +24,27 @@ impl Context { Context { garage, client } } - pub fn create_bucket(&self, name: &str) { + /// Create an unique bucket with a random suffix. + /// + /// Return the created bucket full name. + pub fn create_bucket(&self, name: &str) -> String { + let bucket_name = format!("{}-{}", name, util::random_id(6)); + self.garage .command() - .args(["bucket", "create", name]) + .args(["bucket", "create", &bucket_name]) .quiet() .expect_success_status("Could not create bucket"); self.garage .command() .args(["bucket", "allow"]) .args(["--owner", "--read", "--write"]) - .arg(name) + .arg(&bucket_name) .args(["--key", &self.garage.key.name]) .quiet() .expect_success_status("Could not allow key for bucket"); + + bucket_name } } diff --git a/src/garage/tests/common/util.rs b/src/garage/tests/common/util.rs new file mode 100644 index 00000000..49c72879 --- /dev/null +++ b/src/garage/tests/common/util.rs @@ -0,0 +1,13 @@ +pub fn random_id(len: usize) -> String { + use rand::distributions::Slice; + use rand::Rng; + + static ALPHABET: &[u8] = b"abcdefghijklmnopqrstuvwxyz0123456789."; + + let rng = rand::thread_rng(); + rng.sample_iter(Slice::new(ALPHABET).unwrap()) + .map(|b| char::from(*b)) + .filter(|c| c.is_ascii_lowercase() || c.is_ascii_digit()) + .take(len) + .collect() +} |