diff --git a/crates/uv/tests/it/python_install.rs b/crates/uv/tests/it/python_install.rs index f18a9e94e..8ef9e0b7a 100644 --- a/crates/uv/tests/it/python_install.rs +++ b/crates/uv/tests/it/python_install.rs @@ -3,8 +3,9 @@ use std::{env, path::Path, process::Command}; use crate::common::{TestContext, uv_snapshot}; use assert_fs::{ assert::PathAssert, - prelude::{FileTouch, PathChild, PathCreateDir}, + prelude::{FileTouch, FileWriteStr, PathChild, PathCreateDir}, }; +use indoc::indoc; use predicates::prelude::predicate; use tracing::debug; use uv_fs::Simplified; @@ -286,6 +287,41 @@ fn python_install_automatic() { } } +/// Regression test for a bad cpython runtime +/// +#[test] +fn regression_cpython() { + let context: TestContext = TestContext::new_with_versions(&[]) + .with_filtered_python_keys() + .with_filtered_exe_suffix() + .with_filtered_python_sources() + .with_managed_python_dirs(); + + let init = context.temp_dir.child("mre.py"); + init.write_str(indoc! { r#" + class Foo(str): ... + + a = [] + new_value = Foo("1") + a += new_value + "# + }) + .unwrap(); + + // We should respect the Python request + uv_snapshot!(context.filters(), context.run() + .env_remove("VIRTUAL_ENV") + .arg("-p").arg("3.12") + .arg("mre.py"), @r###" + success: true + exit_code: 0 + ----- stdout ----- + + ----- stderr ----- + + "###); +} + #[test] fn python_install_preview() { let context: TestContext = TestContext::new_with_versions(&[]) diff --git a/crates/uv/tests/it/run.rs b/crates/uv/tests/it/run.rs index 16fad23f1..d778da8ba 100644 --- a/crates/uv/tests/it/run.rs +++ b/crates/uv/tests/it/run.rs @@ -3389,34 +3389,6 @@ fn run_script_module_conflict() -> Result<()> { Ok(()) } -/// Regression test for a bad cpython runtime -/// -#[test] -fn regression_cpython_runtime() -> Result<()> { - let context = TestContext::new("3.12"); - - let init = context.temp_dir.child("mre.py"); - init.write_str(indoc! { r#" - class Foo(str): ... - - a = [] - new_value = Foo("1") - a += new_value - "# - })?; - - uv_snapshot!(context.filters(), context.run() - .arg("-p").arg("3.12") - .arg("mre.py"), @r" - success: true - exit_code: 0 - ----- stdout ----- - - ----- stderr ----- - "); - Ok(()) -} - #[test] fn run_script_explicit() -> Result<()> { let context = TestContext::new("3.12");