Organize test code better
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
use std::fs;
|
||||
use std::process::Command;
|
||||
|
||||
use tempfile::TempDir;
|
||||
|
||||
pub fn sandbox_withconfig(extra_args: &[&str]) -> Command {
|
||||
let mut cmd = Command::new(env!("CARGO_BIN_EXE_agent-sandbox"));
|
||||
cmd.args(extra_args);
|
||||
cmd
|
||||
}
|
||||
|
||||
pub fn sandbox(extra_args: &[&str]) -> Command {
|
||||
let mut cmd = sandbox_withconfig(&["--no-config"]);
|
||||
cmd.args(extra_args);
|
||||
cmd
|
||||
}
|
||||
|
||||
pub struct ConfigFile {
|
||||
_dir: TempDir,
|
||||
path: String,
|
||||
}
|
||||
|
||||
impl ConfigFile {
|
||||
pub fn new(content: &str) -> Self {
|
||||
let dir = TempDir::new().unwrap();
|
||||
let path = dir.path().join("config.toml");
|
||||
fs::write(&path, content).expect("failed to write config");
|
||||
Self {
|
||||
_dir: dir,
|
||||
path: path.to_str().unwrap().to_string(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl std::ops::Deref for ConfigFile {
|
||||
type Target = str;
|
||||
fn deref(&self) -> &str {
|
||||
&self.path
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user