Skip to content

Commit

Permalink
Enhanced Directory Pattern Matching Test Coverage (cyclotruc#123)
Browse files Browse the repository at this point in the history
  • Loading branch information
RyanL2004 authored Jan 13, 2025
1 parent e8663c6 commit 1fd741a
Showing 1 changed file with 56 additions and 4 deletions.
60 changes: 56 additions & 4 deletions tests/test_query_ingestion.py
Original file line number Diff line number Diff line change
Expand Up @@ -96,10 +96,62 @@ 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:
"""
Test that when using 'src/*' as include pattern, files under the src directory
are included.
Note: Windows is not supported - test converts Windows paths to Unix-style for validation.
"""
sample_query["local_path"] = temp_directory
sample_query["include_patterns"] = ["src/*"]

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)
# Convert Windows paths to Unix-style for test validation
file_paths = {f["path"].replace("\\", "/") for f in files}
expected_paths = {"src/subfile1.txt", "src/subfile2.py", "src/subdir/file_subdir.txt", "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:
"""
Test that when using 'src/**' as include pattern, all files under src
directory are included recursively.
Note: Windows is not supported - test converts Windows paths to Unix-style for validation.
"""
sample_query["local_path"] = temp_directory
sample_query["include_patterns"] = ["src/**"]

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)
# Convert Windows paths to Unix-style for test validation
file_paths = {f["path"].replace("\\", "/") for f in files}
expected_paths = {"src/subfile1.txt", "src/subfile2.py", "src/subdir/file_subdir.txt", "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:
"""
Test that when using 'src*' as include pattern, it matches the src directory
and any paths that start with 'src'.
Note: Windows is not supported - test converts Windows paths to Unix-style for validation.
"""
sample_query["local_path"] = temp_directory
sample_query["include_patterns"] = ["src*"]

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)
# Convert Windows paths to Unix-style for test validation
file_paths = {f["path"].replace("\\", "/") for f in files}
expected_paths = {"src/subfile1.txt", "src/subfile2.py", "src/subdir/file_subdir.txt", "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 1fd741a

Please sign in to comment.