Add e2e test suite for beetfs

Tests use real FUSE operations against mounted beetfs filesystem:
- test_smoke: mount/unmount lifecycle
- test_nested_bug: detects critical indentation bug (13 failures)
- test_readdir: directory listing
- test_read: metadata overlay verification
- test_stat: file/directory attributes
- test_write: metadata modification
- test_error_handling: ENOENT, EOPNOTSUPP

Also includes:
- conftest.py with BeetFSTestCase base class and synthetic FLAC generator
- e2e-test-plan.md with Oracle-reviewed test strategy
- flake.nix updated with ffmpeg/flac for test fixtures

Run: cd tests && nix develop ../ --command python -m unittest discover
This commit is contained in:
Alexander
2026-05-12 14:02:55 +02:00
parent c18e15987c
commit 81df4790bf
11 changed files with 2143 additions and 5 deletions
+5 -5
View File
@@ -97,17 +97,17 @@ EOF
buildInputs = [
pythonEnv
pkgs.fuse
pkgs.ffmpeg
pkgs.flac
];
shellHook = ''
# Clear any system Python pollution and set clean PYTHONPATH
unset PYTHONPATH
export PYTHONPATH="$PWD/beetsplug"
export PYTHONPATH="$PWD/beetsplug:$PWD/tests"
echo "beetfs development environment (Python 2.7)"
echo " Python: $(python --version 2>&1)"
echo " Run: python -c 'import beets; print(beets.__version__)'"
echo ""
echo "To mount: beet mount <mountpoint>"
echo " Run tests: cd tests && python -m unittest discover"
echo " Mount: beet mount <mountpoint>"
'';
};
}