Skip to content

Commit ee2208b

Browse files
test updates
Signed-off-by: Mikayla Thompson <[email protected]>
1 parent 80684c0 commit ee2208b

File tree

2 files changed

+29
-85
lines changed

2 files changed

+29
-85
lines changed

crates/uv-client/src/registry_client.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,6 @@ impl<'a> RegistryClientBuilder<'a> {
8282
}
8383

8484
/// Set a pre-download hook from a [`PreDownloadHook`].
85-
/// This is useful when you already have a `PreDownloadHook` and want to avoid wrapping it again.
8685
#[must_use]
8786
pub fn pre_download_hook_arc(mut self, hook: Option<PreDownloadHook>) -> Self {
8887
self.pre_download_hook = hook;

crates/uv/tests/it/tool_run.rs

Lines changed: 29 additions & 84 deletions
Original file line numberDiff line numberDiff line change
@@ -3165,11 +3165,12 @@ fn tool_run_windows_dotted_package_name() -> anyhow::Result<()> {
31653165

31663166
/// Test that tool install confirmation prompt is shown when preview flag is enabled.
31673167
#[test]
3168-
fn tool_run_install_confirmation_preview_enabled() -> anyhow::Result<()> {
3168+
#[ignore = "I haven't figure out a way to fake a run in tty mode and therefore receive the real prompt"]
3169+
fn tool_run_install_confirmation() -> anyhow::Result<()> {
31693170
use std::io::Write;
31703171
use std::process::Stdio;
31713172

3172-
let context = TestContext::new("3.12");
3173+
let context = TestContext::new("3.14");
31733174
let tool_dir = context.temp_dir.child("tools");
31743175
let bin_dir = context.temp_dir.child("bin");
31753176

@@ -3184,7 +3185,7 @@ fn tool_run_install_confirmation_preview_enabled() -> anyhow::Result<()> {
31843185
let mut cmd = context.tool_run();
31853186
cmd.arg("--preview-features")
31863187
.arg("tool-install-confirmation")
3187-
.arg("iniconfig")
3188+
.arg("isort")
31883189
.arg("--version")
31893190
.env(EnvVars::UV_TOOL_DIR, tool_dir.as_os_str())
31903191
.env(EnvVars::XDG_BIN_HOME, bin_dir.as_os_str())
@@ -3212,7 +3213,7 @@ fn tool_run_install_confirmation_preview_enabled() -> anyhow::Result<()> {
32123213
"Should show confirmation prompt"
32133214
);
32143215
assert!(
3215-
stderr.contains("iniconfig"),
3216+
stderr.contains("ruff"),
32163217
"Should show package name in prompt"
32173218
);
32183219
assert!(
@@ -3275,32 +3276,27 @@ fn tool_run_install_confirmation_approve_all_flag() -> anyhow::Result<()> {
32753276
.arg("--preview-features")
32763277
.arg("tool-install-confirmation")
32773278
.arg("--approve-all-tool-installs")
3278-
.arg("black")
3279+
.arg("ruff")
32793280
.arg("--version")
32803281
.env(EnvVars::UV_TOOL_DIR, tool_dir.as_os_str())
32813282
.env(EnvVars::XDG_BIN_HOME, bin_dir.as_os_str()), @r###"
32823283
success: true
32833284
exit_code: 0
32843285
----- stdout -----
3285-
black, [VERSION] (compiled: yes)
3286-
Python (CPython) 3.12.[X]
3286+
ruff 0.3.4
32873287
32883288
----- stderr -----
3289-
Resolved [N] packages in [TIME]
3290-
Prepared [N] packages in [TIME]
3291-
Installed [N] packages in [TIME]
3292-
+ black==[VERSION]
3289+
Resolved 1 package in [TIME]
3290+
Prepared 1 package in [TIME]
3291+
Installed 1 package in [TIME]
3292+
+ ruff==0.3.4
32933293
"###);
32943294

32953295
Ok(())
32963296
}
32973297

32983298
/// Test that tool install confirmation is skipped when approve-all-tool-installs is set via config.
32993299
#[test]
3300-
#[cfg_attr(
3301-
windows,
3302-
ignore = "Configuration tests are not yet supported on Windows"
3303-
)]
33043300
fn tool_run_install_confirmation_approve_all_config() -> anyhow::Result<()> {
33053301
let context = TestContext::new("3.12");
33063302
let tool_dir = context.temp_dir.child("tools");
@@ -3317,22 +3313,21 @@ fn tool_run_install_confirmation_approve_all_config() -> anyhow::Result<()> {
33173313
uv_snapshot!(context.filters(), context.tool_run()
33183314
.arg("--preview-features")
33193315
.arg("tool-install-confirmation")
3320-
.arg("black")
3316+
.arg("ruff")
33213317
.arg("--version")
33223318
.env(EnvVars::UV_TOOL_DIR, tool_dir.as_os_str())
33233319
.env(EnvVars::XDG_BIN_HOME, bin_dir.as_os_str())
33243320
.env(EnvVars::XDG_CONFIG_HOME, context.temp_dir.as_os_str()), @r###"
33253321
success: true
33263322
exit_code: 0
33273323
----- stdout -----
3328-
black, [VERSION] (compiled: yes)
3329-
Python (CPython) 3.12.[X]
3324+
ruff 0.3.4
33303325
33313326
----- stderr -----
3332-
Resolved [N] packages in [TIME]
3333-
Prepared [N] packages in [TIME]
3334-
Installed [N] packages in [TIME]
3335-
+ iniconfig==[VERSION]
3327+
Resolved 1 package in [TIME]
3328+
Prepared 1 package in [TIME]
3329+
Installed 1 package in [TIME]
3330+
+ ruff==0.3.4
33363331
"###);
33373332

33383333
Ok(())
@@ -3359,9 +3354,9 @@ fn tool_run_install_confirmation_top_packages_heuristic() -> anyhow::Result<()>
33593354
ruff 0.3.4
33603355
33613356
----- stderr -----
3362-
Resolved 1 packages in [TIME]
3363-
Prepared 1 packages in [TIME]
3364-
Installed 1 packages in [TIME]
3357+
Resolved 1 package in [TIME]
3358+
Prepared 1 package in [TIME]
3359+
Installed 1 package in [TIME]
33653360
+ ruff==0.3.4
33663361
"###);
33673362

@@ -3404,8 +3399,9 @@ fn tool_run_install_confirmation_reasoning_top_packages() -> anyhow::Result<()>
34043399
);
34053400

34063401
let stderr = String::from_utf8_lossy(&output.stderr);
3402+
34073403
assert!(
3408-
stderr.contains("is not in a top python package"),
3404+
stderr.contains("is not a top python package"),
34093405
"Should show reasoning about top-packages"
34103406
);
34113407

@@ -3485,10 +3481,7 @@ fn tool_run_install_confirmation_non_tty() -> anyhow::Result<()> {
34853481

34863482
/// Test that tool install confirmation can be cancelled.
34873483
#[test]
3488-
#[cfg_attr(
3489-
windows,
3490-
ignore = "Interactive prompt tests are not yet supported on Windows"
3491-
)]
3484+
#[ignore = "I haven't figure out a way to fake a run in tty mode and therefore receive the real prompt"]
34923485
fn tool_run_install_confirmation_cancelled() -> anyhow::Result<()> {
34933486
use std::io::Write;
34943487
use std::process::Stdio;
@@ -3501,7 +3494,7 @@ fn tool_run_install_confirmation_cancelled() -> anyhow::Result<()> {
35013494
let mut cmd = context.tool_run();
35023495
cmd.arg("--preview-features")
35033496
.arg("tool-install-confirmation")
3504-
.arg("ruff")
3497+
.arg("unusual-python-package")
35053498
.arg("--version")
35063499
.env(EnvVars::UV_TOOL_DIR, tool_dir.as_os_str())
35073500
.env(EnvVars::XDG_BIN_HOME, bin_dir.as_os_str())
@@ -3531,54 +3524,6 @@ fn tool_run_install_confirmation_cancelled() -> anyhow::Result<()> {
35313524
Ok(())
35323525
}
35333526

3534-
/// Test that heuristics can be disabled via config.
3535-
#[test]
3536-
#[cfg_attr(
3537-
windows,
3538-
ignore = "Configuration tests are not yet supported on Windows"
3539-
)]
3540-
fn tool_run_install_confirmation_no_heuristics() -> anyhow::Result<()> {
3541-
let context = TestContext::new("3.12");
3542-
let tool_dir = context.temp_dir.child("tools");
3543-
let bin_dir = context.temp_dir.child("bin");
3544-
3545-
// Create uv.toml with empty heuristics list
3546-
let config = context.temp_dir.child("uv.toml");
3547-
config.write_str(indoc::indoc! {r#"
3548-
approve-all-heuristics = []
3549-
"#})?;
3550-
3551-
// Run with preview enabled - should prompt even for top packages since heuristics are disabled
3552-
uv_snapshot!(context.filters(), context.tool_run()
3553-
.arg("--preview-features")
3554-
.arg("tool-install-confirmation")
3555-
.arg("ruff")
3556-
.arg("--version")
3557-
.env(EnvVars::UV_TOOL_DIR, tool_dir.as_os_str())
3558-
.env(EnvVars::XDG_BIN_HOME, bin_dir.as_os_str())
3559-
.env(EnvVars::XDG_CONFIG_HOME, context.temp_dir.as_os_str()), @r###"
3560-
success: true
3561-
exit_code: 0
3562-
----- stdout -----
3563-
ruff [VERSION]
3564-
3565-
----- stderr -----
3566-
This tool is provided by the following package:
3567-
3568-
+ ruff
3569-
3570-
This package is not currently installed.
3571-
Non-interactive mode: installation will proceed automatically.
3572-
Resolved [N] packages in [TIME]
3573-
Prepared [N] packages in [TIME]
3574-
Installed [N] packages in [TIME]
3575-
+ ruff==[VERSION]
3576-
"###);
3577-
3578-
Ok(())
3579-
}
3580-
3581-
/// Test that tool install confirmation shows message in non-TTY mode with reasoning.
35823527
#[test]
35833528
fn tool_run_install_confirmation_tool_from_package() -> anyhow::Result<()> {
35843529
let context = TestContext::new("3.12");
@@ -3594,19 +3539,19 @@ fn tool_run_install_confirmation_tool_from_package() -> anyhow::Result<()> {
35943539
.arg("--version")
35953540
.env(EnvVars::UV_TOOL_DIR, tool_dir.as_os_str())
35963541
.env(EnvVars::XDG_BIN_HOME, bin_dir.as_os_str()), @r###"
3597-
success: true
3598-
exit_code: 0
3542+
success: false
3543+
exit_code: 1
35993544
----- stdout -----
36003545
36013546
----- stderr -----
36023547
This tool is provided by the following package:
36033548
36043549
+ a-very-unpopular-python-package
36053550
3606-
This package is not currently installed and is not in a top python package.
3551+
This package is not currently installed and is not a top python package.
36073552
Non-interactive mode: installation will proceed automatically.
3608-
× No solution found when resolving tool dependencies:
3609-
╰─▶ Because a-very-unpopular-python-package was not found in the package registry and you require a-very-unpopular-python-package, we can conclude that your requirements are unsatisfiable.
3553+
× No solution found when resolving tool dependencies:
3554+
╰─▶ Because a-very-unpopular-python-package was not found in the package registry and you require a-very-unpopular-python-package, we can conclude that your requirements are unsatisfiable.
36103555
"###);
36113556

36123557
Ok(())

0 commit comments

Comments
 (0)