from pathlib import Path from am_deduper.db import connect from am_deduper.exact import exact_dedupe from am_deduper.scanner import scan def test_exact_dedupe_creates_hardlink(tmp_path: Path): root = tmp_path / "AllMusic" (root / "admin").mkdir(parents=True) (root / "alice").mkdir(parents=True) a = root / "admin" / "song.flac" b = root / "alice" / "song.flac" data = b"fake flac content" * 10000 a.write_bytes(data) b.write_bytes(data) db = root / ".dedupe" / "dedupe.db" assert scan(root, db) == 2 actions = exact_dedupe(db, root) assert len(actions) == 1 assert a.stat().st_ino == b.stat().st_ino assert a.read_bytes() == b.read_bytes()