mirror of
https://github.com/astral-sh/uv.git
synced 2025-07-18 18:55:03 +00:00

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.
75 lines
1.9 KiB
Rust
75 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(())
|
|
}
|