mirror of
https://github.com/cyclotruc/gitingest.git
synced 2026-04-28 10:09:29 +00:00
46 lines
1.6 KiB
Python
46 lines
1.6 KiB
Python
"""
|
|
Tests for the `query_ingestion` module.
|
|
|
|
These tests validate directory scanning, file content extraction, notebook handling, and the overall ingestion logic,
|
|
including filtering patterns and subpaths.
|
|
"""
|
|
|
|
from pathlib import Path
|
|
|
|
from gitingest.ingestion import ingest_query
|
|
from gitingest.query_parsing import ParsedQuery
|
|
|
|
|
|
def test_run_ingest_query(temp_directory: Path, sample_query: ParsedQuery) -> None:
|
|
"""
|
|
Test `ingest_query` to ensure it processes the directory and returns expected results.
|
|
|
|
Given a directory with .txt and .py files:
|
|
When `ingest_query` is invoked,
|
|
Then it should produce a summary string listing the files analyzed and a combined content string.
|
|
"""
|
|
sample_query.local_path = temp_directory
|
|
sample_query.subpath = "/"
|
|
sample_query.type = None
|
|
|
|
summary, _, content = ingest_query(sample_query)
|
|
|
|
assert "Repository: test_user/test_repo" in summary
|
|
assert "Files analyzed: 8" in summary
|
|
|
|
# Check presence of key files in the content
|
|
assert "src/subfile1.txt" in content
|
|
assert "src/subfile2.py" in content
|
|
assert "src/subdir/file_subdir.txt" in content
|
|
assert "src/subdir/file_subdir.py" in content
|
|
assert "file1.txt" in content
|
|
assert "file2.py" in content
|
|
assert "dir1/file_dir1.txt" in content
|
|
assert "dir2/file_dir2.txt" in content
|
|
|
|
|
|
# TODO: Additional tests:
|
|
# - Multiple include patterns, e.g. ["*.txt", "*.py"] or ["/src/*", "*.txt"].
|
|
# - Edge cases with weird file names or deep subdirectory structures.
|
|
# TODO : def test_include_txt_pattern
|
|
# TODO : def test_include_nonexistent_extension
|