import pytest from pathlib import Path from src import aggregate def test_auto_aggregate_skip(tmp_path): # Create some test files f1 = tmp_path / "file1.txt" f1.write_text("content1") f2 = tmp_path / "file2.txt" f2.write_text("content2") files = [ {"path": "file1.txt", "auto_aggregate": True}, {"path": "file2.txt", "auto_aggregate": False}, ] items = aggregate.build_file_items(tmp_path, files) # Test _build_files_section_from_items section = aggregate._build_files_section_from_items(items) assert "file1.txt" in section assert "file2.txt" not in section # Test build_tier3_context t3 = aggregate.build_tier3_context(items, tmp_path, [], [], []) assert "file1.txt" in t3 assert "file2.txt" not in t3 def test_force_full(tmp_path): # Create a python file that would normally be skeletonized in Tier 3 py_file = tmp_path / "script.py" py_file.write_text("def hello():\n print('world')\n") # Tier 3 normally skeletonizes non-focus python files items = aggregate.build_file_items(tmp_path, [{"path": "script.py", "force_full": True}]) # Test build_tier3_context t3 = aggregate.build_tier3_context(items, tmp_path, [], [], []) assert "print('world')" in t3 # Full content present # Compare with non-force_full items2 = aggregate.build_file_items(tmp_path, [{"path": "script.py", "force_full": False}]) t3_2 = aggregate.build_tier3_context(items2, tmp_path, [], [], []) assert "print('world')" not in t3_2 # Skeletonized # Tier 1 normally summarizes non-core files pass