mirror of
https://github.com/allaunthefox/Research-Stack.git
synced 2026-07-31 03:05:21 +00:00
98 lines
2.8 KiB
Python
98 lines
2.8 KiB
Python
"""Tests for file_info module."""
|
|
|
|
from pathlib import Path
|
|
|
|
import pytest
|
|
|
|
|
|
class TestFileInfo:
|
|
"""Test FileInfo class."""
|
|
|
|
def test_initialization(self, temp_dir):
|
|
"""Test FileInfo initialization."""
|
|
from nodupe.tools.scanner_engine.file_info import FileInfo
|
|
|
|
test_file = temp_dir / "test.txt"
|
|
test_file.write_text("content")
|
|
|
|
file_info = FileInfo(test_file)
|
|
|
|
assert file_info.file_path == test_file
|
|
|
|
def test_get_info(self, temp_dir):
|
|
"""Test getting file info."""
|
|
from nodupe.tools.scanner_engine.file_info import FileInfo
|
|
|
|
test_file = temp_dir / "test.txt"
|
|
test_file.write_text("test content")
|
|
|
|
file_info = FileInfo(test_file)
|
|
|
|
info = file_info.get_info()
|
|
|
|
assert 'path' in info
|
|
assert 'size' in info
|
|
assert 'mtime' in info
|
|
assert 'ctime' in info
|
|
assert 'is_file' in info
|
|
assert 'is_dir' in info
|
|
assert 'is_symlink' in info
|
|
|
|
assert info['path'] == str(test_file)
|
|
assert info['size'] > 0
|
|
assert info['is_file'] is True
|
|
assert info['is_dir'] is False
|
|
|
|
def test_get_info_nonexistent_file(self, temp_dir):
|
|
"""Test getting info for nonexistent file."""
|
|
from nodupe.tools.scanner_engine.file_info import FileInfo
|
|
|
|
nonexistent = temp_dir / "nonexistent.txt"
|
|
|
|
file_info = FileInfo(nonexistent)
|
|
|
|
with pytest.raises(FileNotFoundError):
|
|
file_info.get_info()
|
|
|
|
def test_get_info_directory(self, temp_dir):
|
|
"""Test getting info for directory."""
|
|
from nodupe.tools.scanner_engine.file_info import FileInfo
|
|
|
|
subdir = temp_dir / "subdir"
|
|
subdir.mkdir()
|
|
|
|
file_info = FileInfo(subdir)
|
|
|
|
info = file_info.get_info()
|
|
|
|
assert info['is_dir'] is True
|
|
assert info['is_file'] is False
|
|
|
|
def test_get_info_symlink(self, temp_dir):
|
|
"""Test getting info for symlink."""
|
|
from nodupe.tools.scanner_engine.file_info import FileInfo
|
|
|
|
real_file = temp_dir / "real.txt"
|
|
real_file.write_text("content")
|
|
|
|
symlink = temp_dir / "link.txt"
|
|
symlink.symlink_to(real_file)
|
|
|
|
file_info = FileInfo(symlink)
|
|
|
|
info = file_info.get_info()
|
|
|
|
assert info['is_symlink'] is True
|
|
|
|
def test_get_info_with_path_object(self, temp_dir):
|
|
"""Test FileInfo with Path object."""
|
|
from nodupe.tools.scanner_engine.file_info import FileInfo
|
|
|
|
test_file = temp_dir / "test.txt"
|
|
test_file.write_text("content")
|
|
|
|
file_info = FileInfo(Path(test_file))
|
|
|
|
info = file_info.get_info()
|
|
|
|
assert info['is_file'] is True
|