Add utils and tests
Some checks failed
CI / test (push) Has been cancelled
CI / build (push) Has been cancelled

This commit is contained in:
2026-02-01 23:46:55 +00:00
parent 6f841ba027
commit 2c7c667a16

92
tests/test_dependency.py Normal file
View File

@@ -0,0 +1,92 @@
import pytest
from pathlib import Path
from codechunk.core.dependency import DependencyAnalyzer, DependencyNode
from codechunk.core.chunking import ParsedChunk, ChunkMetadata
class TestDependencyAnalyzer:
"""Tests for DependencyAnalyzer."""
def test_analyze_dependencies_basic(self, tmp_path):
"""Test basic dependency analysis."""
main_code = '''
import os
import json
def main():
pass
'''
utils_code = '''
from typing import List
def helper():
pass
'''
(tmp_path / "main.py").write_text(main_code)
(tmp_path / "utils.py").write_text(utils_code)
from codechunk.core.parser import CodeParser
parser = CodeParser()
parser.discover_files(tmp_path, ["*.py"], [])
chunks = parser.parse_all()
analyzer = DependencyAnalyzer()
graph = analyzer.analyze_dependencies(chunks, parser.files)
assert len(graph) >= 2
def test_get_essential_chunks(self):
"""Test getting essential chunks including dependencies."""
analyzer = DependencyAnalyzer()
analyzer.dependency_graph = {
"main": DependencyNode(
chunk_name="main",
file_path=Path("main.py"),
module_name="main",
dependencies={"utils", "helper"}
),
"utils": DependencyNode(
chunk_name="utils",
file_path=Path("utils.py"),
module_name="utils",
dependencies={"helper"}
),
"helper": DependencyNode(
chunk_name="helper",
file_path=Path("helper.py"),
module_name="helper",
dependencies=set()
),
}
essential = analyzer.get_essential_chunks(["main"])
assert "main" in essential
assert "utils" in essential
assert "helper" in essential
def test_empty_project(self):
"""Test dependency analysis with no chunks."""
analyzer = DependencyAnalyzer()
graph = analyzer.analyze_dependencies([], [])
assert len(graph) == 0
class TestDependencyNode:
"""Tests for DependencyNode dataclass."""
def test_dependency_node_creation(self):
"""Test creating a dependency node."""
node = DependencyNode(
chunk_name="test",
file_path=Path("test.py"),
module_name="test",
dependencies={"dep1", "dep2"},
dependents={"parent"}
)
assert node.chunk_name == "test"
assert node.dependencies == {"dep1", "dep2"}