fix: Race Condition bei paralleler Umbenennung, Clippy/Deprecation-Warnings und Formatierung

- Parallele Berechnung (par_iter) entfernt, da sie die tiefenbasierte
  Sortierung zerstörte und Parent-Verzeichnisse vor ihren Kindern
  umbenannt werden konnten
- Duplizierten Code zwischen parallelem und sequentiellem Pfad entfernt
- Clippy-Warning behoben: collapsible str::replace in sanitizer.rs
- Deprecation-Warning behoben: #[allow(deprecated)] für cargo_bin Import
- cargo fmt angewendet

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Dieter Schlüter 2026-02-13 04:08:23 +01:00
commit ad44139e21
3 changed files with 105 additions and 119 deletions

View file

@ -1,4 +1,5 @@
use assert_cmd::assert::OutputAssertExt;
#[allow(deprecated)]
use assert_cmd::cargo::cargo_bin;
use predicates::prelude::*;
use std::fs;
@ -141,9 +142,7 @@ fn test_quiet_mode() {
let mut cmd = Command::new(cargo_bin!("ntu"));
cmd.arg("--quiet").arg("-r").arg(temp_dir.path());
cmd.assert()
.success()
.stdout(predicate::str::is_empty());
cmd.assert().success().stdout(predicate::str::is_empty());
}
#[test]
@ -228,7 +227,11 @@ fn test_recursive_flag() {
// Beide umbenannt
assert!(temp_dir.path().join("top_file.txt").exists());
assert!(temp_dir.path().join("subdir").join("nested_file.txt").exists());
assert!(temp_dir
.path()
.join("subdir")
.join("nested_file.txt")
.exists());
}
#[test]
@ -423,7 +426,10 @@ fn test_max_depth_option() {
assert!(temp_dir.path().join("level_1/level_2/level_3").exists());
// Level 3/file sollte NICHT umbenannt sein (depth 4 > max 3)
assert!(temp_dir.path().join("level_1/level_2/level_3/file 3.txt").exists());
assert!(temp_dir
.path()
.join("level_1/level_2/level_3/file 3.txt")
.exists());
}
#[test]
@ -432,16 +438,11 @@ fn test_max_depth_requires_recursive() {
// --max-depth ohne -r sollte fehlschlagen
let mut cmd = Command::new(cargo_bin!("ntu"));
cmd.arg("--max-depth")
.arg("2")
.arg(temp_dir.path());
cmd.arg("--max-depth").arg("2").arg(temp_dir.path());
let assert = cmd.assert().failure();
// Prüfe dass die Fehlermeldung "required" oder "recursive" enthält
assert.stderr(
predicate::str::contains("required")
.or(predicate::str::contains("recursive"))
);
assert.stderr(predicate::str::contains("required").or(predicate::str::contains("recursive")));
}
#[test]
@ -467,7 +468,11 @@ fn test_symlinks_default_behavior() {
// Verwende symlink_metadata() um zu prüfen ob der Link selbst existiert
let link_unchanged = temp_dir.path().join("link to file");
assert!(link_unchanged.symlink_metadata().is_ok());
assert!(!temp_dir.path().join("link_to_file").symlink_metadata().is_ok());
assert!(!temp_dir
.path()
.join("link_to_file")
.symlink_metadata()
.is_ok());
}
#[test]