Fix `uv python upgrade / install` output when there is a no-op for one request (#16158)

This commit is contained in:
Zanie Blue 2025-10-07 13:39:28 -05:00 committed by GitHub
parent 9214855109
commit 61b8eae08a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 30 additions and 16 deletions

View File

@ -551,19 +551,28 @@ pub(crate) async fn install(
printer.stderr(),
"There are no installed versions to upgrade"
)?;
} else if requests.len() > 1 {
} else if upgrade && is_unspecified_upgrade {
writeln!(
printer.stderr(),
"All versions already on latest supported patch release"
)?;
} else if let [request] = requests.as_slice() {
// Convert to the inner request
let request = &request.request;
if upgrade {
if is_unspecified_upgrade {
writeln!(
printer.stderr(),
"All versions already on latest supported patch release"
)?;
} else {
writeln!(
printer.stderr(),
"All requested versions already on latest supported patch release"
)?;
}
writeln!(
printer.stderr(),
"{request} is already on the latest supported patch release"
)?;
} else {
writeln!(printer.stderr(), "{request} is already installed")?;
}
} else {
if upgrade {
writeln!(
printer.stderr(),
"All requested versions already on latest supported patch release"
)?;
} else {
writeln!(printer.stderr(), "All requested versions already installed")?;
}

View File

@ -88,13 +88,14 @@ fn python_install() {
"###);
// Similarly, when a requested version is already installed
uv_snapshot!(context.filters(), context.python_install().arg("3.13"), @r###"
uv_snapshot!(context.filters(), context.python_install().arg("3.13"), @r"
success: true
exit_code: 0
----- stdout -----
----- stderr -----
"###);
Python 3.13 is already installed
");
// You can opt-in to a reinstall
uv_snapshot!(context.filters(), context.python_install().arg("3.13").arg("--reinstall"), @r"
@ -716,6 +717,7 @@ fn python_install_preview() {
----- stdout -----
----- stderr -----
Python 3.13 is already installed
");
uv_snapshot!(context.filters(), context.python_install().arg("--preview").arg("3.13").env(EnvVars::UV_PYTHON_INSTALL_BIN, "0"), @r"
success: true
@ -723,6 +725,7 @@ fn python_install_preview() {
----- stdout -----
----- stderr -----
Python 3.13 is already installed
");
uv_snapshot!(context.filters(), context.python_install().arg("--preview").arg("--force").arg("3.13"), @r"
@ -2596,13 +2599,14 @@ fn python_install_no_cache() {
"###);
// Similarly, when a requested version is already installed
uv_snapshot!(context.filters(), context.python_install().arg("3.13"), @r###"
uv_snapshot!(context.filters(), context.python_install().arg("3.13"), @r"
success: true
exit_code: 0
----- stdout -----
----- stderr -----
"###);
Python 3.13 is already installed
");
// You can opt-in to a reinstall
uv_snapshot!(context.filters(), context.python_install().arg("3.13").arg("--reinstall"), @r"

View File

@ -51,6 +51,7 @@ fn python_upgrade() {
----- stdout -----
----- stderr -----
Python 3.10 is already on the latest supported patch release
");
// Should reinstall on `--reinstall`