Skip to content

Commit

Permalink
Add test cases for directory pattern matching
Browse files Browse the repository at this point in the history
  • Loading branch information
RyanL2004 committed Jan 11, 2025
1 parent 2d1a428 commit fc0bee9
Showing 1 changed file with 63 additions and 4 deletions.
67 changes: 63 additions & 4 deletions tests/test_query_ingestion.py
Original file line number Diff line number Diff line change
Expand Up @@ -96,10 +96,69 @@ def test_include_nonexistent_extension(temp_directory: Path, sample_query: dict[


# single folder patterns
# TODO: test with include patterns: ['src/*']
# TODO: test with include patterns: ['/src/*']
# TODO: test with include patterns: ['/src/']
# TODO: test with include patterns: ['/src*']
def test_include_src_star_pattern(temp_directory: Path, sample_query: dict[str, Any]) -> None:

sample_query["local_path"] = temp_directory
sample_query["include_patterns"] = ["src/*"] # Without leading slash

result = _scan_directory(temp_directory, query=sample_query)
assert result is not None, "Result should not be None"

files = _extract_files_content(query=sample_query, node=result, max_file_size=1_000_000)
assert len(files) == 4, "Should find all files under src directory"

# Normalize paths to use platform-specific separator
file_paths = {str(Path(f["path"])) for f in files} # Using set and Path for normalization
expected_paths = {
str(Path("src/subfile1.txt")),
str(Path("src/subfile2.py")),
str(Path("src/subdir/file_subdir.txt")),
str(Path("src/subdir/file_subdir.py")),
}
assert file_paths == expected_paths, "Missing or unexpected files in result"


def test_include_src_recursive(temp_directory: Path, sample_query: dict[str, Any]) -> None:

sample_query["local_path"] = temp_directory
sample_query["include_patterns"] = ["src/**"] # Use ** for recursive matching

result = _scan_directory(temp_directory, query=sample_query)
assert result is not None, "Result should not be None"

files = _extract_files_content(query=sample_query, node=result, max_file_size=1_000_000)
assert len(files) == 4, "Should find all files under src/"

file_paths = {str(Path(f["path"])) for f in files}
expected_paths = {
str(Path("src/subfile1.txt")),
str(Path("src/subfile2.py")),
str(Path("src/subdir/file_subdir.txt")),
str(Path("src/subdir/file_subdir.py")),
}
assert file_paths == expected_paths, "Missing or unexpected files in result"


def test_include_src_wildcard_prefix(temp_directory: Path, sample_query: dict[str, Any]) -> None:

sample_query["local_path"] = temp_directory
sample_query["include_patterns"] = ["src*"] # Without leading slash

result = _scan_directory(temp_directory, query=sample_query)
assert result is not None, "Result should not be None"

files = _extract_files_content(query=sample_query, node=result, max_file_size=1_000_000)
assert len(files) == 4, "Should find all files under paths starting with src"

file_paths = {str(Path(f["path"])) for f in files}
expected_paths = {
str(Path("src/subfile1.txt")),
str(Path("src/subfile2.py")),
str(Path("src/subdir/file_subdir.txt")),
str(Path("src/subdir/file_subdir.py")),
}
assert file_paths == expected_paths, "Missing or unexpected files in result"


# multiple patterns
# TODO: test with multiple include patterns: ['*.txt', '*.py']
Expand Down

0 comments on commit fc0bee9

Please sign in to comment.