use assert_cmd::prelude::*;
use std::io::Write;
use std::process::Command;
use tempfile::NamedTempFile;
#[test]
fn prune_help() -> Result<(), Box<dyn std::error::Error>> {
let mut cmd = Command::cargo_bin("osc")?;
cmd.arg("object-store")
.arg("container")
.arg("prune")
.arg("--help");
cmd.assert().success();
Ok(())
}
#[tokio::test]
async fn container_prune_roundtrip() -> Result<(), Box<dyn std::error::Error>> {
skip_without_extension!("network", "security-groups-default-rules");
let container_name = "sdk-dummy-container";
let object_name = "dummy-object";
let mut file = NamedTempFile::new()?;
file.write_all(b"SDK dummy content")?;
Command::cargo_bin("osc")?
.arg("object-store")
.arg("container")
.arg("create")
.arg(container_name)
.assert()
.success();
Command::cargo_bin("osc")?
.arg("object-store")
.arg("object")
.arg("upload")
.arg(container_name)
.arg(object_name)
.arg("--file")
.arg(file.path())
.assert()
.success();
Command::cargo_bin("osc")?
.arg("object-store")
.arg("container")
.arg("prune")
.arg(container_name)
.arg("--prefix")
.arg(object_name)
.assert()
.success();
Command::cargo_bin("osc")?
.arg("object-store")
.arg("container")
.arg("delete")
.arg(container_name)
.assert()
.success();
Ok(())
}