import pytest from src.aggregate import group_files_by_dir, compute_file_stats from src.models import FileItem def test_group_files_by_dir(): files = [ FileItem(path="src/main.py"), FileItem(path="src/utils/helpers.py"), FileItem(path="tests/test_main.py"), FileItem(path="README.md") ] grouped = group_files_by_dir(files) assert len(grouped) == 4 assert grouped["src"] == [files[0]] assert grouped["src/utils"] == [files[1]] assert grouped["tests"] == [files[2]] assert grouped["."] == [files[3]] def test_compute_file_stats(): import tempfile import os with tempfile.TemporaryDirectory() as temp_dir: # Create a dummy python file py_path = os.path.join(temp_dir, "test.py") with open(py_path, "w") as f: f.write("def foo():\n pass\n\nclass Bar:\n pass\n") stats = compute_file_stats(py_path) assert stats["lines"] == 5 assert stats["ast_elements"] == 2 # 1 func, 1 class