3549d9638e
Right now, we're inconsistent between checking in and inlining these. The outputs are small in Puffin, so let's just inline them in all cases.
76 lines
1.9 KiB
Rust
76 lines
1.9 KiB
Rust
#![cfg(feature = "python")]
|
|
|
|
use std::process::Command;
|
|
|
|
use anyhow::Result;
|
|
use assert_fs::prelude::*;
|
|
use insta_cmd::_macro_support::insta;
|
|
use insta_cmd::{assert_cmd_snapshot, get_cargo_bin};
|
|
|
|
use common::BIN_NAME;
|
|
|
|
mod common;
|
|
|
|
#[test]
|
|
fn create_venv() -> Result<()> {
|
|
let temp_dir = assert_fs::TempDir::new()?;
|
|
let venv = temp_dir.child(".venv");
|
|
|
|
insta::with_settings!({
|
|
filters => vec![
|
|
(r"Using Python 3\.\d+\.\d+ at .+", "Using Python [VERSION] at [PATH]"),
|
|
(temp_dir.to_str().unwrap(), "/home/ferris/project"),
|
|
]
|
|
}, {
|
|
assert_cmd_snapshot!(Command::new(get_cargo_bin(BIN_NAME))
|
|
.arg("venv")
|
|
.arg(venv.as_os_str())
|
|
.arg("--python")
|
|
.arg("python3.12")
|
|
.current_dir(&temp_dir), @r###"
|
|
success: true
|
|
exit_code: 0
|
|
----- stdout -----
|
|
|
|
----- stderr -----
|
|
Using Python [VERSION] at [PATH]
|
|
Creating virtual environment at: /home/ferris/project/.venv
|
|
"###);
|
|
});
|
|
|
|
venv.assert(predicates::path::is_dir());
|
|
|
|
Ok(())
|
|
}
|
|
|
|
#[test]
|
|
fn create_venv_defaults_to_cwd() -> Result<()> {
|
|
let temp_dir = assert_fs::TempDir::new()?;
|
|
let venv = temp_dir.child(".venv");
|
|
|
|
insta::with_settings!({
|
|
filters => vec![
|
|
(r"Using Python 3\.\d+\.\d+ at .+", "Using Python [VERSION] at [PATH]"),
|
|
(temp_dir.to_str().unwrap(), "/home/ferris/project"),
|
|
]
|
|
}, {
|
|
assert_cmd_snapshot!(Command::new(get_cargo_bin(BIN_NAME))
|
|
.arg("venv")
|
|
.arg("--python")
|
|
.arg("python3.12")
|
|
.current_dir(&temp_dir), @r###"
|
|
success: true
|
|
exit_code: 0
|
|
----- stdout -----
|
|
|
|
----- stderr -----
|
|
Using Python [VERSION] at [PATH]
|
|
Creating virtual environment at: .venv
|
|
"###);
|
|
});
|
|
|
|
venv.assert(predicates::path::is_dir());
|
|
|
|
Ok(())
|
|
}
|