import os import shutil from pathlib import Path from src.summary_cache import SummaryCache, get_file_hash def test_get_file_hash(): content = "hello world" # sha256 of "hello world" expected = "b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9" assert get_file_hash(content) == expected def test_summary_cache(): cache_dir = Path(".test_cache") if cache_dir.exists(): shutil.rmtree(cache_dir) cache_file = cache_dir / "cache.json" cache = SummaryCache(str(cache_file)) file_path = "test.py" content = "print('hello')" content_hash = get_file_hash(content) summary = "**Python** - 1 lines" # Test empty cache assert cache.get_summary(file_path, content_hash) is None # Test set and get cache.set_summary(file_path, content_hash, summary) assert cache.get_summary(file_path, content_hash) == summary # Test cache invalidation assert cache.get_summary(file_path, "different_hash") is None # Test persistence cache2 = SummaryCache(str(cache_file)) assert cache2.get_summary(file_path, content_hash) == summary # Cleanup if cache_dir.exists(): shutil.rmtree(cache_dir) if __name__ == "__main__": test_get_file_hash() test_summary_cache() print("Tests passed!")