Skip to content

Commit df5066d

Browse files
committed
A confirming test (should revert after test passed)
1 parent 319b3b4 commit df5066d

File tree

4 files changed

+127
-2
lines changed

4 files changed

+127
-2
lines changed

Cargo.lock

Lines changed: 41 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/uv-cache/src/cli.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
use std::ffi::c_float;
21
use std::io;
32
use std::path::{Path, PathBuf};
43

crates/uv-tool/Cargo.toml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,3 +33,7 @@ thiserror = { workspace = true }
3333
toml = { workspace = true }
3434
toml_edit = { workspace = true }
3535
tracing = { workspace = true }
36+
37+
[dev-dependencies]
38+
directories = "5.0.1"
39+
dirs-sys = "0.4.1"

crates/uv-tool/src/lib.rs

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -458,3 +458,85 @@ pub fn entrypoint_paths(
458458

459459
Ok(entrypoints)
460460
}
461+
462+
#[cfg(test)]
463+
mod tests {
464+
use etcetera::BaseStrategy;
465+
use std::path::PathBuf;
466+
467+
fn dirs_before() -> (PathBuf, PathBuf, PathBuf, PathBuf) {
468+
let data_dir = directories::ProjectDirs::from("", "", "uv")
469+
.unwrap()
470+
.data_dir()
471+
.to_path_buf();
472+
473+
let cache_dir = directories::ProjectDirs::from("", "", "uv")
474+
.unwrap()
475+
.cache_dir()
476+
.to_path_buf();
477+
478+
let config_dir = {
479+
// On Windows, use, e.g., C:\Users\Alice\AppData\Roaming
480+
#[cfg(windows)]
481+
{
482+
dirs_sys::known_folder_roaming_app_data()
483+
}
484+
// On Linux and macOS, use, e.g., /home/alice/.config.
485+
#[cfg(not(windows))]
486+
{
487+
std::env::var_os("XDG_CONFIG_HOME")
488+
.and_then(dirs_sys::is_absolute_path)
489+
.or_else(|| dirs_sys::home_dir().map(|path| path.join(".config")))
490+
}
491+
};
492+
493+
let home_dir = {
494+
#[cfg(windows)]
495+
{
496+
dirs_sys::known_folder_profile()
497+
}
498+
#[cfg(not(windows))]
499+
{
500+
dirs_sys::home_dir()
501+
}
502+
};
503+
504+
(data_dir, cache_dir, config_dir.unwrap(), home_dir.unwrap())
505+
}
506+
507+
fn dirs_after() -> (PathBuf, PathBuf, PathBuf, PathBuf) {
508+
let data_dir = etcetera::base_strategy::choose_native_strategy()
509+
.unwrap()
510+
.data_dir()
511+
.join("uv");
512+
let data_dir = if cfg!(windows) {
513+
data_dir.join("data")
514+
} else {
515+
data_dir
516+
};
517+
518+
let cache_dir = etcetera::base_strategy::choose_native_strategy()
519+
.unwrap()
520+
.cache_dir()
521+
.join("uv");
522+
let cache_dir = if cfg!(windows) {
523+
cache_dir.join("cache")
524+
} else {
525+
cache_dir
526+
};
527+
528+
let config_dir = etcetera::base_strategy::choose_base_strategy()
529+
.unwrap()
530+
.config_dir();
531+
let home_dir = etcetera::home_dir().unwrap();
532+
533+
(data_dir, cache_dir, config_dir, home_dir)
534+
}
535+
536+
#[test]
537+
fn ensure_directory_not_changed() {
538+
let before = dirs_before();
539+
let after = dirs_after();
540+
assert_eq!(before, after);
541+
}
542+
}

0 commit comments

Comments
 (0)